Overview
Zapier connects 6,000+ apps to create automated workflows (called "Zaps"). By adding ModelRiver as a webhook action, you can trigger AI requests from any Zapier trigger: form submissions, new emails, Slack messages, CRM updates, and more.
What you get:
- AI-powered automation without writing code
- Trigger ModelRiver from any of 6,000+ apps
- Process AI responses and send results anywhere
- Automatic failover and cost tracking through ModelRiver
Quick start
Step 1: Create a Zap
- Go to zapier.com and click Create Zap
- Choose your trigger app (e.g., Google Forms, Slack, Gmail)
- Configure the trigger event
Step 2: Add a Webhooks action
- Search for Webhooks by Zapier as the action app
- Choose POST as the action event
- Configure the webhook:
| Field | Value |
|---|---|
| URL | https://api.modelriver.com/v1/ai |
| Payload Type | json |
| Headers | Authorization: Bearer mr_live_YOUR_API_KEY |
| Headers | Content-Type: application/json |
- Set the Data fields:
| Key | Value |
|---|---|
workflow | my-chat-workflow |
messages[0][role] | user |
messages[0][content] | {{trigger data from step 1}} |
format | wrapped |
Step 3: Process the response
Add another action to use the AI response: send an email, update a spreadsheet, post to Slack, etc.
Example Zaps
Summarise form submissions
Trigger: Google Forms → New response Action 1: Webhooks by Zapier → POST to ModelRiver
1{2 "workflow": "form-summariser",3 "messages": [4 {5 "role": "system",6 "content": "Summarise this form submission in 2-3 sentences."7 },8 {9 "role": "user",10 "content": "Name: {{name}}, Feedback: {{feedback}}, Rating: {{rating}}"11 }12 ]13}Action 2: Gmail → Send email with summary
Auto-reply to Slack messages
Trigger: Slack → New message in channel Action 1: Webhooks by Zapier → POST to ModelRiver
1{2 "workflow": "slack-responder",3 "messages": [4 {5 "role": "system",6 "content": "You are a helpful team assistant. Answer the question concisely."7 },8 {9 "role": "user",10 "content": "{{message_text}}"11 }12 ]13}Action 2: Slack → Send Channel Message with AI response
Enrich CRM contacts
Trigger: HubSpot → New contact created Action 1: Webhooks by Zapier → POST to ModelRiver
1{2 "workflow": "lead-qualifier",3 "messages": [4 {5 "role": "system",6 "content": "Based on the company info, classify this lead as 'hot', 'warm', or 'cold'. Respond with JSON: {\"score\": \"...\", \"reason\": \"...\"}"7 },8 {9 "role": "user",10 "content": "Company: {{company}}, Role: {{job_title}}, Source: {{lead_source}}"11 }12 ]13}Action 2: HubSpot → Update contact with lead score
Translate support tickets
Trigger: Zendesk → New ticket Action 1: Webhooks by Zapier → POST to ModelRiver
1{2 "workflow": "translator",3 "messages": [4 {5 "role": "system",6 "content": "Translate the following support ticket to English. Preserve formatting."7 },8 {9 "role": "user",10 "content": "{{ticket_description}}"11 }12 ]13}Action 2: Zendesk → Add internal note with translation
Using structured outputs
For Zaps that need structured data from AI, use a ModelRiver workflow with a structured output schema:
- Create a workflow with a structured output (e.g.,
{"sentiment": "string", "category": "string", "priority": "string"}) - Use
"format": "wrapped"in the webhook to get the structured data in the response body - Access individual fields in subsequent Zapier steps
Best practices
- Use structured outputs: Makes it easy to extract fields in Zapier
- Use
"format": "wrapped": Returns metadata alongside the response - Test in Zapier's editor: Use the "Test" button to verify the webhook before publishing
- Handle errors: Add a Zapier Paths step to check for errors in the response
- Monitor costs: Each Zap execution uses ModelRiver tokens; track in Observability
Next steps
- Webhooks: Advanced async processing
- API reference: Full endpoint documentation
- Response formats: Raw vs wrapped format