Snapshot imported and nothing fires: a diagnostic order
A GoHighLevel snapshot not working is usually one of eight things. A triage order, cheapest check first, with the evidence to look for at every step.
7 min read
The import finished. The assets are there. You submit a test form and nothing happens.
Most people respond by opening the biggest workflow and reading it top to bottom, which is the most expensive check available and almost never the answer. There is a cheaper order.
This is a triage order, not the list of mistakes
Two other posts on this site cover neighbouring ground and it is worth saying which is which, because reading the wrong one wastes an hour.
The nine snapshot mistakes is preventative. It names the errors that cause this situation, so you avoid them. The step by step install guide is the happy path, the order to do things in when nothing has gone wrong yet.
This one assumes it already has. It is ordered by cost of checking, not by likelihood, so work down it rather than jumping to the interesting-looking cause. The interesting-looking cause is rarely it.
The two free checks
Both take under a minute and between them they account for most of these.
Is the workflow published
Imported workflows very often land as drafts. A draft does nothing at all and tells you nothing about it. No error, no log entry, no warning banner on the contact record.
Open the workflow list and look at the state column for every workflow, not just the one you think is involved. This is thirty seconds and it resolves a genuinely large share of these.
Is the trigger attached to something that happened
A trigger points at a specific asset. A specific form, a specific calendar, a specific tag. If the snapshot brought three forms and you tested with a fourth one you built yourself last week, the workflow is behaving correctly by ignoring you.
Open the trigger and read what it names. Then confirm that named thing is the thing you touched. Broken or mismatched references are the most common import artefact, and they look completely normal in the builder.
Can the account send at all
If the workflow is published and the trigger is right, stop looking at automations and check the pipe.
An account that is not cleared to send SMS will still run every workflow to completion. The step shows as executed. The message is filtered or dropped somewhere out on the carrier network and nothing in the interface says so. The same is true of email from an unauthenticated sending domain, which reports success and lands in spam.
Prove it outside the workflow: send a single manual message to a phone, ideally on a different carrier from your own, and a single email to an address that is not on the same domain as the account. If neither arrives, the crate is fine and the problem is registration. The A2P 10DLC guide covers what to do about it, and the honest answer is usually to wait.
Do this check before any of the ones below. Everything below assumes messages can leave the building.
What the message is made of
Messages can be sending and still be useless on arrival. Two reasons, both quick to confirm.
Empty custom values
A message built as “Thanks for calling {{custom_values.business_name}}” is correct and will send a sentence with a hole in it until that value is filled. Some templates fail more loudly than that and simply do not send.
Open Settings, then Custom Values, and look for blanks. Then read one real outbound message on a contact’s timeline rather than in the template editor, because the editor shows you the token and the timeline shows you what the customer got. The custom values guide covers the set a well-built crate expects.
Booking links that go nowhere
Users do not travel in a snapshot, so every imported calendar arrives without an owner and often without availability. A reminder that links to an ownerless calendar sends perfectly and drops the customer onto a page that cannot offer them a slot.
Click your own booking link from your own test message, on a phone, logged out. That is the only version of the test that means anything.
Did the asset arrive
Snapshots do not always land whole. An individual workflow or funnel can fail during the load while everything around it succeeds, and the result is an account that looks complete until you go looking for one specific thing.
In Agency View, under Account Snapshots, open the version detail for what that sub-account received and look for anything marked as failed or removed rather than loaded. A failed asset can usually be retried on its own without redoing the entire import. If the snapshot came from a share link rather than from your own agency, ask the vendor to confirm the link is still live and still points at the version you think you took.
Two things covering one event
The opposite symptom, and it is worth checking here because it is diagnosed in the same place.
If a contact gets two welcome texts, or lands in two pipelines, or gets an offer and a cancellation in the same minute, nothing is broken in either workflow. Two of them are listening for the same event, usually because the crate went into a sub-account that already had automations in it.
List every trigger in the account, sorted by what it listens for. Duplicates are obvious in that view and invisible in every other one.
The case where nothing is broken, and how to prove it
Before you conclude anything, rule out patience and then build a test that does not need it.
Nothing is broken and you are early
Wait steps are longer than people remember writing them.
A nurture sequence with a two day gap between the first and second touch is not failing at hour four. A review request timed to the completion moment does not fire until the job is marked complete, which means until somebody moves the card. Before declaring a fault, open the contact and read where they currently sit in the workflow. GoHighLevel will tell you which step a contact is parked on and when it expects to move them.
Proving a workflow works without waiting for it
Build one test contact with your own mobile number and a real inbox you can open. Run it through deliberately, and then read the contact’s own activity timeline rather than watching your phone.
The timeline is the record of truth. It shows what fired, in what order, at what time, and what the outcome was. Your inbox only shows you the things that succeeded, which is precisely the wrong half of the picture when you are debugging.
Where a wait step makes a real test impractical, shorten the wait, run the contact through, then set the wait back. Change one thing at a time and put it back before you change the next.
| Symptom | Look at first | Then |
|---|---|---|
| Nothing at all | Draft state | Trigger |
| Sent, not received | Sending status | Test to another carrier |
| Blank in message | Custom values | Timeline copy |
| Two of everything | Trigger list | Pause duplicate |
When to stop, hand it over, and what to decide next
Give it one pass down this order. If the pipe is open, the workflow is published, the trigger is right, the values are filled and the timeline still disagrees with reality, you are past the point where more reading helps.
That is when a second pair of eyes is cheaper than another afternoon. The installation and fit-out service exists for accounts that need a crate taken from imported to genuinely live, and the white label support desk exists for agencies who would rather not be the one holding the account at 6pm. Every crate also ships with 12 hours of installation support to be used within 14 days, which is what that time is for.
Decide whether you are debugging a fit or a fault. A fault is an asset that did not arrive. Everything else on this list is a fit, and a fit is finished work rather than broken work.
If the crate turned out to be the wrong shape for the business rather than the wrong configuration, that is a different problem, and the full catalog is organised by aisle for exactly that reason. The health and wellness aisle is worth a look if you are running booking-led recall, and the crates there, the dental practice crate and the chiropractic clinic crate among them, are built around calendars rather than around forms.