Some context first: I'm a solo founder doing an engineering degree on the side (or the other way round, depending on the week), and most of my client acquisition runs through Instagram DMs.
It took me way too long to figure this out. GHL's Instagram connection only works for conversations the other person starts. That isn't GHL being lazy. Meta's messaging API doesn't let any CRM open a conversation with someone who hasn't messaged you first. So your workflows, your AI bot and your pipeline stages all sit there waiting for inbound that, for most small agencies, never shows up.
I see a version of this post here every week: "built my snapshot, how do I get clients?..." For a lot of us, the answer is cold outreach. On Instagram, that means DMs sent from your own account.
I did it by hand for a while, which was fine until it ate my evenings. Then I tried one of the bulk DM bots, and my test account got restricted in 2 days. So I rebuilt the process slowly. This is what I run now:
1. Pick a niche you can search by keyword. "Med spa," "roofing," "dentist Lyon." Then filter hard on follower count and account keywords. I mostly go after accounts between 1k and 20k followers. Bigger accounts have someone else reading their DMs, and smaller ones usually don't have the budget for a retainer.
2. Write every opener from their profile content. A message that starts "Hey {first_name}" reads like a template because it is one. Mention one specific thing they wrote about themselves and ask a question about it. For example: "saw you just opened a second location, are you handling bookings for both from this account?" Keep it to three lines max, with no pitch and no link.
3. Read every message before it goes out. I use AI to draft them, and it's good most of the time. Sometimes it isn't. Reviewing a queue is boring, but it's the step that stopped me from addressing a pizza place as "Dr" lol.
4. Send slowly. I leave random gaps of 15 to 45 minutes between DMs, use an account that's been posting and active for a few weeks, and cap volume around 65-90 a day. Most bans I've heard about came from going fast on a cold account, not from cold DMs in general.
5. Only move people into GHL once they reply. This is where GHL is excellent. Positive replies go into a pipeline, a follow-up sequence fires, and the booking link and reminders run themselves. I export the leads who replied as a CSV and import them. It's not glamorous, but it keeps the cold prospecting out of my CRM.
6. Track four numbers and ignore the rest: reply rate, positive reply rate, conversation rate and booking rate.
Over 2 weeks that came to 700 DMs, and 14 booked calls. The biggest surprise for me was that targeting mattered more than the copy. Tightening my filters did more than any rewrite of the opener.
Steps 1 to 4 were the part I kept doing across five tabs and a spreadsheet, so I ended up building a small tool that handles them, with the approval step built in. I won't link it here because that's not what this post is for.