A webhook is a push notification between systems. Instead of your tool asking an API every few minutes “anything new?”, the source system sends an HTTP request to your endpoint when an event occurs, with a payload describing it, for example change_order.approved with the CO number, amount and job. Webhooks are usually signed with a secret so the receiver can verify they’re genuine.
Why it matters
Webhooks make integrations event-driven and fast. Approve a CO, and the payroll tool, BI model or a Teams/Slack channel hears about it within seconds. They also cut the load and delay of constant polling.
Worked example
Illustrative: when CO #14 for $86,400 is approved on Riverside Medical Center, a webhook fires to a company endpoint. That endpoint posts a message to the project channel, updates a forecast sheet, and opens a task for the PM to issue the matching subcontract change order to Volt Electric.
Common mistakes
- Not verifying the signature, so anyone who finds the URL can send fake events.
- Assuming delivery happens exactly once; receivers should handle retries and duplicates.
- Doing slow work inside the webhook handler instead of queueing it, causing timeouts.
How os.construction handles it
Webhooks are planned, alongside the API, and not available yet. We’re designing the event list with founding contractors and will label any docs Preview.