Skip to main content
Xinexis

Engineering insight

A Sales Automation Reference Architecture: Intake, CRM and Human Review

Explore a hypothetical sales workflow with validated intake, CRM data contracts, duplicate handling, retry controls, human review and observability.

Receive a lead event, validate and deduplicate it, write to the CRM, then reconcile the result. Retries and exceptions need explicit handling. Illustrative reference workflow.
Receive a lead event, validate and deduplicate it, write to the CRM, then reconcile the result. Retries and exceptions need explicit handling. Illustrative reference workflow.
In this note
  1. 01 · Define the boundary and the records
  2. 02 · Separate intake from processing
  3. 03 · Handle duplicates without merging people by guesswork
  4. 04 · Make retries safe and bounded
  5. 05 · Put AI behind a narrow contract
  6. 06 · Give exceptions an owner and a view
  7. 07 · Agree on acceptance before rollout

Connecting an inquiry source to a CRM looks simple until a request arrives twice, a contact belongs to two accounts or a write succeeds just before the connection times out. These cases determine whether an automation remains useful after its first demonstration.

The following is a hypothetical reference architecture, not a description of a completed Xinexis engagement. It follows an inbound project inquiry through intake, validation, optional AI assistance and human review. Its purpose is to make the integration boundaries and failure behavior concrete.

Define the boundary and the records

Use the CRM as the authoritative source for confirmed contact ownership and opportunity stage. Keep the integration's processing state separately so a failed attempt does not become a misleading business status.

A minimal inquiry contract might contain:

  • A source-system identifier and source-event identifier.
  • The time the inquiry was received, with a defined time zone.
  • Contact details supplied by the sender, without inferred additions.
  • A reference to the original message in an appropriately restricted store.
  • Communication preferences captured by the source, where available.
  • A schema version and an identifier linking subsequent processing steps.

Document which fields are required, which may be absent and which system owns corrections. Limit access and retention for the original message rather than copying it into every log or downstream notification.

Separate intake from processing

The intake boundary validates the request and records accepted work durably before acknowledging receipt. A worker then processes that record. This lets a temporary CRM outage delay processing without requiring the sender to repeatedly submit the inquiry.

Validation failures and processing failures need different treatment. An invalid event should carry an actionable reason for its source owner. A valid event awaiting a temporarily unavailable destination should remain visible as pending work.

Keep the submitted values and normalized values distinguishable. Normalization can standardize an identifier's format; it should not silently invent a company, change a preference or reinterpret missing information.

Handle duplicates without merging people by guesswork

For repeated delivery of the same event, use the source and event identifiers as a processing key. Persist the relationship between that key and the resulting CRM operation. Receiving the event again should retrieve its existing outcome rather than create another opportunity.

Business duplicates are a different problem. Two distinct inquiries from one person may both be legitimate. A shared email domain does not establish that two contacts are the same person or belong to the same account. Send ambiguous matches to a review queue with the candidate records and the reason for the match.

Document the matching policy and a correction process. A mistaken merge can be harder to repair than a visible duplicate.

Make retries safe and bounded

Consider a synthetic event, inquiry-482. The CRM accepts its update, but the worker loses the response. Blindly repeating a create operation could produce a second record. The integration should use a destination-supported idempotency mechanism where available, or reconcile the operation using a stable external identifier before deciding to repeat it.

Retry transient failures with a bounded delay policy. Route persistent failures to an exception owner; retrying a permission error indefinitely will not fix the credential. AWS's retry with backoff guidance (opens in a new tab) explains the relationship between retry behavior, transient failures and idempotency.

Record attempts and final outcomes. A replay operation should retain the inquiry's identity and make any deliberate reprocessing visible.

Put AI behind a narrow contract

An optional AI step can propose a request summary and service category. Require a structured output with source references, then validate its shape and permitted values. Keep the original inquiry available to the reviewer.

Do not let this step set account ownership, overwrite a confirmed commercial field or send a message. A useful failure mode is to omit the proposed summary and continue with manual review. The core inquiry should remain usable if the model is unavailable.

The reviewer can accept or correct the proposal before creating the next customer-facing action. Record that decision and the relevant configuration version so recurring errors can be investigated.

Give exceptions an owner and a view

A supportable workflow should expose pending volume, age of the oldest inquiry, failures by cause, duplicate deliveries and reviewer corrections. Use the inquiry identifier to connect events across components while keeping personal content out of general logs.

Assign operational responsibility explicitly: sales operations for ambiguous ownership, an integration owner for failed deliveries, and the account owner for communication. Define escalation when a queue exceeds its agreed handling window.

Agree on acceptance before rollout

Test duplicate delivery, an unavailable CRM, an uncertain write outcome, an ambiguous contact and a rejected AI proposal. Confirm that each leaves a recoverable record and an understandable next action.

The sales workflow decision guide covers which bottleneck to address first. For help turning an agreed workflow into maintainable software, explore Data Engineering & Integration or Discuss a Project.