
CRM CSV Imports: Preview Changes, Explain Row Errors, and Recover Safely
Build a CRM import workflow with explicit mapping, validation, duplicate decisions, controlled writes, and reviewed AI suggestions.
Custom Portals
Build bulk portal workflows with explicit selection scope, per-record authorization, clear partial-failure reports, and retries that avoid duplicate effects.

LET’S BUILD SOMETHING USEFUL
Talk to Ataraxy Developers about your website, app, or custom software.
A bulk action promises to save time, but it can also multiply a misunderstanding. A user selects the visible rows, expects ten records to change, and discovers that the action affected every result matching a filter. Another user sees a success banner even though several records failed. Good bulk workflows make scope, consequences, and outcomes explicit before convenience is allowed to scale the operation.
Consider a fictional vendor portal where an administrator assigns document-review requests to different teams. Some requests are already complete, some belong to a restricted group, and others change while the administrator is reviewing the list. The system needs to handle those differences without pretending that a single button click guarantees an identical result for every selected record.
Distinguish selected rows, all rows on the current page, and all records matching the current filters. Show the count and an understandable description near the action. If users can expand a selection from the current page to the entire result set, make that a separate explicit step. Do not hide the difference in a tooltip or a small icon.
Decide what happens when filters change after selection. Clearing the selection may be appropriate, or the portal may retain a fixed set with a visible explanation. Avoid silently turning a fixed selection into a live query whose membership changes before execution. For large jobs, save the intended scope or snapshot of identifiers so the eventual result can be compared with what the user approved.
Not every action benefits from bulk execution. Assigning a reviewer may be straightforward, while deleting records with complex dependencies may require a more careful workflow. Define eligibility rules for each operation and explain exclusions before confirmation where possible. A list of selected records is not proof that every record supports the requested transition.
For the vendor example, completed requests might be ineligible for reassignment unless reopened through a separate process. Preview those exclusions and their reasons. Let the user adjust the selection or continue with an explicitly described eligible subset. Avoid silently dropping records and then reporting that the whole selection succeeded. The preview should help people make a decision, not simply repeat the number they clicked.
Some workflows require every change to succeed together. Others can use partial success, where each record has an independent outcome. Google’s AIP-234 batch-update guidance discusses this distinction and the need to communicate partial failures in its API design context. Treat that as a design reference rather than assuming every portal must use the same protocol or response shape.
Explain the chosen behavior in the confirmation. If one invalid record stops the entire job, say so. If eligible records can succeed while others fail, provide a reliable result report. Consider business relationships between records before choosing: changing related approval steps independently may create an invalid process even if each individual update passes a basic field validation.
A preview is useful, but permissions and records can change before a job runs. Recheck the initiating user’s authority and each record’s eligibility on the server when applying the operation. Do not rely on disabled checkboxes as the enforcement mechanism. Include tenant boundaries and any restrictions on the target reviewer or destination group.
Decide what happens if the user loses permission while a long-running job is queued. The answer should match the portal’s security and workflow model. Record the initiating actor, approved scope, action parameters, and execution time. Keep background workers from using broad service access to bypass the checks that would apply to an ordinary single-record action.
For lengthy operations, create a persistent job record with a stable identifier. Show pending, processing, completed, partially completed, or failed states that reflect actual work. Let an authorized user return to the result later. A spinner tied only to the current browser tab leaves users uncertain when the page closes or the connection drops.
Avoid claiming completion from a request-accepted response. Display processed counts and meaningful status updates without exposing private record details to unauthorized viewers. If cancellation is supported, explain whether it stops only unprocessed items or attempts to reverse completed changes. Stopping future work and undoing past work are different operations, and the interface should not blur them.
Provide counts that reconcile with the original scope: succeeded, unchanged, ineligible, failed, and not yet processed as appropriate. Let users inspect actionable reasons and navigate to affected records. A record that was already assigned to the requested reviewer can be reported as unchanged rather than pretending a new change occurred. Keep the terminology consistent between the screen and any export.
Group common failures for readability while retaining per-record details. For example, several requests may be excluded because they are already complete. Other failures may require a permission change or a corrected target. Distinguish retryable technical failures from business-rule failures. This prevents users from repeatedly running the same job when the underlying issue requires a different decision.
Retry only records that still need work, using the original operation identity or another appropriate deduplication mechanism. Before retrying an uncertain result, read the current state or consult the job’s durable result record. A lost response can occur after an update has succeeded. Repeating associated side effects, such as notification emails, may be harmful even when setting the same field twice appears harmless.
Keep state changes and side-effect dispatch coordinated through a reliable application design. Record which notifications or integration events have already been issued. If the operation is reversible, define an undo process that checks for later changes rather than blindly restoring an old snapshot. A second administrator may have legitimately updated the same record after the bulk job finished.
AI can suggest how to group requests or summarize common failure reasons. Show the proposed grouping with actual record identifiers and let an authorized person review it before a consequential operation. Do not allow a natural-language instruction such as assign the urgent ones to become an unrestricted database action without an explicit interpretation and preview.
When summarizing results, derive counts from the job record rather than asking the model to count a long narrative. Link explanations back to the original error categories. The assistant can help users understand what needs attention, but the operational record remains the source of truth. Keep private record content out of broad summaries when the viewer lacks access to the underlying items.
Test mixed permissions, changing filters, stale records, repeated clicks, network timeouts, and a worker restart halfway through the job. Compare the final record states and side effects with the saved selection. Check that mobile users can inspect exclusions and failures without a wide desktop table. A successful test should account for every intended record, not just confirm that some rows changed.
Reliable bulk actions begin with a visible scope and end with an accountable result. Define eligibility, choose all-or-nothing or partial behavior deliberately, recheck permissions, and persist per-record outcomes. Selective retries and clear handling of side effects keep recovery predictable. AI can assist review and explanation while the portal retains explicit control over what changes and why.
LET’S BUILD SOMETHING USEFUL
Talk to Ataraxy Developers about your website, app, or custom software.