Press / to search

All documentation
docs Operate n8n, Zapier and Make

Runs onWrit Cloud

connect ▸ tools you already run

No node to install. Three mechanisms that already work.

To be straight with you: there is no first-party Writ node for n8n, app for Zapier, or module for Make. Do not go looking in a directory. What exists is three generic mechanisms all three tools already speak — and each one is a five-minute setup.

Everything on this page uses features the tool already ships. Nothing waits on a listing review.

framing ▸ what exists

Pick the direction you need.

The question is which way the call travels. Writ is either the thing your flow calls, or the thing that starts your flow — and OAuth is how a tool holds your credential without you pasting a key into it.

MechanismUse it when
Call Writ from the toolYour flow needs data from, or an action on, a site with no usable API. An HTTP request step does it.
Connect with OAuthYou would rather the tool held a revocable grant than a pasted key — and you want its connection UI to configure itself.
Receive events from WritA change or a finished run should start your flow, rather than your flow polling for it.

call ▸ http request

1 · Call Writ from the tool.

Publish a workflow as an endpoint, then point the tool’s HTTP Request node — or Webhooks by Zapier, or Make’s HTTP module — at it. That is the whole integration.

http-request-step.sh

curl -X POST https://api.usewrit.app/v1/acme/price-check \
  -H "Authorization: Bearer $WRIT_CONSUMER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/product/42"}'
Method and URLPOST to your endpoint path.
AuthorizationA consumer key you mint for this one integration, sent as a Bearer token. Revoke it without touching anything else.
BodyJSON, matching the inputs your workflow declares.
ResponseSynchronous by default: the call waits and hands the result back inline, ready to map into the next step.

When a run is longer than the tool will wait

Ask for a handle up front instead. Send Prefer: respond-async, or add ?async=true if the tool’s HTTP step cannot set a header — you get a 202 and a run handle to poll.

async.sh

curl -X POST https://api.usewrit.app/v1/acme/price-check \
  -H "Authorization: Bearer $WRIT_CONSUMER_KEY" \
  -H "Prefer: respond-async" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/product/42"}'

# Query-parameter form, for tools whose HTTP step cannot set a header:
curl -X POST "https://api.usewrit.app/v1/acme/price-check?async=true" \
  -H "Authorization: Bearer $WRIT_CONSUMER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/product/42"}'

The full endpoint contract — paths, status codes, freshness, polling a run handle — lives on Managed endpoints. This page only restates the parts an automation tool needs.

Managed endpoints →

oauth ▸ self-configuring

2 · Connect with OAuth.

Writ runs an OAuth 2.0 authorization-code server with PKCE, and publishes a discovery document at /api/oauth/.well-known/oauth-authorization-server. Generic OAuth integrations read that document and configure themselves — endpoints, scopes and PKCE method, without you typing any of them.

discovery.sh

curl https://api.usewrit.app/api/oauth/.well-known/oauth-authorization-server
Client typeHow it authenticates
Confidential clientThe Zapier/n8n style: register the app, then use its client secret. Supported at the token endpoint as client_secret_post or client_secret_basic.
Public clientPKCE with no secret at all. Code challenge method S256.
Device codeFor anything that cannot open a browser redirect — approve on another device.

You can review every connected app and revoke any of them at any time. Revoking is the point of using OAuth rather than pasting a long-lived key into a third-party tool.

events ▸ into the tool

3 · Have Writ start the flow.

Every one of these tools gives you a catch-hook URL — a Webhook trigger node in n8n, a Catch Hook in Zapier, a Custom Webhook in Make. Point a Writ monitor or automation at it and your flow starts when something actually happens.

  1. 1 · Copy the catch-hook URL — From the trigger step in your tool.
  2. 2 · Add it as a webhook recipient in Writ — On the monitor or automation that should start the flow.
  3. 3 · Verify the signature — Deliveries are HMAC-signed. Check the signature before you trust the payload.

The exact signature contract, header names and a verification snippet live on Webhooks. If your tool cannot verify a signature in-flow, put a small function step in front of it — the alternative is an endpoint anyone can post to.

Webhooks →

also ▸ two more doors

Two other ways in.

Not every tool needs an HTTP step. If yours already speaks one of these, use it directly:

Anything that speaks MCPPoint it at the Writ MCP server and your workflows arrive as tools, no HTTP wiring at all.
Anything that already talks to OpenAIThe OpenAI-compatible surface takes the same request shape, so an existing client works by changing the base URL.

faq

Integration questions, answered.

Is there a Writ node for n8n, or a Zapier app?
No. There is no first-party n8n node, Zapier app or Make module, and you will not find one in a directory. Use an HTTP request step against a published endpoint, connect over OAuth, or have Writ post to the tool’s catch-hook URL — all three work today with features the tool already ships.
How do I authenticate the HTTP step?
Mint a consumer key for that one integration and send it as a Bearer token. Because it is scoped to that integration, you can revoke it without disturbing anything else you have connected.
My run takes longer than the tool will wait. What now?
Ask for a handle up front. Send Prefer: respond-async, or add ?async=true if your tool’s HTTP step cannot set headers. You get a 202 and a run handle, and you poll for the result in a later step.
Will the tool configure OAuth by itself?
Generic OAuth integrations do, yes — Writ publishes a discovery document at /api/oauth/.well-known/oauth-authorization-server, and the tool reads its endpoints, scopes and PKCE method from there. Confidential clients register and use a client secret; public clients use PKCE with no secret. There is also a device-code flow.
Can I revoke a tool’s access later?
Yes. Connected apps are listed and any of them can be revoked. That is the practical argument for OAuth over pasting a long-lived key into a third-party tool you may stop using.
Do I need any of this if my tool speaks MCP?
No. Point it at the Writ MCP server and your workflows arrive as tools directly. And anything that already talks to OpenAI can use the OpenAI-compatible surface by changing the base URL.

end ▸ wire it

Publish an endpoint and point a step at it.

One HTTP request node is the whole integration, and it works in every tool on this page.