Why Website-to-CRM and ERP Integrations Fail Silently After Launch, and How to Monitor Them
A customer submits an enquiry and sees a thank-you page. An ecommerce buyer receives an order confirmation. A dealer updates an account profile and the website reports success. Everyone assumes the connected CRM or ERP received the information.
That assumption can remain unchallenged for days. Sales notices that qualified enquiries are missing. Finance finds orders without tax codes. Warehouse staff see stock that the website should have deducted. A customer follows up because nobody contacted them. The website was available and the front-end event fired, but the end-to-end business transaction failed.
Silent failure occurs when a system cannot complete or correctly interpret an integration event and the organisation does not detect the gap promptly. It is especially dangerous because dashboards can remain green. HTTP requests succeeded, automation ran or a message left the source, yet the destination contains no usable business record.
Reliable integration is therefore not only about connecting two APIs. It is about proving business outcomes, detecting exceptions, recovering safely and reconciling systems over time.
Define success at the business record, not the transport layer
An integration can report several kinds of “success”:
- The website accepted the customer’s input.
- The website queued an event.
- The integration service sent a request.
- The destination returned a successful status.
- The destination created or updated the intended record.
- The record passed downstream workflow and became usable by the business.
Only the later stages prove the commercial outcome. A CRM can accept a payload but route it to an unexpected owner, reject a field later in an automation, merge it into the wrong contact or create a lead that no report includes. An ERP can accept an order into staging while failing financial validation.
For every transaction, write an outcome statement. Examples:
- “A valid website enquiry creates one CRM lead with source, consent, product interest and an assigned owner within five minutes.”
- “A paid ecommerce order creates one ERP sales order with matching totals and lines, then returns the ERP identifier to the ecommerce record.”
- “A stock adjustment changes customer-facing availability within the agreed maximum delay and is reconciled daily.”
Monitoring and acceptance can then test the statement rather than a generic “API online” metric.
Common ways integrations become silently unreliable
Authentication expires or permissions change
Tokens expire, secrets rotate, users leave and scopes are tightened. The integration process may keep running while requests receive unauthorised responses or lose access to specific objects.
Destination schemas and business rules change
A CRM field becomes mandatory, an ERP code is retired, a picklist value changes or a new validation rule is activated. The website payload has not changed, but it is no longer acceptable.
API limits and throttling are reached
Campaign spikes, catalogue imports or retry storms can exceed service limits. Microsoft Dataverse, for example, returns 429 Too Many Requests when service-protection limits are exceeded, as described in its API limits guidance. A robust client must respect the response and retry policy rather than dropping the event or immediately increasing load.
Synchronous timeouts hide ambiguous outcomes
The website times out before the destination responds. The record might have been created, partially processed or not created at all. Blindly retrying can produce duplicates.
Asynchronous workflows fail after acknowledgement
The source receives a success response when an event is queued, but downstream processing later fails. Microsoft explains that Dataverse triggers execute asynchronously, so a flow failure does not roll back the original data change. Its callback registration and monitoring guidance recommends using system jobs to verify whether triggers ran or failed.
Mapping and data-quality errors accumulate
Unexpected characters, missing identifiers, invalid dates, duplicated emails, tax precision, address formats and stale reference data can affect a minority of records. Aggregate uptime looks healthy while commercially important exceptions disappear.
Changes are deployed on only one side
A website release changes the payload before the integration mapping is ready, or a sandbox CRM change reaches production without coordinated regression testing.
Monitoring measures infrastructure but not flow
Servers are up, CPU is normal and APIs respond. None of those metrics proves that yesterday’s 38 website enquiries became 38 eligible CRM records.
Use a correlation identifier across the transaction
Every business event should carry a stable identifier through source, middleware and destination. It can be a lead submission ID, order ID, event ID or another generated correlation ID. Store it at each stage and include it in logs and error records.
This makes it possible to answer:
- Did the event leave the website?
- Which payload version was used?
- How many attempts were made?
- What did the destination return?
- Which CRM or ERP record was created?
- Was the event duplicated or replayed?
- Which customer-facing and financial transaction does it belong to?
Do not rely only on email address or order total for matching. Those values can repeat or change. A shared identifier creates traceability and safer reconciliation.
Design acknowledgement at the right point
Acknowledge too early and the website may tell the user everything succeeded before the event is durable. Acknowledge too late and a slow CRM can delay checkout or form completion.
One useful asynchronous pattern is:
- Validate customer input.
- Write the business event to a durable store or queue.
- Return a controlled response to the website.
- Process the destination integration independently.
- Record the destination identifier and outcome.
- Alert and queue any unresolved failure.
For transactions where the downstream result is essential before payment or promise, a synchronous step may be appropriate. The choice depends on business harm, latency and recovery capability.
The important distinction is between “request accepted for processing” and “business transaction completed”. Customer and staff messages should reflect the real state.
Retries need backoff, limits and idempotency
Temporary failures should not immediately become lost data. HubSpot’s webhook documentation, for example, states that failed notifications may be retried up to ten times over 24 hours. That vendor behaviour is useful, but the receiving application still needs to validate, log and safely handle duplicates. See the HubSpot Webhooks guide.
An effective retry policy defines:
- which errors are transient and eligible for retry
- delay and exponential backoff
- maximum attempts and total age
- respect for
Retry-Afteror vendor guidance - timeout behaviour
- destination for exhausted events
- alert severity and owner
- manual replay procedure.
The operation must be idempotent: processing the same event twice should not create two orders, two refunds or two CRM leads. AWS’s retry-with-backoff guidance warns that retry operations should be idempotent or partial updates can corrupt system state.
Common idempotency controls include:
- unique external IDs in the destination
- an idempotency key stored with the event
- upsert rather than unconditional create
- a processed-event ledger
- destination queries before a retry where safe
- transactional outbox patterns for database change plus event publication.
AWS’s transactional outbox guidance explains the dual-write risk: a database update can succeed while the event notification fails, leaving systems inconsistent. An outbox or change-data-capture pattern can make publication recoverable, while consumers still need duplicate handling.
Failed events need a visible holding area
After retries are exhausted, the event should not vanish into a log file. A dead-letter queue or exception store retains the payload, context, attempts and error for investigation and replay.
The operational view should show:
- correlation ID and business type
- customer or order reference with appropriate privacy controls
- source and destination
- first failure and latest attempt time
- error category and response
- payload or secure payload reference
- number of attempts
- assigned owner and status
- remediation and replay history.
Access should be controlled because payloads can contain personal, commercial or payment-related data. Logs should minimise unnecessary personal information, mask secrets and follow retention policy.
Monitor technical and business signals together
Technical monitoring can include:
- request count, success, failure and latency
- queue depth and oldest-event age
- authentication and permission errors
- throttling and timeout rate
- schema or validation errors
- retry and dead-letter volume
- webhook subscription status
- worker and scheduled-job health.
Business monitoring should include:
- website submissions versus CRM records
- ecommerce orders versus ERP sales orders
- payment totals versus ERP totals
- products or stock by source versus destination
- records without owners or required classifications
- time from website action to usable destination state
- duplicates and manually corrected records.
Thresholds should be meaningful. One failed high-value order may require urgent action even when the percentage success rate remains 99.9%. Categorise events by criticality and age.
Synthetic monitoring can add evidence: submit a controlled test lead or order-like transaction at a defined cadence, then verify that it appears correctly downstream. Use non-production or clearly identified test records and ensure automation does not send them to real customers or reporting.
Reconciliation catches what event monitoring misses
Event logs show what the integration believes happened. Reconciliation independently compares business systems. It can identify missing records, amount differences, stale inventory and duplicates even when logs were lost or incorrectly marked successful.
A reconciliation process should define:
- source and destination query
- matching identifier
- fields and tolerances compared
- frequency and lookback window
- handling of legitimate timing differences
- exception severity and owner
- controlled repair or replay
- evidence that the discrepancy was resolved.
Examples include:
- every paid ecommerce order has one ERP order
- every qualified web lead has one CRM record and owner
- daily order value by currency matches within approved adjustments
- every dispatched consignment has tracking on the customer order
- inventory discrepancies above a threshold are investigated.
Automated correction can be appropriate for known safe cases. Do not overwrite unexplained discrepancies simply to make dashboards green; preserve evidence and determine which system is authoritative.
Treat integration changes as releases
CRM and ERP administrators sometimes view a field or workflow change as configuration rather than software. For an integration, it is a contract change. Use change control that includes:
- documented payload and mapping versions
- owners on both sides
- sandbox or test environment validation
- representative regression cases
- backward compatibility or coordinated release
- monitoring during and after deployment
- rollback and replay plan
- communication to operational users.
Contract tests can verify required fields, formats, responses and error behaviour. They will not prove every business workflow, so combine them with end-to-end tests.
Assign operational ownership before launch
An integration often crosses a website partner, internal IT, CRM administrator, ERP vendor and cloud or automation provider. Without a responsibility model, every team sees only its component.
Name owners for:
- monitoring the complete transaction
- first response and triage
- source application
- integration service or middleware
- destination CRM or ERP
- business-data validation
- customer and internal communication
- replay authorisation
- privacy and security escalation
- vendor coordination and root-cause review.
Service levels should distinguish critical order loss from a non-urgent catalogue delay. Define business hours and after-hours expectations where relevant.
Emote can support the website and integration components under an appropriate engagement and coordinate with client-appointed CRM, ERP and infrastructure providers. Emote does not sell or resell hosting infrastructure; clients normally contract directly with their suitable host. Supplier boundaries should be explicit in monitoring and incident runbooks.
Discovery should define observability as a requirement
“Integrate website with CRM” is not enough to price or accept a complex connection. Paid Full Website Discovery should define transaction outcomes, source systems, identifiers, mappings, volumes, latency, security, failure behaviour, retries, monitoring, reconciliation, environments and ownership.
Observability and support are not optional finishing touches. They affect architecture. A direct point-to-point form submission may be simple, but it can be inappropriate when lead loss is commercially material and replay is required.
The implementation plan should include operational dashboards, alerts, runbooks, acceptance tests and handover. Emote’s standard 30-day functional warranty addresses eligible implementation defects for completed website implementations from production go-live unless a signed project-specific agreement says otherwise. It does not replace ongoing integration monitoring, third-party administration, maintenance or changed business rules.
Frequently asked questions
Why does the website show success when the CRM record is missing?
The website may acknowledge form acceptance or event queuing before downstream processing completes. Define and monitor each stage, then ensure customer messaging accurately reflects the state.
Should website integrations be synchronous or asynchronous?
It depends on whether the downstream result is required immediately, acceptable latency, transaction risk and recovery capability. Asynchronous processing can improve resilience but needs durable queues, status and replay.
What is idempotency?
It means the same event can be processed more than once without creating an unintended additional effect. It is essential when timeouts and retries can duplicate delivery.
What is a dead-letter queue?
It is a controlled holding area for events that could not be processed after the approved retries. It preserves them for alerting, investigation and replay rather than discarding them.
How often should CRM or ERP data be reconciled?
Match frequency to business impact and transaction volume. Critical orders may need near-real-time exception detection and daily financial reconciliation; lower-risk content data may tolerate a longer cadence.
Can API uptime prove the integration is healthy?
No. An API can be available while authentication, mapping, validation, workflow or data quality fails. Combine technical monitoring with business-outcome checks.
Who should own integration monitoring?
One accountable service owner should oversee the end-to-end outcome, supported by component owners. Avoid dividing responsibility so completely that nobody owns a lost transaction.
Is a failed third-party API covered by the website warranty?
The external service’s outage is not an implementation defect. Emote’s standard 30-day functional warranty covers eligible defects in completed Emote implementation work from production go-live unless otherwise agreed. Monitoring, incident response, vendor changes and ongoing support are separate.
How Emote can help
Emote helps organisations design connected websites that treat leads, orders, accounts and inventory as business transactions—not anonymous API calls. That includes the website experience, integration requirements, identifiers, failure handling, monitoring and coordination with CRM, ERP and operational providers.
For a practical starting point, read Emote’s guide to website integration decisions before development.
If missing leads or orders are still being found through complaints or spreadsheets, book a meeting with Emote to discuss a more traceable integration model.


