How to use webhooks

A webhook is an automatic notice: when something happens in Rabbiit, the system sends the event to a URL you registered. The other system (ERP, automation, data warehouse) reacts at once — without asking every few minutes whether any hour changed.

In Rabbiit the administrator registers the URL, chooses the event types, and follows each delivery attempt. Only whoever administers the account creates and manages webhooks.

💡 Plan: near-real-time webhooks are part of Ultimate. There is a limit of active webhooks; inactive ones do not take a slot.

Who it is for

Administrator — creates the subscription, chooses the events, activates or deactivates, and opens the history when the other end does not receive.

Operations / integration — sets the destination URL and uses the delivery detail (payload, HTTP response, error) to close the diagnosis.

Manager and team member — usually do not enter this screen. The effect is indirect: the system the team already uses updates on its own.

Where to find it

Integrations, webhooks and API screenIntegrations, webhooks and API screen Settings > Integrations

On the same API page there are two webhook tabs:

  • Webhooks — registration, events, and active limit
  • Event deliveries — history of each send

Only administrators operate these tabs.

How it works in Rabbiit

  1. Open Settings > Integrations and the Webhooks tab.
  2. Click New webhook. Enter a name the team will still recognize months from now (“Client X ERP”, “Billing automation”).
  3. Enter the destination URL — the HTTPS address that will receive the POST.
  4. Select the event types. Choose only what that integration needs; too many events become noise and cost.
  5. Optional: enter a token (secret) or leave it blank for Rabbiit to generate one. Use that value to validate the X-Signature header on deliveries. The secret appears at creation; later, if you need to change it, use Generate new secret (the previous one stops working at once).
  6. Save. Rabbiit fires a POST to the URL whenever one of the chosen events happens on the account.

Each webhook can be activated or deactivated. Deactivating does not delete the registration and does not count toward the active limit. You can edit events and URL, or delete when the integration ends.

Use a webhook when the other system needs to react (create an invoice, update a spreadsheet, trigger a flow). To pull data on demand, use the API and access tokens.

Available events

When you register the webhook you choose one or more types. The code (project.created, time_entry.updated, and so on) is what arrives in the payload and what appears in the history.

Project

  • project.created — project created
  • project.updated — project updated
  • project.deleted — project deleted

Client

  • customer.created — client created
  • customer.updated — client updated
  • customer.deleted — client deleted

Rate

  • rate.created — rate created
  • rate.updated — rate updated
  • rate.deleted — rate deleted

User

  • user.created — user created
  • user.updated — user updated
  • user.deleted — user deleted

Task

  • task.created — task created
  • task.updated — task updated
  • task.deleted — task deleted

Team

  • team.created — team created
  • team.updated — team updated
  • team.deleted — team deleted

Team member

  • team_user.created — user added to a team
  • team_user.deleted — user removed from a team

Project member

  • project_user.created — user added to a project
  • project_user.updated — the user’s assignment on the project changed
  • project_user.deleted — user removed from a project

Project task

  • project_task.created — task linked to the project
  • project_task.updated — the task link on the project changed
  • project_task.deleted — task unlinked from the project

Time entry

  • time_entry.created — time entry created
  • time_entry.updated — time entry updated
  • time_entry.deleted — time entry deleted
  • time_entry.timer_started — timer started
  • time_entry.timer_stopped — timer stopped

To-do list

  • todo_list.created — list created
  • todo_list.updated — list updated
  • todo_list.deleted — list deleted
  • todo_list.restored — list restored

To-do

  • todo.created — to-do created
  • todo.updated — to-do updated
  • todo.deleted — to-do deleted
  • todo.restored — to-do restored

Hour approval

  • timesheet_approval.created — hour approval created (week submission)
  • timesheet_approval.update — hour approval updated (approval, rejection, or another status change)

Follow the deliveries

On the Event deliveries tab the administrator sees each send attempt:

  • Event — the type that fired
  • Status — Pending, Delivered, Failed, or Retrying
  • HTTP — destination response code
  • Attempts and next attempt — when Rabbiit tries again after a failure
  • Created at — dispatch date

Filters by status and by event type help find the failure. View details opens the payload sent, the response body, and the error message — without having to guess whether the URL went down, authentication refused, or there was a timeout.

If the account does not integrate with anything, ignore these tabs. Submitting and approving the week and reports cover day-to-day work without a webhook.

In this article