How OutboundSync queues and prioritizes webhook payloads
Last updated December 3, 2025
OutboundSync processes a variety of webhook payloads to sync email and social activity to CRM systems such as HubSpot & Salesforce. To ensure data accuracy and prevent race conditions when multiple events arrive at once, we apply controlled processing delays. This article explains how delays work, which events skip delays, and how Category Based Filters being enabled affects sequencing.
Why Do We Use Delays at All?
HubSpot, Salesforce, and similar CRMs often have a short internal delay before newly created records become fully searchable.
If we push updates too quickly after creating a contact/lead, the CRM may return errors such as “record not found” or “value already exists.”
To avoid this, OutboundSync uses a common (default) delay for most webhook payloads.
Events that skip the default delay
Some payload types are time-sensitive and should sent to the CRM immediately.
For the following events, we skip the user-level default delay:
EMAIL_REPLYLEAD_CATEGORY_UPDATEDCONNECTION_REQUEST_ACCEPTEDINMAIL_REPLY_RECEIVEDMESSAGE_REPLY_RECEIVED
When one of these payloads arrives, it is executed immediately, bypassing the normal queue delay.
Special logic for Category Based Filters
Once we receive a matching lead category for a lead (when filters are enabled), all payloads for that lead skip the normal queue so they can be processed more quickly.
At this point, we begin applying a tiered delay for that lead’s payloads to keep updates orderly and prevent simultaneous writes on the same CRM record.
How this tiered delay works
- We gather all pending payloads associated with that lead.
- The payloads are then processed sequentially with a 60-second spacing.
Example: A lead has 3 pending payloads and is now categorized.
- Payload #1: sent immediately
- Payload #2: sent 60 seconds later
- Payload #3: sent 120 seconds later
This protects against conflicts HubSpot can produce when multiple updates hit at the same time while still ensuring these categorized leads are synced as quickly as possible.
Special case: Email Reply vs. Lead Category Updated events
When both an EMAIL_REPLY and a LEAD_CATEGORY_UPDATED event appear in the queue for the same lead, OutboundSync ensures they are processed in the correct order.
Execution Order
EMAIL_REPLYis always processed firstLEAD_CATEGORY_UPDATEDis processed afterward
OutboundSync may apply a minimal delay to the LEAD_CATEGORY_UPDATED event when necessary to maintain this sequence.
This ordering ensures that the reply is present in the CRM before the lead category update triggers any HubSpot workflows or user actions.
Summary of current behavior
| Scenario | Processing Behavior |
| Normal events (Email Sent, Email Open, etc.) | Use default CRM specific queue delay |
| Priority events (Email Reply, Lead Category, etc.) | Skip default delay; execute immediately |
| Category Based Filters | Skips the normal queue; apply sequential 60-sec spacing between that lead’s payloads |
| Email Reply vs Lead Category Updated events | Email Reply is processed first; Lead Category Update gets a small delay to ensure proper sequencing |

