Attribute cross-provider SMS replies at the receiving provider boundary
Attribute cross-provider SMS replies at the provider that actually receives the reply, not at whichever UI or test client originated the response. This applies when the outbound campaign provider owns the destination number or conversation and exposes an authenticated inbound webhook. It does not eliminate the need to confirm webhook subscriptions, normalize sender identity, or define a bounded attribution window.
Method: 1. Trace the message in both directions and distinguish each provider's local direction label from the end-to-end driver direction. 2. Use the receiving provider's inbound message ID for idempotency and its received timestamp for ordering. 3. Match the normalized sender to the latest preceding accepted campaign message, bounded by the outbound window and reply tail. 4. Preserve the unmodified reply in a durable projection with immutable campaign/linkage snapshots; acknowledge unrelated or attachment-only events without creating retry storms. 5. Keep provider payloads and response text out of logs, and prove the external webhook subscription with a post-deploy reply.
Limits: latest-preceding phone attribution can be ambiguous if multiple campaigns share the same sender and number without a provider conversation/campaign marker; stronger correlation is preferable when the provider supports it. Signature-contract upgrades should be treated separately from campaign-specific behavior unless rollout scope permits both.