Follow one customer enquiry all the way through
Suppose a new enquiry enters GoHighLevel, an n8n workflow prepares a summary with Claude, and the result becomes a draft for the assigned team member. The demo may look complete after one successful run. Production needs to handle the same event arriving twice, a slow model response and an update that succeeds just before the connection drops.
Claude Code is a development tool that can help build and test the integration. The deployed workflow needs its own runtime, such as an application using the Claude API. Keep development access, production credentials and customer-data permissions distinct.
Claude Code: development capabilities
Record the event before doing the work
Authenticate incoming events using the mechanism supported by the source. Persist accepted events before acknowledging them where the integration contract permits. Use a stable upstream event identifier, together with the workflow operation or version, to identify a repeat of the same work.
A contact ID plus a rounded minute is not a reliable duplicate key. It can collapse two legitimate updates into one or allow a retry in a later minute to run again. Claim work atomically in a durable store so concurrent workers cannot both decide that they are first.
Track progress and recover abandoned work
Keep explicit states for received, processing, waiting for review, completed and failed work. A worker lease or equivalent mechanism lets the system detect a job abandoned after a crash. A stale worker must be prevented from applying changes after another worker has taken ownership.
An error notification alone is not a recovery queue. Store enough restricted information to identify and resume the failed operation, with bounded retries and a clear owner. Monitor stalled runs independently because a process that crashes may never execute its own error handler.
| Failure to simulate | Behaviour to verify |
|---|---|
| Two copies arrive together | One logical operation is accepted; a separate genuine update remains distinct. |
| Worker crashes before writing | The job is recovered without losing the enquiry. |
| The update succeeds but its response is lost | The destination is reconciled before another write is attempted. |
| The contact changes during processing | A stale draft is held or regenerated against the current record. |
| The model returns an unsupported claim | The draft fails review rather than becoming an approved message. |
| A provider remains unavailable | Retries stop at the agreed limit and an operator can recover the work. |
Validate the action as well as the output
A structured response helps software read the result; it does not establish that the text is correct or the action is allowed. Validate the permitted fields, the current record state and the requesting user’s authority before a write. Keep a draft summary separate from sending a message, changing a pipeline stage or deleting a contact.
A confidence number supplied by the model is not permission to take an action. Define approval from the business process and consequence of the change. Treat customer text as data even when it contains instructions aimed at the assistant.
Make recovery part of the handover
Use the actual status and response information from each integration. Distinguish a rejected request from a timeout with an unknown outcome. Respect provider retry guidance, cap time and cost, and avoid repeatedly sending an operation that cannot succeed without human intervention.
n8n: HTTP Request node configuration
Give the operator a view of unresolved work, a safe replay procedure and a way to pause the affected workflow. Before release, run the failure tests with approved synthetic records and verify the recovery yourself. Measure completed business tasks and correction effort, not just successful model calls.
Discuss a similar workflow
Bring a description of the process, the systems involved and one example of where work gets stuck. We can use discovery to establish the requirements, dependencies and next step before preparing a solution and estimate. Please leave private customer, applicant and patient records out of the website enquiry.
