Integrations
Zapier

Zapier

Monitor your Zapier AI automations with Maev. Each Zap run is tracked as a session in your dashboard with full failure classification and alerting.

How it works

Maev provides a dedicated endpoint for Zapier:

POST https://<your-domain>/api/ingest/zapier

You add a "Webhooks by Zapier" action at the end of your Zap to POST execution data. Maev normalizes the flat key-value payload, runs failure classification, and surfaces everything in the dashboard.

Setup

1. Get your API key

Go to Settings → API Key in your Maev dashboard and copy your key (vl_xxx).

2. Add a "Webhooks by Zapier" action

In your Zap, add a new action step at the end:

  • App: Webhooks by Zapier
  • Event: POST

Configure it:

FieldValue
URLhttps://<your-domain>/api/ingest/zapier
Payload Typejson
HeadersX-API-Key: vl_xxx

3. Set the JSON body

Map your Zap's data fields to Maev's schema. The only required fields are session_id and type. All others are optional enrichment.

{
  "session_id": "your-unique-run-id",
  "type": "llm.call",
  "agent_name": "My Zapier Agent",
  "model": "gpt-4o",
  "input": "The user's prompt here",
  "output": "The model's response here",
  "prompt_tokens": 120,
  "completion_tokens": 340,
  "cost": 0.0024,
  "duration_ms": 1850,
  "status": "success"
}

Setting status to "success" or "error" tells Maev this is the final event and closes the session automatically.

4. For multi-step Zaps

If your Zap has multiple AI steps, send an array of events in a single POST:

[
  {
    "session_id": "run-abc123",
    "type": "llm.call",
    "agent_name": "Research Agent",
    "model": "gpt-4o",
    "input": "Summarize this article...",
    "output": "The article covers..."
  },
  {
    "session_id": "run-abc123",
    "type": "tool.call",
    "tool_name": "web_search",
    "duration_ms": 430
  },
  {
    "session_id": "run-abc123",
    "type": "llm.call",
    "model": "gpt-4o",
    "input": "Now write the final answer...",
    "output": "Based on the research...",
    "status": "success"
  }
]

All events with the same session_id are grouped into one session. The last event with status: "success" or status: "error" closes the session.

5. On errors

For failed Zap runs, add a separate error path with:

{
  "session_id": "run-abc123",
  "type": "span",
  "agent_name": "My Zapier Agent",
  "error": "Step 2 failed: OpenAI rate limit exceeded",
  "status": "error"
}

Maev will classify the failure and trigger any configured alerts.

Payload field reference

FieldRequiredDescription
session_idYesUnique identifier for this run (letters, numbers, -, _ only, max 128 chars)
typeNoEvent type: llm.call, tool.call, retrieval, span, session.end
agent_nameNoName shown in the Agents page
modelNoLLM model used (e.g. gpt-4o, claude-3-5-sonnet)
input / promptNoThe prompt sent to the model
output / completionNoThe model's response
prompt_tokensNoInput token count
completion_tokensNoOutput token count
costNoCost in USD for this step
duration_msNoStep duration in milliseconds
tool_nameNoName of the tool called
errorNoError message if the step failed
statusNo"success" or "error" — closes the session when set
timestampNoISO 8601 timestamp (defaults to now)

Troubleshooting

Session not showing in dashboard

  • Check that session_id only uses letters, numbers, hyphens, and underscores
  • Verify the X-API-Key header value in your Webhooks action
  • Test the Zap and check the webhook step response for error details

Session stuck as "running"

  • Make sure at least one event sends "status": "success" or "status": "error", or send a final event with "type": "session.end"

No failures detected despite errors

  • Send "error": "your error message" in the payload — this is what the classification engine reads