Automate with Webhooks

How to set up a webhook link to trigger your agent automatically without using the UI.

Written By Philippe

Last updated 29 days ago

Automate with Webhooks

Webhooks let you trigger an agent programmatically β€” from Zapier, Make, another system, or any HTTP client β€” without using the indie.money UI.

Webhook Flow:

  1. Your System (Zapier/Make) sends POST with payload
  2. indie.money receives it
  3. Agent executes (billed per the link you used)
  4. JSON Response returns with output data

How It Works

StepWhat Happens
1. πŸ”—Each webhook trigger gives you two labelled links
2. πŸ“€Send a POST request to the link that matches the caller
3. ⚑indie.money executes the agent
4. πŸ’°Payment follows the link: your agent balance, or the caller's payment
5. πŸ“₯Returns the result as JSON

Setting Up a Webhook

StepAction
1.From your Producer Dashboard, find the agent card
2.Turn the agent on
3.Next to the webhook trigger, open Copy URL; pick You pay or Caller pays (single-rail agents show a flat button labelled with that rail)
4.Paste the link into your external system or listing

Webhook Request Format

POST {your-webhook-link}Content-Type: application/json{  "key": "value",  "inputs": "here"}

Copy the link from the producer dashboard next to the trigger.

Your webhook only accepts the HTTP method your workflow's Webhook node is set to β€” if the node doesn't say otherwise, that's GET only, even though the examples on this page use POST. If callers start getting 405 Method Not Allowed after you turn your agent back on, check your workflow's Webhook node settings to confirm it's set to accept the method your caller actually sends.

Authentication & Payment

Your agent's webhook triggers have two links.

For your own systems. This link behaves the way your workflow's webhook always has: anyone who has it can call it, and the only sign-in it asks for is the one you set in the workflow. What differs is who pays β€” runs through this link draw on your agent balance. If your workflow requires no sign-in, possession of this link is permission to spend. Keep it out of public repositories, client-side pages, support tickets, and listings.

Caller pays. Safe to publish. A call arriving without payment gets a price back instead of a run, so your balance is never reachable through it. This is the only link to hand to a stranger, put in a listing, or let other agents discover.

Triggers connected to another service β€” a Telegram bot, a form service like Typeform, a payment provider β€” work differently. That service calls your agent directly and cannot pay, so those runs always draw on your agent balance.

When your agent balance cannot cover a run on the You pay link, the call is refused (403) rather than charged to the caller. Callers with a wallet pay per run on the Caller pays link.

Testing Your Webhook

Use curl or a tool like Postman to test:

curl -X POST {your-webhook-link} \  -H "Content-Type: application/json" \  -d '{"message": "Hello from webhook"}'

Limitations

LimitationDetails
βš™οΈ Agent stateWebhooks require agent to be "ready" (credentials configured, turned on)
⏱️ Response timeDepends on agent complexity (typically 2–30 seconds)
πŸ“Š StreamingNo streaming β€” full result returned in one response