A simple REST API for pushing records into a BuddyWorkflow workspace — new leads, clients, invoices and logged activities. Every call is a single action, so a Zap built on top of it stays inside Zapier's free 2-step limit. High-volume streams (transactions, orders, ad-spend) are handled by native connectors and CSV import, not this API.
All requests go over HTTPS to:
https://www.buddyworkflow.com/api/public/zapier
Content type is JSON. Send Content-Type: application/json and a JSON object body.
Each request is authenticated with a per-workspace connection key. Send it as a header on every POST:
x-buddyworkflow-key: bw_zap_xxxxxxxxxxxxxxxxxxxx
A Bearer token is also accepted: Authorization: Bearer bw_zap_…. Find and rotate your key inside the app under Connections → Connect via Zapier. Rotating the key immediately invalidates the previous one. Keep the key secret — it grants write access to your workspace's CRM.
There are four actions. Each is a POST to /api/public/zapier/{action}. A GET to the same path returns a descriptor (required/optional fields) and needs no key — handy for testing.
Create a new lead in the CRM pipeline (stage: Inquiry).
curl -X POST https://www.buddyworkflow.com/api/public/zapier/lead \
-H "Content-Type: application/json" \
-H "x-buddyworkflow-key: bw_zap_…" \
-d '{"name":"Jordan Lee","email":"jordan@studio.com","company":"Lee Studio","value":2400,"message":"Interested in a brand shoot."}'{
"ok": true,
"action": "lead",
"id": "abc123",
"message": "lead created"
}Create a new client record in the CRM.
curl -X POST https://www.buddyworkflow.com/api/public/zapier/client \
-H "Content-Type: application/json" \
-H "x-buddyworkflow-key: bw_zap_…" \
-d '{"name":"Priya Shah","email":"priya@acme.com","company":"Acme Co","notes":"Referred by Jordan."}'{
"ok": true,
"action": "client",
"id": "abc123",
"message": "client created"
}Create an invoice for a client.
curl -X POST https://www.buddyworkflow.com/api/public/zapier/invoice \
-H "Content-Type: application/json" \
-H "x-buddyworkflow-key: bw_zap_…" \
-d '{"amount":1800,"client":"Priya Shah","email":"priya@acme.com","due":"2026-08-01"}'{
"ok": true,
"action": "invoice",
"id": "abc123",
"message": "invoice created"
}Log an activity / note against the workspace timeline.
curl -X POST https://www.buddyworkflow.com/api/public/zapier/activity \
-H "Content-Type: application/json" \
-H "x-buddyworkflow-key: bw_zap_…" \
-d '{"summary":"Discovery call completed","kind":"call","detail":"45 min · scoped the project","email":"priya@acme.com"}'{
"ok": true,
"action": "activity",
"id": "abc123",
"message": "activity created"
}Every response is a JSON object. On success ok is true and an id for the new record is returned. On failure ok is false and error describes what went wrong.
This API is for low-volume, event-driven records only. Do not use it to stream bank transactions, store orders, or ad-spend rows — those belong in native connectors or CSV import. Requests are processed synchronously; retry on a 5xx with exponential backoff. There is no OAuth flow — a static per-workspace API key is the only credential.
Email us and we'll help you wire up your Zap or custom integration.
hello@buddyworkflow.com