Most GoHighLevel accounts I get called in to fix were never broken. They were set up in the wrong order: a pipeline created before anyone decided what a lead was, calendars added after the booking page went live, and follow-up workflows written for a form that no longer exists. The platform gets blamed for what was really a sequencing problem.
This is the order I use when I set up a GoHighLevel CRM for a client. It takes one working day for a single business, and it produces an account where every lead lands in a pipeline stage, gets followed up automatically and can be found again later. You do not need the API, custom code or a developer to follow it. You need a clear idea of how you sell, and about six uninterrupted hours.
Before you touch the software: decide three things
GoHighLevel will happily let you build a pipeline with fourteen stages and forty custom fields. Nobody will use it. Answer these three questions on paper first, and the setup almost writes itself.
- What counts as a lead? A form submission, a missed call, a booked call, a WhatsApp message? Each one is a different entry point and needs its own tag and source.
- What are the real stages between “new lead” and “paid”? Write down what actually happens in your business today, not what a template suggests. Most service businesses have five stages or fewer.
- Who does what, and when? If a lead sits in “Contacted” for three days, who gets nudged? If nobody, the automation has to do it.
The one-page rule If your sales process does not fit on one page, the CRM will not fix that. Simplify the process first; the software can grow later.
Step 1: Sub-account settings that everything else depends on
Open the sub-account (the business location, not the agency view) and go to Settings → Business Profile. Complete every field: legal business name, address, website, time zone and the business email. These values are pulled into email footers, calendar confirmations and, importantly, into A2P registration later. A mismatch between the name here and the name on your business registration is one of the most common reasons an A2P campaign gets rejected, which I cover in the A2P 10DLC registration guide.
Then work through these, in this order:
- Time zone. Set it once and never change it. Workflows, calendars and reporting all read it.
- Email service. Connect a sending domain under Settings → Email Services and add the DKIM and DMARC records at your DNS host. Sending from the shared default domain is fine for testing, not for real clients.
- Phone number. Buy a local number under Settings → Phone Numbers. In the US it cannot send SMS to customers until A2P registration is approved, so start that process on day one; approval takes days to weeks.
- Team. Add each user with the right role. Give sales staff “User” access with only the pipelines they work in. Only one or two people need “Admin”.
- Custom values. Under Settings → Custom Values, store anything you will reuse in messages: booking link, support email, office hours. Change it once, it updates everywhere.
Step 2: Custom fields and tags, before any contact exists
A CRM is only as useful as what you can filter by later. Create the fields you will actually segment on: service interested in, budget range, lead source, preferred contact method. Keep it under ten. Every field you add is a field your team has to fill in.
Tags do a different job. They record events and states rather than attributes: source-website-form, booked-call, no-show, customer. I use a simple naming convention: a prefix for the category, then a hyphen, then the value. It keeps the tag list readable when it reaches a hundred entries, which it will.
| Use a custom field when… | Use a tag when… |
|---|---|
| The value is one of several options (service type, budget) | Something happened (booked, no-show, paid) |
| You will merge it into emails or SMS | You need to trigger a workflow |
| Each contact has exactly one value | A contact can have many at once |
Step 3: Build the pipeline around your real stages
Go to Opportunities → Pipelines and create one pipeline with the stages you wrote down earlier. For a typical service business it looks like this:
- New lead — anything that just arrived and has not been spoken to.
- Contacted — a human or the automation has reached out and is waiting on a reply.
- Call booked — an appointment exists on the calendar.
- Proposal sent — a quote or estimate is with the customer.
- Won and Lost — closed either way, with a reason.
Resist adding “Follow-up 1”, “Follow-up 2” as stages. Follow-ups are actions, not stages; the workflow handles them. If you want the detailed reasoning behind stage design, the pipeline and automation work I do for clients almost always starts by removing stages rather than adding them.
Step 4: Calendars that book themselves
Create one calendar per appointment type under Calendars. A discovery call and an on-site survey have different lengths, different buffers and different questions, so they should not share a calendar. On each one, set:
- Availability that reflects reality, with buffers before and after so back-to-back bookings cannot happen.
- A minimum notice (usually 2–4 hours) so nobody books a call that starts in ten minutes.
- Custom form questions that feed your custom fields, so the booking itself qualifies the lead.
- Confirmation and reminder messages. Two reminders (24 hours and 1 hour before) cut no-shows noticeably; I explain the timings in appointment-reminder automation work.
Connect the calendar to Google or Outlook so external events block time. Then book a test appointment from an incognito window and check that it appears in the calendar, creates the contact, adds the tag and moves the opportunity to “Call booked”. If any of those four things does not happen, fix it now, not after fifty real bookings.
Step 5: Lead capture — every entry point creates an opportunity
The single biggest failure I see: forms that create contacts but never create opportunities. The contact exists somewhere in the list; nobody follows up because nothing appears in the pipeline.
For each entry point, decide the tag and the pipeline stage it should land in:
| Entry point | Tag | Lands in |
|---|---|---|
| Website contact form | source-website-form | New lead |
| Calendar booking | booked-call | Call booked |
| Missed call (text-back) | source-missed-call | New lead |
| Facebook lead ad | source-facebook | New lead |
| Manual add by staff | source-manual | New lead |
If your website is on WordPress, the form can submit straight into GoHighLevel through a webhook or the native integration; the mechanics are in the WordPress-to-CRM integration work I do, and I will publish a dedicated walkthrough for it. The point is the same whatever the tool: the form must create the opportunity, not just the contact.
Step 6: The three workflows every account needs on day one
You can build hundreds of workflows. Start with three. They cover ninety per cent of the value.
1. New lead → instant response and pipeline entry
Trigger: contact created with a source tag. Actions: create or update the opportunity in “New lead”, send a short SMS and email within a minute (“Thanks — I’ve got your enquiry, I’ll reply within the hour”), then notify the owner. Speed matters more than polish here; the reply within five minutes is the whole point.
2. Appointment booked → confirmations and reminders
Trigger: appointment status “confirmed”. Actions: move the opportunity to “Call booked”, send the confirmation with the meeting link, schedule the 24-hour and 1-hour reminders, and add an internal task if the booking form flagged a high-value lead.
3. No reply after 48 hours → nudge, then hand back to a human
Trigger: opportunity sits in “Contacted” for two days without a reply. Actions: one friendly SMS, one email the next day, then a task assigned to the salesperson. Automation should chase; it should not chase forever.
Once these run cleanly for a couple of weeks, look at the twelve workflows I usually add next for service businesses — review requests, reactivation, no-show recovery and the missed-call text-back that pays for the whole subscription on its own.
Step 7: Import contacts last
Now that fields, tags and the pipeline exist, import your existing contacts under Contacts → Import. Prepare the spreadsheet with one column per custom field, a column for tags, and clean phone numbers in international format (+1…, +44…). Tick “add to workflow” only if you deliberately want the automation to run for old contacts — usually you do not.
Run a small test import of ten rows first. Check that the fields mapped, the tags applied and no duplicates were created. Then import the rest.
Step 8: The go-live checklist
Before a single real lead hits the account, walk through this list. It takes twenty minutes and saves weeks of confusion.
- Submit every form and book every calendar from a device that is not logged in. Confirm the contact, the tag, the opportunity and the automated reply all appear.
- Send a test SMS to your own phone and confirm the reply lands in the conversation view.
- Check email deliverability: send to a Gmail and an Outlook inbox and make sure it does not land in spam. If it does, the DKIM or DMARC record is wrong.
- Open the pipeline on a phone. Your team will use it there more than on a desktop.
- Set up the daily digest under Settings → Notifications so someone sees new leads without opening the app.
- Confirm A2P registration status. Until it is approved, US SMS will be filtered or blocked.
Common mistakes that undo a good setup
- Too many pipelines. One pipeline per sales process, not per person or per service.
- Automation without an exit. Every workflow needs a condition that stops it when the person replies or books. Otherwise a customer who already paid gets “just checking in” messages.
- No lead source tracking. If you cannot report which channel produced the won deals, you cannot decide where to spend. Tag the source at entry, every time.
- Changing the time zone later. Every scheduled action shifts. Set it correctly at the start.
- Building in the agency view. Settings, pipelines and workflows belong in the sub-account. Snapshots are how you copy them to other accounts.
When to get help instead of doing it yourself
This guide is enough for a single business with one sales process. Get help when you have multiple locations that need consistent snapshots, when you need the website, CRM and ad tracking wired together as one system, or when you are an agency reselling the platform and cannot afford to learn on a client’s account. That is the work I do day to day — GoHighLevel CRM setup, automation and integrations for owners and for agencies under a white-label arrangement.
Further reading: GoHighLevel Help Center.
FAQ
How long does a GoHighLevel CRM setup take?
A clean single-location setup takes four to eight hours of focused work: settings, one pipeline, calendars, lead capture, two or three workflows and testing. Agencies with many sub-accounts save time by building one snapshot and cloning it.
Do I need the $297 plan to set up a CRM in GoHighLevel?
No. Everything in this guide works on the Starter plan for a single business. The Unlimited plan matters when you run several sub-accounts, need the API, or want to white-label the platform for clients.
Should I import my old contacts before or after building the pipeline?
After. Build the pipeline stages, custom fields and tags first, then import contacts with those tags and fields mapped. Importing first means cleaning the same data twice.
Can GoHighLevel replace my email marketing tool as well?
For most service businesses, yes. Email campaigns, SMS, forms, calendars and pipelines live in one place, which is the main reason to move. Keep a specialist tool only if you rely on features it does not have, such as advanced e-commerce segmentation.
Want the setup done for you, tested, and handed over with a walkthrough? Book a free strategy call and bring your one-page sales process — or a rough idea of it. We will map the rest on the call.