Before you start
- A GoHighLevel account (start the 30-day free trial before cancelling Keap)
- Admin access to your Keap account
- All contacts exported as a CSV with tags and custom fields
- A written list of your active campaigns, pipeline stages, and automation sequences
Time: 8 to 16 hours. Difficulty: Intermediate. Plan: GoHighLevel Starter ($97/mo) or higher.
Steps
1. Export contacts and tags from Keap
In Keap, go to CRM and then Contacts. Export all contacts including tags, custom fields, and notes. Keap exports to CSV. Download the file and open it in a spreadsheet to verify the data looks correct before importing anywhere.
2. Document your Keap campaigns and sequences
Open each campaign in Keap and write down the goal, triggers, steps, and email content. Note the delays between each step. This documentation is your blueprint for rebuilding in GoHighLevel. Take screenshots of complex campaign canvases.
3. Map Keap pipeline stages to GoHighLevel
List all your Keap pipeline stages. In GoHighLevel, go to Opportunities and create a new pipeline with matching stage names. GoHighLevel pipelines work the same way as Keap opportunity stages, with drag-and-drop cards per stage.
4. Set up custom fields and tags in GoHighLevel
In GoHighLevel, go to Settings and then Custom Fields. Create fields that match the ones you had in Keap (such as Lead Source, Budget, or Industry). Also create matching tags in the Contacts section. These will populate when you import the CSV.
5. Import contacts into GoHighLevel
Go to Contacts in GoHighLevel and click Import. Upload your Keap export CSV. Map each column to the correct GoHighLevel field. Tags can be mapped directly. GoHighLevel deduplicates by email, so it is safe to re-import if you need to update records.
6. Recreate email sequences as GoHighLevel workflows
In GoHighLevel, go to Automation and create a new workflow for each Keap campaign sequence. Use triggers such as "Contact tag added" or "Form submitted" to match the Keap campaign triggers. Add email, SMS, and wait actions in the same order as your Keap sequences.
7. Rebuild lead capture forms and landing pages
If you had Keap web forms or hosted landing pages, rebuild them in GoHighLevel under Sites. GoHighLevel has a drag-and-drop funnel and page builder. New form submissions will automatically trigger your GoHighLevel workflows.
8. Reconnect payment integrations
Keap has its own payment processing. GoHighLevel connects to Stripe natively. Go to Settings and Payments in GoHighLevel and connect your Stripe account. Recreate any order forms or one-click upsells in GoHighLevel.
9. Update any Zapier or webhook connections
List every third-party integration you had running through Keap. Update each Zapier zap or webhook to trigger from GoHighLevel instead. GoHighLevel has native Zapier triggers and supports outbound webhooks for any tool that Zapier does not cover.
10. Test all workflows before cancelling Keap
Submit a test lead through each form. Check that the contact lands in the right pipeline stage, the first automation email arrives, and the follow-up sequence progresses. Run a test purchase if you have order forms. Only cancel Keap once every test passes.
How to check the migration worked
- Submit a test form and confirm the contact appears in the correct GoHighLevel pipeline stage.
- Check that the first automation email or SMS arrives within 5 minutes.
- Verify the total contact count in GoHighLevel matches your Keap export.
- Confirm all tags transferred correctly on a sample of 10 to 20 contacts.
- Run a test purchase and confirm Stripe captures the payment and the follow-up workflow fires.
Troubleshooting
Tags did not import with my contacts
Make sure the Tags column in your CSV uses a comma-separated format inside the same cell. GoHighLevel reads multiple tags per row if they are separated by commas. Re-import with the corrected CSV if needed.
My workflow is not triggering after form submission
Check that the workflow trigger matches exactly how the contact enters GoHighLevel. For a form submission trigger, the form must be connected to the workflow. Open the workflow trigger settings and verify the correct form is selected.
Custom fields are showing as blank after import
Open the CSV and confirm the column header matches the custom field name in GoHighLevel exactly (case-sensitive). Re-run the import and re-map the columns if they did not auto-match.
Email sequences are running in the wrong order
Open the workflow in GoHighLevel and check the step order. Drag the steps into the correct sequence. Also verify that wait conditions between steps match the delays you had in Keap.