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
Something happens in the third-party application:
- 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
The external app sends data to your Utari webhook URL with information about what happened.
Utari Worker Activated
Your configured worker receives the webhook data and executes your custom prompt.
Webhooks enable real-time automation—workers respond immediately when events occur, without manual intervention or scheduled checking.
Setting Up Webhook Integrations
Part 1: Configure Utari Worker
Choose or Create Worker
Select a worker for handling webhook events:Option A: Use Existing 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)
If the webhook source requires API access:
Not all webhooks require integration. Some only send data without needing API access back to the service.
Create Webhook Trigger
Set up the webhook endpoint:Method 1: From WorkerMethod 2: From Triggers Dashboard
Configure Webhook Details
Trigger Name:Give your webhook a descriptive nameExamples: “Fathom Meeting Processor” or “Typeform Submission Handler”Description (Optional):Brief description of what this webhook handlesSecurity:Toggle “Require Secret Token” (Recommended)
- Enables security verification
- Ensures data comes from legitimate source
- Prevents unauthorized webhook calls
Configure Prompt Template
Agent Instructions:Define what your agent should do when a webhook is receivedBasic Structure:Available Variables:Use these placeholders in your template - they’ll be replaced with actual webhook data:Model Selection:Choose which model to use for processing webhooks
{{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)
Webhook 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
Example Webhook Integrations
Meeting Recording Automation (Fathom Example)
Fathom Meeting Processor
Setup:Agent Instructions:Result: Every meeting automatically processed and documented
Form Submission Processing
Typeform Lead Capture
Setup:Agent Instructions:Result: Instant lead qualification and routing
Payment Processing
Stripe Payment Automation
Setup:Agent Instructions:Result: Automatic payment processing and customer communication
Calendar Event Automation
Meeting Preparation Assistant
Setup:Agent Instructions:Result: Automatic meeting preparation and briefings
Monitoring and Managing Webhooks
Viewing Webhook Activity
Refining Webhook Prompts
- Be Specific
- Avoid Questions
- Handle Edge Cases
- Use Payload Variables
❌ Vague: “Process this data”✅ Specific:
Webhook Security
Use Secret Tokens
Always enable secret token requirement to verify webhook authenticity
Validate Payload
Configure worker to validate expected data structure
Monitor Activity
Regularly review webhook logs for unusual patterns
Limit Scope
Only subscribe to events you actually need to process
HTTPS Only
Webhook URLs use HTTPS by default (utari.up.railway.app)
Error Handling
Include error handling in prompts for failed operations
Common Webhook Providers
- Meeting & Communication
- Forms & Surveys
- E-commerce & Payments
- Project Management
- CRM & Sales
Supported Services:
- 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
Check:
- 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
Fix prompt to be more directive:❌ Current: “What should I do with this data?”✅ Updated: “Process automatically without confirmation. Execute these steps immediately: [specific steps]”Add explicit instruction to not ask questions
Can't access specific data fields
Can't access specific data fields
Debug payload structure:
- 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
Verify:
- 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
Consider:
- 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
Verify:
- 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
Optimize:
- 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
Best Practices
Dedicated Workers
Create specialized workers for each webhook type for better control
Detailed Prompts
Write comprehensive prompts that handle all scenarios
Test Thoroughly
Test webhooks multiple times with different data before production
Monitor Regularly
Review webhook execution logs to catch issues early
Error Handling
Include fallback actions for when operations fail
Document Workflow
Keep notes on what each webhook does and why
Use Secret Tokens
Always enable secret token authentication
Iterative Improvement
Refine prompts based on actual execution results
Summary
You’ve successfully learned how to:Set up webhook integrations between third-party apps and Utari
Configure workers to process webhook events automatically
Write effective webhook processing prompts with payload variables
Monitor and troubleshoot webhook executions
Apply security best practices with secret tokens
Create automated workflows triggered by external events