Send a webhook from an event trigger
Use an event trigger when you need a webhook for something the standard events do not cover: a timesheet approved, a task completed, a quote accepted, a purchase order approved. The trigger sends a trigger.fired event, and you can narrow it with Drum’s trigger filters.
Before you begin
You need:
- A webhook subscription that includes the
trigger.firedevent. See Set up a webhook - Access to Event Triggers: you are an admin, or your role has the
customisationpermission
1. Create the trigger
- Open your user menu and select Profile.
- Under Fundamental Data, select Event Triggers.
- Select New Trigger.
- In Triggered From, select the kind of record, such as Timesheet.
- In Event, select the event, such as Timesheet is approved.
- In Action, select Send Webhook.
- Under Trigger Schedule, select Immediate to send as soon as the event happens. Select Daily at a set time to send once a day, at the hour you choose in the account’s time zone.
- If filters are offered for this kind of record, add any you need. Records tied to a project can be filtered by client, project type, project status and team.
- Turn on Enable this trigger.
- Select Save Trigger.
The events each kind of record offers are listed in Events.
2. Handle the event at your endpoint
Every trigger sends the same event, trigger.fired. Tell triggers apart with the fields Drum adds to the body:
| Field | Example | Meaning |
|---|---|---|
trigger_source |
timesheet |
The Triggered From choice, in snake case. opportunity and project are separate |
trigger_model |
timesheet |
The record type. An opportunity’s is project, because opportunities are stored as projects |
trigger_event |
status_approved |
The Event choice |
data is the record, in its payload shape. For example, an approved timesheet:
{
"event": "trigger.fired",
"timestamp": "2026-10-12T23:00:02.118204Z",
"trigger_model": "timesheet",
"trigger_source": "timesheet",
"trigger_event": "status_approved",
"data": {
"id": 3301,
"type": "Timesheet",
"attributes": {
"id": 3301,
"status": "approved",
"start_date": "2026-10-05",
"end_date": "2026-10-11",
"employee_id": 57,
"approved_by_id": 12,
"created_at": "2026-10-04T22:12:44.000000Z",
"updated_at": "2026-10-12T22:59:58.512301Z"
}
}
}
Route on trigger_source and trigger_event together.
3. Test it
Make the event happen in Drum, for example approve a test timesheet. With an Immediate trigger the request arrives within seconds. With a daily trigger it arrives at the set hour.
Things to know
- A trigger sends to every active subscription that includes
trigger.fired. A subscription cannot choose individual triggers, so ignore the ones a system does not need at its endpoint. - A daily trigger sends the record as it is when the trigger runs, not as it was when the event happened.
- Turning a trigger off stops new events. Turning the subscription off (pausing it) stops all of them.