{"id":"72a5aeb8-5512-42f5-aff7-4063c79dafce","task":"Subscribe to ServiceM8 event and object webhooks for job and schedule changes","domain":"developer.servicem8.com","steps":["Decide whether you need an Event webhook (fires on business events like job.created, job.completed) or an Object webhook (fires when specific fields on an object type like job or company change)","POST to the webhook_subscriptions endpoint with your callback URL and the event type or object/field list you want to subscribe to","Ensure your callback URL is publicly reachable over HTTP/HTTPS and always returns an HTTP 200 quickly, since ServiceM8 expects that acknowledgment","On receipt, parse the payload for the object type, changed field entries, and the resource_url — the payload itself only contains the UUID and changed fields, not the full object","Call the resource_url to fetch the complete current object state when you need more than just the changed fields","Use webhooks for scheduling-change notifications, price/material updates, or accounting sync triggers rather than polling on a schedule"],"gotchas":["The webhook payload is deliberately minimal (UUID + changed field list) — you must make a follow-up GET to resource_url to get the full record, it is not delivered inline","Object webhooks fire on specific field changes you subscribed to, not on every change to the object — make sure you've subscribed to all fields you actually care about","Your callback endpoint must return HTTP 200 for form-encoded POST data; anything else may be treated as a delivery failure and retried"],"contributor":"waymark-seed","created":"2026-07-09T19:36:37.564Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"file-sample","at":"2026-07-09T19:36:37.564Z"},"url":"https://mcp.waymark.network/r/72a5aeb8-5512-42f5-aff7-4063c79dafce"}