How to trigger your systems when a content project, task, post or review changes in Clipflow
Send Clipflow events to your endpoint, verify webhook deliveries, and automate work when projects, media, posts, or tasks change.
Updated
React to the work your team is already doing instead of polling for updates
A webhook endpoint is a URL Clipflow posts to when something happens in your organization. A file gets approved, a post fails to publish, a task is completed, and your system hears about it without polling the API.
Webhook endpoints belong to an organization, so each brand or client can send events somewhere different.
Before you start
- A public HTTPS URL that accepts
POSTrequests and answers quickly. - Permission to edit organization settings.
- Somewhere to store the signing secret Clipflow generates.
Step 1: Create an endpoint
- Open Organization settings → API.
- Find Webhook endpoints and choose Add endpoint.
- Give it a title you will recognise later.
- Paste the URL Clipflow should post to.
- Choose which events it should receive.
- Save, then copy the secret. Use it to verify that incoming requests really came from Clipflow.
New endpoints are enabled by default. The enabled switch lets you pause deliveries without deleting the configuration.
Step 2: Choose your events
Subscribe to the specific events you handle. You can also subscribe to everything with *, which keeps working as new event types ship.
Projects
| Event | Fires when |
|---|---|
project.created |
A project is created |
project.status_updated |
A project’s workflow status changes |
project.visibility_updated |
A project is hidden or unhidden |
projects_user.created |
Someone is assigned to a project |
Media
| Event | Fires when |
|---|---|
media_file.created |
A file is added to a project |
media_file.media_status_updated |
A file moves between Pending, Changes required, Reviewed, Approved, or Declined |
media_file.transcription_completed |
Clipflow finishes transcribing a file |
thumbnail.created |
A thumbnail is added |
Posts
| Event | Fires when |
|---|---|
post.created |
A post is created, including by an automation |
post.status_updated |
A post moves between Draft, Ready, Done, or Failed |
post.publish_failed |
A scheduled post could not be published |
Tasks and collaboration
| Event | Fires when |
|---|---|
task_list.created |
A task list is added to a project |
task_list_item.completed |
A task is ticked off |
comment.created |
Anyone comments |
external_link.created |
An external link is attached |
Step 3: Handle the delivery
Every payload includes its event_type, so one endpoint can route many events.
Your handler should:
- Verify the signature against the endpoint secret before trusting anything.
- Answer fast. Return a
2xximmediately and do the real work in a background job. Slow handlers cause retries. - Expect duplicates. Retries mean the same event can arrive twice, so make handling idempotent.
- Ignore unknown fields. Payloads gain fields over time, and a strict parser will break on the first addition.
Endpoints carry a version_key so payload shapes can change without breaking what you already built.
Tips and best practices
- One endpoint per system, not per event. Route on
event_typeinside your handler. - Subscribe narrowly in production.
comment.createdon a busy organization is a lot of traffic if you are not using it. - Watch
post.publish_failed. It is the event worth alerting a human about, since a failed publish is a hole in the calendar. - Rotate the secret if it is ever exposed, and update your verifier at the same time.
- Log what you drop. When an integration looks wrong, the first question is always whether the event arrived.
Frequently asked questions
What happens if my endpoint is down?
Delivery is retried. Persistent failures stop reaching you, so fix the endpoint and re-enable it.
Can I subscribe to every event?
Yes, use *. New event types are then included automatically.
Do webhooks fire for things automations do?
Yes. A post created by an automation still emits post.created.
Can I send events from several organizations to one URL?
Yes. Create an endpoint in each organization pointing at the same URL, and use the payload to tell them apart.
Is there a way to replay an event?
Not from the app today. Store deliveries on your side if you need to reprocess.
How do webhooks differ from automations?
Webhooks tell your system something happened. Automations do the work inside Clipflow. See How Automations Work.
Related articles
- API Overview: read and write through REST
- MCP Server: connect an AI client
- How Automations Work: react to events inside Clipflow
Was this page helpful?
Related articles
Need more help with this?
Contact support