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

  1. A public HTTPS URL that accepts POST requests and answers quickly.
  2. Permission to edit organization settings.
  3. Somewhere to store the signing secret Clipflow generates.

Step 1: Create an endpoint

  1. Open Organization settings → API.
  2. Find Webhook endpoints and choose Add endpoint.
  3. Give it a title you will recognise later.
  4. Paste the URL Clipflow should post to.
  5. Choose which events it should receive.
  6. 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 2xx immediately 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_type inside your handler.
  • Subscribe narrowly in production. comment.created on 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.


Was this page helpful?

Related articles

Need more help with this?

Contact support