On this page

How to Clone a GoHighLevel Appointment Reminder Workflow to Another Account

An appointment-reminder workflow is tied to a calendar, and that calendar is account-specific — which is exactly why a plain copy stops working. Here is how to move the whole reminder sequence into another account with its calendar and timing rewired.

Appointment-reminder sequences are among the automations agencies rebuild most often. Nearly every client with a calendar needs one, and they look almost identical from account to account — so it is frustrating that GoHighLevel gives you no clean way to carry the one you have perfected into the next account. Native duplication copies a workflow only inside the sub-account it already lives in, and the sticking point for a reminder flow is its calendar: that link is account-specific and does not survive a plain copy. This guide explains the calendar dependency, then shows how to save the workflow once and deploy it into each account with the calendar matched for you.

What an appointment-reminder workflow does

A reminder workflow usually starts from a calendar event. Its trigger is "Appointment" or "Customer Booked" on a particular calendar, and from there it runs a short sequence of waits and messages: a confirmation the moment someone books, a reminder the day before, another an hour out, and often a follow-up if the appointment is marked no-show. It may also add a tag, update a custom field, or move an opportunity so the pipeline reflects the booking. It is small by step count, but every step leans on records that live inside the account it was built in.

The calendar dependency that trips up a copy

The reference that matters most in a reminder workflow is the calendar itself. GoHighLevel stores the calendar on the trigger as an id — a string unique to the account it was created in — not as the name you read in the builder. Two accounts can each have a calendar called "Discovery Call" and still hold completely different ids for it.

So when you take the raw workflow into a second account, that calendar id points at nothing. The destination has its own calendars with their own ids, so the trigger references a calendar that does not exist there. The workflow looks intact in the editor, but its starting trigger is dangling and in practice never fires — one of the most common reasons a copied workflow goes quiet.

A reminder workflow that stays silent after a copy almost always has the same cause: the trigger still points at the source account's calendar id, so no booking in the new account ever matches it. Getting the calendar reference right is the whole job.

Reminder timing and message steps

The good news is that everything between the trigger and the finish line travels intact. The wait steps — one day before, one hour before, whatever offsets you set — are part of the workflow build, so they come across unchanged; you do not re-enter a single timing value. The message actions come across too, with their text and the exact order you arranged them in.

What does not travel is the sending infrastructure underneath those messages. A from-address, a sending domain, a phone number and its A2P registration all belong to the destination account, not to the workflow. The reminder steps arrive wired correctly, but the SMS and email they send go out through whatever the new account has connected. Before you switch the workflow on, confirm the destination has a verified phone number and a sending domain, or the steps will run and the messages will not leave.

Cloning it with save and deploy

ExportGHL Workflows treats the move as three steps — save, check, then deploy — so one perfected reminder workflow becomes something you deploy into each account rather than rebuild every time.

  1. Save the workflow from the source account. Open the reminder workflow and save it to your cloud library. The whole build is captured — the calendar trigger, every wait, every message, the tags and field updates — and kept as a reusable item. The original is left untouched.
  2. Open the destination account. Switch to the sub-account or agency you want the reminders running in and go to its Workflows area, so the new copy is owned by the right account.
  3. Run the free readiness Check. Before any credit is spent or anything is deployed, Check previews what will map — the calendar included — what it can auto-create, and what you will need to set up in the destination yourself.
  4. Deploy as a new workflow. Choose your saved workflow and deploy it; on a cross-account deploy, cross-account remap runs automatically, so the calendar and the other references are matched to the destination rather than carried over blind.
  5. Review, reconnect sending, publish. The workflow lands switched off. Check the calendar matched, confirm the account's phone number and sending domain are connected, then turn it on.

Because the workflow sits in your library, putting the same reminders into the next account is just another deploy — you save it once and deploy it as many times as you manage accounts, without re-saving anything.

How remap matches the destination calendar by name

The cross-account remap is what lets the calendar trigger survive the move. On a cross-account deploy, ExportGHL automatically reads the calendar the trigger points at, takes its name, and looks for a calendar with the same name in the destination. Find a match and it rewrites the trigger's id to the destination calendar's id, so a booking on that calendar starts the reminders exactly as it did in the source.

It does the same for every other account-scoped reference at once — the tags it adds, the pipeline and stage it moves opportunities to, the custom fields it updates, the user it assigns — each matched by name against the destination and rewritten. The cleanest result comes from checking that the destination calendar is named the same as the source before you deploy.

What to do if the destination has no matching calendar

Remap only rewrites what it can confidently match. If the destination has no calendar with the same name — because the calendar has not been built yet, or it is named differently — ExportGHL does not guess, and it does not quietly point the trigger at the nearest calendar it can find. It flags the calendar as unmapped and deploys the workflow as a draft instead of publishing it broken.

A draft never runs, so there is no window where bad reminders fire. You have two clean options: create or rename a calendar in the destination to match the source name and redeploy, or open the draft, pick the correct calendar on the trigger by hand, and publish. Either way the reminders end up pointed at a real calendar before anything goes live.

Deploy never overwrites. The reminder workflow always lands as a new workflow, and if any reference — the calendar included — cannot be matched, it lands as a draft. That means you can deploy into a busy, live client account without risking an automation that is already running.

The full end-to-end move, including accounts that are not your own, is covered in copy a workflow between accounts. Your first workflow is free with no card, then you continue on pay-as-you-go credits that never expire or a one-time Toolkit licence — see pricing.

Frequently asked questions

Can I copy an appointment-reminder workflow to another account?
Not with GoHighLevel's own tools — its duplicate copies a workflow only inside the same sub-account. ExportGHL Workflows is built for the cross-account move: you save the reminder workflow from the source account to a cloud library, open the destination, and deploy it there as a new workflow. On a cross-account deploy, cross-account remap runs automatically, so the calendar trigger and the other references are matched to the destination and the reminders actually fire.
Does the calendar link come across with the workflow?
The calendar trigger comes across, but the link is stored as an id that only exists in the source account, so on its own it points at nothing in the destination. On a cross-account deploy, cross-account remap runs automatically, matching the calendar by name and rewriting the trigger to the destination calendar's id. If no calendar matches by name, it is flagged and the workflow is deployed as a draft rather than published broken.
What if the new account has a different calendar?
If the destination calendar has a different name, remap cannot match it automatically, so the trigger is flagged and the workflow lands as a draft. You can either rename or create a calendar in the destination to match the source name and redeploy, or open the draft and pick the correct calendar on the trigger by hand before publishing. Nothing runs until a real calendar is wired in.
Will the reminder timing stay the same?
Yes. The wait steps — a day before, an hour before, whatever offsets you set — are part of the workflow build and come across unchanged, along with the message steps and the order you arranged them in. What does not travel is the sending infrastructure: the phone number, A2P registration, from-address and sending domain belong to the destination account, so confirm those are connected before you switch the reminders on.

Move your reminders into the next account free

No credit card. Save your appointment-reminder workflow once and deploy it into each account, with the calendar matched for you.

Start free