Agent Webhooks
A webhook trigger gives an agent its own URL. Anything that can send an HTTPPOST — Stripe, GitHub, a cron job, an internal script — runs the agent by calling it.
1
Create the trigger
On the agent’s configuration page, open the Triggers section, click + Add, and choose Webhook. Give it a name and either a prompt (drop the Raw JSON badge where the payload should land) or turn on Send raw JSON instead of a prompt.
2
Copy the URL
Gumloop shows the URL as soon as the trigger is created, along with a
curl example. You can copy it again any time from the trigger’s detail panel.3
POST to it
Request & Response
The agent runs in the background, so the response never carries its output. Have the agent report results through a tool (Slack, email, a database write) or check the run in the agent’s history.
Finding Your User ID
Many API endpoints require auser_id parameter. You can find your User ID on the Profile Settings page, under your email address.
Authorization
Agent webhooks need no credentials, but the rest of the API does. You can authenticate using one of two methods:- API Key in URL
The default method is to include your API key as a query parameter in the URL. This method is simpler and works well for most integrations:
All examples below use the Authorization header method, but you can substitute the API key method in any of them.
Triggering Saved Workflows
Workflow webhooks are the pre-agent way to trigger Gumloop from your own app, and they still work exactly as before. For new integrations, use an agent webhook instead.
Getting a workflow's webhook snippet
Getting a workflow's webhook snippet
All Gumloop workflows can be triggered from an external app using webhooks. Open your workflow and click the Webhooks button on the top left of the pipeline builder to see the code you need.You can switch between the API-key-in-URL and Authorization header methods in the webhook modal by checking or unchecking the “Use Authorization Header” option.
Sending inputs
Sending inputs
Most useful workflows require some input from the user. There are two main approaches to handle inputs in your Gumloop workflows:With this approach, you can send any JSON structure directly in your request body:The Webhook Inputs node will capture this entire JSON payload as a string, which you can then parse using a JSON Reader node to extract individual fields or work with the entire data structure.
- Webhook Input Node (Recommended)
- Named Input Nodes
Webhook Input Node with JSON Parsing
This is the recommended approach for handling inputs. Use a Webhook Input node to capture the entire request body as a string, then parse it using a JSON Reader node. This method provides maximum flexibility and makes it easy to handle complex, nested data structures.Reading outputs and polling for run status
Reading outputs and polling for run status
When you run a Gumloop pipeline remotely, the POST request to You can use Response structureThe key attributes here are:
https://api.gumloop.com/api/v1/start_pipeline will return a run_id and a URL that links to the workflow run.Here is an example of the response:run_id to poll a separate endpoint to get information about the ongoing run like the status, logs, and outputs when it is completed.Polling for run statusIn order to poll, make a GET request to https://api.gumloop.com/api/v1/get_pl_run with run_id as a query parameter.Here is an example of a GET request with cURL, Python, and JavaScript and their outputs: