
Sign in and select the sub-account you're working in.
From the left menu click Contacts.
Click the + Add Contact button (top left).
Fill the fields: First name / Last name / Email / Phone / Tags / Custom fields as needed.
(Optional) Add Notes, Opportunities, or assign owner.
Click Save. The contact now exists and can trigger workflows that listen for new contacts.
Quick test: open the contact record, confirm email/phone/tags saved, then send a test SMS or email if desired. HighLevel Support Portal
In GHL go to Contacts.
Click Import Contacts (usually an import icon or button top-left).
Choose if you're importing Contacts only or Contacts + Opportunities.
Upload your CSV file.
Map columns: GHL shows CSV columns on the left and field targets on the right — map each CSV header to the correct GHL field (name → First Name, email → Email, etc.).
Choose Duplication Strategy: Create new, update existing, or skip duplicates (follow prompts).
(Optional) Create a Tag during import so you can filter or bulk-add to workflows later.
Confirm and start the import. Monitor the import status and fix any mapping errors shown in the import summary. HighLevel Support Portal+1

Use a trigger so contacts are auto-enrolled when they meet a condition (Form submitted, Contact Created, Tag added, Appointment booked, etc.).
(If you want to push one specific contact into a workflow immediately.)
Method A — from Contact profile (UI can vary):
Method B — if UI doesn't show that option, use the Add to Workflow action inside another workflow, or use the API endpoint to add the contact to a workflow programmatically. (GHL supports both the Add To Workflow action and API calls.)
A. Immediately after import: the import flow offers a step to Add to Campaign/Workflow as a bulk action — you can select the workflow and add them during the import finish steps.
B. From the Contacts list:
This is the fastest way to enroll an existing group into a drip. HighLevel Support Portal+1
To skip first steps for a contact (drop them in mid-flow): GHL doesn't consistently allow choosing an arbitrary step when manually enrolling; you can add tag-based triggers or build branch logic. (There's an Ideas thread asking for "add to any step".) HighLevel Ideas
Test with a single test contact: add them, apply the trigger tag / submit the form, confirm they enter the workflow and receive the first email/SMS.
Monitor: In Workflows → open a workflow → check Execution History / Enrollment Logs to see who was added and any errors.
Use tags during import so you can easily filter and bulk-add to workflows later. HighLevel Support Portal+1
Contacts → + Add Contact → fill fields → Save.
Contacts → Import Contacts → Upload CSV → Map fields → Choose dup strategy → Import → (optionally) Add to Workflow.
Automation → Workflows → Create → Add Trigger (Contact Created / Tag / Form) → Add Send Email / Wait steps → Publish.
Contacts list → filter → select rows → Bulk Actions → Add to Campaign/Workflow → choose workflow → Confirm.
Test one contact → confirm enrollment → check Execution/Enrollment logs.
Add a contact, import a contact list, add to workflow - GHL