I’ve set up a custom workflow automation that should trigger when a specific custom field changes on opportunity records. The trigger is configured to fire on field “deal_stage_custom” updates and send a webhook to our external system.
The automation works when I manually test it from the workflow builder, but it never fires automatically when users actually change the field value in production. I’ve verified the webhook endpoint is accessible and the payload structure matches our API requirements. The workflow automation has proper permissions enabled. What could cause the trigger to work in manual tests but not on actual field changes?
Check if your trigger is using the correct field key. Custom field keys in triggers need to match the API field name exactly, which might differ from the display name.
Workflow automation permissions can be tricky. Even if the workflow itself has permissions enabled, the trigger might need specific field-level change tracking permissions. Check if “Track Changes” is enabled for your custom field in the field settings.
Check your webhook payload structure. If the payload template references fields that don’t exist in the actual change event, the webhook might fail silently. Enable webhook logging to see if requests are being sent but failing at the receiving end.
I’ve seen this before. The issue is usually field key mapping. When you create a custom field in Zendesk Sell, the display name might be “Deal Stage Custom” but the API key could be “custom_fields.deal_stage_custom” or “cf_deal_stage_custom” depending on how it was created. Manual tests in the workflow builder use mock data that might not reflect the actual field key structure. Check your webhook payload logs to see what field keys are actually being sent when the trigger fires manually versus what’s available when the field changes in production.
Your automation trigger failure stems from three specific configuration issues:
Trigger Field Key Mapping:
The field key in your trigger configuration is incomplete. Custom fields in Zendesk Sell workflows require fully qualified paths. Your current configuration uses "deal_stage_custom" but should use:
The custom_fields. prefix is mandatory for custom field triggers. Manual tests in the workflow builder work because they bypass field resolution and use mock data, but production triggers require exact API field paths.
Webhook Payload Structure:
Your webhook payload template must match the actual field change event structure. When a custom field changes, the event payload looks like:
If your webhook template references fields incorrectly (like {{deal_stage_custom}} instead of {{custom_fields.deal_stage_custom}}), the webhook fails silently because the template variables don’t resolve.
Workflow Automation Permissions:
Three permission layers must be properly configured:
Field-level change tracking: Navigate to Admin → Custom Fields → deal_stage_custom → Settings. Enable “Track field changes” checkbox. Without this, field changes aren’t captured in the event system that triggers workflows.
Workflow execution permissions: Your workflow needs opportunities.read and webhooks.execute permissions. Check Admin → Workflows → Your Workflow → Permissions tab.
User role permissions: Users changing the field must have opportunities.edit permission. If they’re updating via API or bulk operations, they need opportunities.bulk_edit as well.
Complete solution:
Update trigger configuration with fully qualified field key (custom_fields.deal_stage_custom)
Enable change tracking for the custom field in field settings
Verify webhook payload template uses correct field paths with custom_fields. prefix
Enable webhook logging (Admin → Integrations → Webhooks → Enable Logging) to diagnose any remaining payload issues
Test by making a field change with logging enabled, then check webhook logs for actual payload sent
Common additional issues:
Some field changes from API imports bypass workflow triggers unless “Trigger workflows on API updates” is enabled in workflow settings
Bulk updates might be batched, causing triggers to fire with delay
If the field value changes from A to B to A in quick succession, some trigger configurations skip firing (check your trigger’s “Fire on every change” setting)
After implementing these fixes, the trigger should fire reliably on actual field changes. The manual test working confirms your webhook endpoint is accessible; the issue is purely in the trigger’s field resolution and event capture configuration.