Automate with Bupple
Sending results out
End an automation by sending what it made to a webhook, a public link, a Slack channel or a teammate's email — after every real run that finishes well.
An automation keeps what it makes in Bupple. Send the result is the step that hands it on: after every real run that finishes well, Bupple sends the files, their links and the run's data to each place you named. This is how Bupple ends up in the middle or at the start of your other tools' workflows.
Open the automation's page and find Send the result. It shows only when sending is switched on for your workspace.

The four places
| Place | What you give | What arrives |
|---|---|---|
| A webhook | An https:// URL — Zapier's Catch Hook, n8n's Webhook, Make's Custom webhook, Clay's webhook source, your server | One signed JSON call with the run, its data, its drafts and every file with its link |
| A public link | Nothing | One link per file, open to anyone for a set number of days — shown on the run's page and carried in a webhook's call |
| A Slack channel | The channel, for example #launch | A message with the result, posted by the Bupple Slack app you added in Bupple Line. Invite the app to the channel first |
| A teammate's email | A teammate's address | An email with the files. Only people in your workspace — Bupple does not email strangers |
You can add up to five places. Each is tried on its own: if one fails, the others still get the result, and the run doesn't fail because of it.
When it sends
- After a real run that succeeded. A Test run sends nothing, and neither does a run that failed or was skipped.
- Once per run and place. A run is never sent twice to the same place.
- Each run's page says what happened, place by place — sent, retrying, failed or skipped, in words, with the public links it made.
What a webhook receives
When you add A webhook, Bupple shows its signing secret once. Copy it: each call carries a bupple-signature header made with it, checked the same way as any Bupple webhook. A call that fails is tried again by itself, on the same schedule as other webhooks.
The body's type is automation.run.result, and its data is:
{
"automation": { "id": "wf_9600e55c87dc4e3890ff", "name": "CRM Lead Welcome Note" },
"run": {
"id": "wfr_…",
"kind": "link",
"status": "succeeded",
"started_at": "2026-11-10T22:43:50.722Z",
"finished_at": "2026-11-10T22:45:33.030Z",
"url": "https://app.bupple.io/workflows/wf_9600e55c87dc4e3890ff/runs/wfr_…"
},
"input": { "first_name": "Sam", "company": "Northwind", "asked_about": "a demo" },
"files": [
{ "id": "…", "name": "Welcome video — Sam.mp4", "kind": "video", "library_url": "https://app.bupple.io/storage?asset=…", "public_url": "https://…" }
],
"links": [],
"drafts": ["Hi Sam, welcome to Bupple — …"]
}inputis the data the run was started with — from a start link or the API — so the next step knows which lead it is about. It isnullfor a run started by a schedule.fileslists every file the run made.public_urlis filled only when the automation also has A public link; otherwise it isnullandlibrary_urlopens the file in Bupple for your team.draftsare the run's finished drafts, in full.
Want a link anyone can open in the webhook?
Add both A public link and A webhook. The public links are made first, so the webhook's call already carries each file's public_url — ready for an email, a CRM field or a LinkedIn message.
Sending it somewhere else
Drive, YouTube, your email tool, your CRM — anything that is not one of the four places is one step away: send A webhook to Zapier, n8n or Make, and let that flow save the file to Google Drive, upload it, or hand the public link to Klaviyo, MailerSend or HubSpot. See the recipes.
To publish a video to YouTube — public, unlisted or private — from Bupple itself, schedule it as a post: the API's schedule_post takes youtube_visibility (see Bupple at the end).
Start links
Give an automation a link that any tool can call with its data — a CRM, a form, Clay, or the HTTP step of Zapier, n8n or Make — and each call starts one run with that data.
Webhooks
Every event you can send from Bupple to your own URL, what each call carries, and how to check that a call really came from Bupple.