Sample workspaceHome-services company
Sample data

Illustrative endpoints. No connected accounts. Review and configure the JSON before running it in n8n.

Example workflow · 01

Webhook to Contact Upsert

6 nodes · Explicit failure routing

Download n8n JSON

Trigger A booking webhook receives a contact event.

Systems · illustrative n8n · GoHighLevel contact API · Owner notification webhook

Example: Webhook to Contact UpsertYesNoBooking webhookwebhookDedupe eventcodeUpsert contacthttpRequestRequest failed?ifNotify ownerhttpRequestRecord successcodeExample: Webhook to Contact UpsertYesNoBooking webhookwebhookDedupe eventcodeUpsert contacthttpRequestRequest failed?ifNotify ownerhttpRequestRecord successcode

Why it is shaped this way

  1. Dedupe key: the incoming eventId, not the customer’s name.
  2. Upsert: the receiving CRM matches on email in this fictional contract.
  3. Retry: none automatically; failed requests go to a person for review.
  4. Error branch: an HTTP error is carried into the explicit failure check.
  5. Alert: notify the owner; sample static dedupe needs durable storage in production.

What to change before running

  • Replace the contact and notification endpoints and configure credentials.
  • Match incoming fields and the eventId dedupe key to your source contract.
  • Replace sample static dedupe with durable storage and test the failure branch.
Example workflow · 02

Missed-Call Text-Back

6 nodes · Explicit failure routing

Download n8n JSON

Trigger A missed-call webhook receives a call event.

Systems · illustrative n8n · GoHighLevel call webhook · SMS provider · Callback queue

Example: Missed-Call Text-BackYesNoMissed callwebhookDedupe callcodeSend text-backhttpRequestText failed?ifFlag callbackhttpRequestLog text-backcodeExample: Missed-Call Text-BackYesNoMissed callwebhookDedupe callcodeSend text-backhttpRequestText failed?ifFlag callbackhttpRequestLog text-backcode

Why it is shaped this way

  1. Dedupe key: callId makes repeated webhook deliveries a single attempt.
  2. Send: the illustrative SMS endpoint accepts a fictional callback number.
  3. Retry: none automatically, to avoid duplicate customer messages.
  4. Error branch: failed sends create a callback alert instead of a success record.
  5. Alert: a person follows up; credentials and a durable call ledger are required.

What to change before running

  • Replace the SMS and callback endpoints and configure sending credentials.
  • Map callId and the caller number, then replace sample dedupe with durable storage.
  • Set your message and contact permissions; test duplicate calls and SMS failure routing.
Example workflow · 03

Hourly Failed-Event Alert

6 nodes · Explicit failure routing

Download n8n JSON

Trigger An hourly schedule checks the failed-event queue.

Systems · illustrative n8n · Failed-event API · Owner notification webhook

Example: Hourly Failed-Event AlertYesNoHourly checkscheduleTriggerRead failed eventshttpRequestBuild digestcodeNeeds attention?ifSend owner digesthttpRequestNo failed eventscodeExample: Hourly Failed-Event AlertYesNoHourly checkscheduleTriggerRead failed eventshttpRequestBuild digestcodeNeeds attention?ifSend owner digesthttpRequestNo failed eventscode

Why it is shaped this way

  1. Dedupe key: eventId collapses repeats inside each hourly digest.
  2. Window: the example feed contract returns failures from the previous hour.
  3. Retry: none automatically; an unavailable feed also raises an alert.
  4. Error branch: feed errors become a digest so missing data stays visible.
  5. Alert: one owner digest; delivery failures remain in the execution log.

What to change before running

  • Replace the queue and owner-notification endpoints and configure credentials.
  • Choose the schedule, timezone and failed-event fields for your receiving system.
  • Add a last-seen checkpoint and test empty queues, read errors and notification errors.