BuddyWorkflowBuddyWorkflowAPI Reference
Inbound Integration API · v1

BuddyWorkflow API documentation

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.

Base URL

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.

Authentication

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.

Endpoints

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.

POST/api/public/zapier/lead

Create a new lead in the CRM pipeline (stage: Inquiry).

Required
namestringLead's full name.
Optional
emailstringContact email.
phonestringContact phone number.
companystringCompany / business name.
projectstringWhat they're inquiring about.
valuenumberEstimated deal value.
messagestringFree-text message from the lead.
Example request
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."}'
Example response
{
  "ok": true,
  "action": "lead",
  "id": "abc123",
  "message": "lead created"
}
POST/api/public/zapier/client

Create a new client record in the CRM.

Required
namestringClient's full name.
Optional
emailstringContact email.
phonestringContact phone number.
companystringCompany / business name.
projectstringAssociated project name.
valuenumberClient lifetime value estimate.
notesstringInternal notes about the client.
Example request
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."}'
Example response
{
  "ok": true,
  "action": "client",
  "id": "abc123",
  "message": "client created"
}
POST/api/public/zapier/invoice

Create an invoice for a client.

Required
amountnumberInvoice total in dollars.
Optional
clientstringClient name to attach the invoice to.
emailstringClient email (used to match/create the client).
duestringDue date, ISO 8601 (YYYY-MM-DD).
Example request
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"}'
Example response
{
  "ok": true,
  "action": "invoice",
  "id": "abc123",
  "message": "invoice created"
}
POST/api/public/zapier/activity

Log an activity / note against the workspace timeline.

Required
summarystringShort description of the activity.
Optional
kindstringCategory label, e.g. "call", "email", "meeting".
detailstringLonger detail text.
emailstringRelated client email.
Example request
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"}'
Example response
{
  "ok": true,
  "action": "activity",
  "id": "abc123",
  "message": "activity created"
}

Responses & status codes

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.

200Success — the record was created.
400Bad request — invalid JSON body or a missing required field.
401Unauthorized — missing or invalid connection key.
404Unknown action — the path segment is not one of lead / client / invoice / activity.

Scope & limits

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.

Need help integrating?

Email us and we'll help you wire up your Zap or custom integration.

hello@buddyworkflow.com
© BuddyWorkflow — bookkeeping, CRM and marketing in one place.
HomePrivacyContact