Documentation

Zapier + ModelRiver

No-code AI automation. Trigger ModelRiver requests from form submissions, Slack messages, CRM updates, and 6,000+ other apps.

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

  1. Go to zapier.com and click Create Zap
  2. Choose your trigger app (e.g., Google Forms, Slack, Gmail)
  3. Configure the trigger event

Step 2: Add a Webhooks action

  1. Search for Webhooks by Zapier as the action app
  2. Choose POST as the action event
  3. Configure the webhook:
FieldValue
URLhttps://api.modelriver.com/v1/ai
Payload Typejson
HeadersAuthorization: Bearer mr_live_YOUR_API_KEY
HeadersContent-Type: application/json
  1. Set the Data fields:
KeyValue
workflowmy-chat-workflow
messages[0][role]user
messages[0][content]{{trigger data from step 1}}
formatwrapped

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

JSON
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

JSON
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

JSON
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

JSON
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:

  1. Create a workflow with a structured output (e.g., {"sentiment": "string", "category": "string", "priority": "string"})
  2. Use "format": "wrapped" in the webhook to get the structured data in the response body
  3. Access individual fields in subsequent Zapier steps

Best practices

  1. Use structured outputs: Makes it easy to extract fields in Zapier
  2. Use "format": "wrapped": Returns metadata alongside the response
  3. Test in Zapier's editor: Use the "Test" button to verify the webhook before publishing
  4. Handle errors: Add a Zapier Paths step to check for errors in the response
  5. Monitor costs: Each Zap execution uses ModelRiver tokens; track in Observability

Next steps