dixa routing rule not triggered on webhook
Fix Dixa routing rules that don't fire on webhook-created conversations: the rule's conditions don't match what the webhook payload actually contains. Use when routing rules work for some channels but never for webhook conversations, when conversations sit unassigned, or when a new rule fires for nothing. Not for Dixa API auth errors, agent availability issues, or widget problems.
TL;DR
Routing rules match on conversation attributes, and webhook-created conversations carry whatever your payload sent, which is often less than the rule expects. If the rule wants a tag, a language, or a custom field that the webhook never sets, it never matches. The fix is to compare the rule's conditions against a real webhook conversation's attributes and close the gap on whichever side is wrong.
The query
dixa routing rule not triggered on webhookUse this when
- A routing rule never fires for webhook-created conversations
- Webhook conversations sit unassigned in the queue
- A new rule fires for nothing at all
Not for
- Dixa API authentication errors
- No agents available to receive routed chats
- Dixa widget loading issues
Steps
1. Inspect a real webhook conversation's attributes
Open an unrouted webhook conversation and read its actual attributes: tags, language, custom fields, channel. Compare each against the rule's conditions. The mismatch is usually obvious once you see both side by side.
Expected output: the rule's expected attributes next to the conversation's actual ones.
2. Fix the rule or the payload, not both randomly
If the rule is right, add the missing attributes to the webhook payload at creation. If the payload is right, loosen the rule. Changing both without knowing which was wrong creates a rule that fires for the wrong conversations.
Expected output: one deliberate change with a stated reason, then a retest.
3. Check rule order and exclusivity
An earlier rule may be grabbing the conversation first, or the rule may be set to stop processing after a match elsewhere. Review the rule list top to bottom with a test conversation.
Expected output: the test conversation landing on the intended rule and no other.
4. Test with the webhook, not the UI
Manually creating a test conversation in the UI sets attributes the webhook doesn't. Always test routing with a real webhook call carrying a production-shaped payload.
Expected output: a webhook-created test conversation routing correctly end to end.
Variant phrasings
dixa conversation not routed automatically
Steps 1 and 2: compare attributes, fix the right side.
dixa routing rule conditions webhook
Step 4's test discipline catches payload-vs-UI differences.
Why it happens
Routing rules are written against the Platonic conversation: tagged, languaged, fully attributed. Webhook conversations are whatever your code sent, which is the minimum viable payload someone wrote at 5pm. The rule is fine; it's matching against data that was never there.
Edge cases
- Rule changes need retesting with webhooks. UI tests lie about webhook payloads.
- Multiple webhooks creating conversations need consistent payloads or per-source rules.
- Dixa evaluates rules at creation time. Attributes added later don't retrigger routing.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_8lFMoS1YBthO0DAVhM7IxA
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.