Brault Developers
Guides

Connect Zapier

Trigger Zaps from Brault events and call the API with Webhooks by Zapier.

Brault has no native Zapier app yet (it is on the roadmap). You do not need one: Zapier's webhook trigger receives Brault events, and its HTTP step calls any /v1 route with your API key. This guide wires both directions.

Webhooks by Zapier is a premium app on Zapier's side; check your Zapier plan before building on it.

You need an API key with webhooks:manage (to register the endpoint) and files:write (for the import example). Create one under Settings → Developers in the app, see Get an API key.

1. Trigger a Zapier workflow from a Brault event

Start the Zap with Webhooks by Zapier → Catch Hook. Zapier shows a unique https://hooks.zapier.com/hooks/catch/… URL; register it with Brault.

Zapier needs a sample request before it lets you map fields, so register the endpoint and send the test delivery below, then click Find new records (or the equivalent test button) in the trigger step.

Regionalus.api.brault.appfollows the region selector in the top bar
curl -X POST https://us.api.brault.app/v1/webhooks \
  -H "Authorization: Bearer $BRAULT_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 8f14e45f-2222-4c1a-9c1e-zapier-hook" \
  -d '{
    "url": "<the URL Zapier gave you>",
    "name": "Zapier workflow",
    "events": ["file.created", "comment.created", "transfer.downloaded"]
  }'

Pick any tokens from the event catalogue, or ["*"] for everything. Then send a test delivery so Zapier has a sample payload to map fields from:

Regionalus.api.brault.appfollows the region selector in the top bar
curl -X POST https://us.api.brault.app/v1/webhooks/<webhook_id>/test \
  -H "Authorization: Bearer $BRAULT_API_KEY"

Every delivery body is the event envelope: type, occurred_at, actor, and a minimal data snapshot with the ids you need for the next step. Deliveries are at-least-once with no ordering guarantee, so deduplicate on id if a duplicate would matter to your workflow.

Before production traffic, verify the Brault-Signature header: add a Code by Zapier step right after the trigger that runs the JavaScript verification from the Webhooks page. Catch Hook exposes the parsed body rather than the raw bytes by default, so switch the trigger to Catch Raw Hook when you verify signatures. Stop the Zap when the check fails.

2. Call the Brault API from Zapier

Use Webhooks by Zapier → Custom Request (or POST). Add a header Authorization with value Bearer bsk_…, set Payload Type to json, and fill Data with the request body.

Map ids from the trigger step into the body.

The example below imports a file that another step produced (any public http(s) URL) into a Brault library:

Regionalus.api.brault.appfollows the region selector in the top bar
POST https://us.api.brault.app/v1/files/import
Authorization: Bearer <your key>
Content-Type: application/json
Idempotency-Key: <a unique value per run, e.g. the workflow execution id>

{
  "url": "https://example.com/exports/hero-v3.psd",
  "name": "hero-v3.psd",
  "library_id": "<library_id>"
}

The response is 202 with an import object: status starts at queued, and file_id is set once it reaches succeeded. Either poll GET /v1/imports/<import_id> from a later step, or let Brault call you back: subscribe the endpoint from section 1 to import.completed and import.failed (a successful import also emits a normal file.created). Imports are capped at 5 GiB and 2 concurrent per brandspace.

Anything else in the reference works the same way: same base URL, same header, JSON in and out. Use Idempotency-Key on every POST that creates something, so a retried run does not create it twice.

3. Rate limits and errors

Zapier retries failed HTTP steps on its own schedule. Brault answers 429 with a Retry-After header when a bucket or the monthly quota is hit, and every error carries a request_id you can quote to support. See Rate limits and Conventions.

On this page