Overview
Webhook Integrations enable your Utari workers to respond automatically to events from external applications. When something happens in a third-party app—like a meeting ending, a form submission, or a payment completing—that app can trigger your Utari worker to process the information and take action, creating powerful automated workflows.How Webhook Integrations Work
Event Occurs in External App
- Meeting recording completes (Fathom, Zoom)
- Form submitted (Typeform, Google Forms)
- Payment received (Stripe, PayPal)
- Email received (Gmail, SendGrid)
- Calendar event created (Google Calendar)
App Sends Webhook
Utari Worker Activated
Worker Takes Action
- Extract and analyze data
- Update other systems
- Send notifications
- Create documents
- Trigger workflows
Setting Up Webhook Integrations
Part 1: Configure Utari Worker
Choose or Create Worker
- Good for general-purpose automation
- Can handle multiple webhook types
- Specialized for specific webhook events
- Tailored instructions for consistent handling
- Easier to track and manage
Add Required Integration (If Needed)
Create Webhook Trigger
Configure Webhook Details
- Enables security verification
- Ensures data comes from legitimate source
- Prevents unauthorized webhook calls
Configure Prompt Template
{{payload}}- Full webhook payload as JSON{{payload.field}}- Specific field from payload (e.g., payload.title){{payload.nested.field}}- Nested field access{{timestamp}}- When the webhook was received{{trigger_name}}- Name of this trigger
- Utari Basic (Recommended for most webhook processing tasks)
Create Trigger
- Webhook URL: Starts with
https://utari.up.railway.app/v1/triggers/... - Secret Token: One-time display (if enabled)
x-webhook-secret headerWebhook URL and Secret Token
After creating your webhook trigger, you’ll receive: Webhook URL: Configure your external service to send POST requests to this URL:x-webhook-secret header:
Example Request:
Part 2: Configure Third-Party App
Find Webhook Settings
Create New Webhook
Select Trigger Events
Add Secret Token (If Required)
Configure Data Scope
Save and Activate
Example Webhook Integrations
Meeting Recording Automation (Fathom Example)
Fathom Meeting Processor
Form Submission Processing
Typeform Lead Capture
Payment Processing
Stripe Payment Automation
Calendar Event Automation
Meeting Preparation Assistant
Monitoring and Managing Webhooks
Viewing Webhook Activity
Access Trigger History
Review Recent Runs
Examine Run Details
Refining Webhook Prompts
- Be Specific
- Avoid Questions
- Handle Edge Cases
- Use Payload Variables
Webhook Security
Use Secret Tokens
Validate Payload
Monitor Activity
Limit Scope
HTTPS Only
Error Handling
Common Webhook Providers
- Meeting & Communication
- Forms & Surveys
- E-commerce & Payments
- Project Management
- CRM & Sales
- Fathom: Meeting recordings and transcripts
- Zoom: Meeting completed, recording available
- Google Meet: Recording uploaded
- Slack: Message posted, file shared
- Discord: Message sent, member joined
- Microsoft Teams: Meeting ended
- Transcription and summarization
- Action item extraction
- Meeting notes distribution
- CRM updates from call notes
Troubleshooting
Webhook not triggering
Webhook not triggering
- Webhook URL copied correctly to third-party app
- URL starts with
https://utari.up.railway.app/v1/triggers/ - Third-party app webhook is enabled/active
- Event type selected in third-party app
- Test webhook manually in third-party settings
- Check third-party app webhook logs for errors
- Verify worker is active in Utari
Worker asking for input instead of executing
Worker asking for input instead of executing
Can't access specific data fields
Can't access specific data fields
- Check a recent webhook run in trigger history
- View the raw payload received
- Identify correct field names
- Update prompt with correct variable syntax
{{payload.field}}for top-level fields{{payload.nested.field}}for nested fields
transcriptId but you used transcript_id, match the exact field nameIntegration tools not available
Integration tools not available
- Integration is connected in worker
- API key is valid and active
- Required tools are enabled
- Worker has permission to use integration
- Integration connection wasn’t disconnected
Webhook timing issues
Webhook timing issues
- Some webhooks fire before data fully processed
- Add wait time: “Wait 30 seconds after receiving webhook”
- Implement retry logic for data retrieval
- Check if third-party offers “processing complete” event
Secret token authentication failing
Secret token authentication failing
- Secret token is included in
x-webhook-secretheader - Token was copied correctly (no extra spaces)
- Third-party service supports custom headers
- Token hasn’t expired or been regenerated
Too many webhook triggers
Too many webhook triggers
- Filter events more specifically in third-party app
- Add conditional logic to prompt: “Only process if status equals completed”
- Consider batching: Process every N minutes instead of real-time
- Disable webhook temporarily if testing