How to Automate Instagram DMs with Make.com + InstantDM (Comment to DM, Lead Capture & Follow Ups)

I’ve had a few people in this community ask me to write up my full setup after seeing bits of it in other threads, so here it is, start to finish. This isn’t theory, it’s the actual workflow I run every day, warts and all.

The short version of what this does: someone comments a keyword on my post, they get a DM automatically, their info gets logged somewhere I can actually use it, and if they don’t respond right away, a follow up goes out a day or two later without me having to remember any of it. InstantDM handles the messy Instagram side of things, comment detection, keyword matching, sending the actual private reply, and Make.com picks it up from there to do everything downstream. Splitting it this way is honestly what made the whole thing stop breaking every other week.

Here’s how it’s built.

Step 1: InstantDM catches the comment and sends the first DM

This part doesn’t even live in Make. InstantDM watches my posts for keyword comments, “GUIDE,” “PRICE,” whatever I’ve set up for that campaign, and fires off the private reply the moment someone comments. This is the piece I used to try building directly inside Make with the Watch Comments and Send Private Reply modules, and it worked, but I was constantly fighting Instagram’s rate limits and case sensitivity issues. Letting InstantDM own this layer specifically just made it more reliable.

Step 2: Webhook sends the lead into Make

In Make, I’ve got a scenario that starts with a Custom Webhook module. InstantDM sends the lead data here the second someone qualifies, meaning they commented the keyword and got the DM. The webhook gives you a URL, you drop that into InstantDM’s integration settings, and from that point on every qualifying comment shows up in Make automatically.

Quick tip if you’re setting this up for the first time: trigger one test lead before building anything downstream and actually look at what fields come through in the execution history. I built half a scenario once assuming a field existed that didn’t, and it silently failed for two days before I noticed.

Step 3: Route by keyword

Right after the webhook, I drop in a router. Different keywords mean different intents, someone commenting “PRICE” wants different follow up than someone commenting “GUIDE,” so I split the paths here instead of dumping everyone into one generic flow. This step is optional if you’re only running one campaign at a time, but once you’re juggling a couple of offers, it saves you from a messy tangle of filters later.

Step 4: Log it into a Google Sheet

This is the step everyone skips in their first version and regrets. Add a Google Sheets module that logs the username, keyword, and timestamp for every lead that comes through. Doesn’t need to be fancy. The point is having an actual record so you’re not relying on Instagram’s DM history to remember who commented what three weeks from now.

Step 5: Slack notification so you actually notice

I added a Slack message module that pings me the second a new lead comes in. Before this, leads would sit in a spreadsheet I forgot to check for days, and by the time I followed up the interest had gone cold. Now I know within seconds, which matters a lot if you want to catch someone while they’re still actively thinking about whatever they commented for.

Step 6: Delay + follow up DM

If someone doesn’t respond to that first automated DM, I’ve got a delay module set to a day or two, followed by a second message through Make. Nothing pushy, just a “hey, did that help, let me know if you’ve got questions” type nudge. This is the step that actually turns a one-off DM into something closer to a real conversation.

A few things worth knowing before you build this yourself:

Instagram’s messaging window is real and it’s the thing that trips people up most. If someone doesn’t respond to the first DM, you generally can’t just message them again later without the right tag, so plan your follow up timing around that instead of assuming you can reach back out whenever.

Also, don’t build all six steps on day one. I did that the first time and spent more time debugging than actually getting leads. Get the InstantDM to webhook connection solid first, confirm leads are landing in your sheet correctly, then layer in the routing and follow ups once the basics are holding up.

Splitting the work this way, InstantDM for the Instagram side, Make for everything after the lead exists, has made this the one part of my automation stack I don’t dread touching anymore.

Happy to drop the actual blueprint in the comments if anyone wants to poke around in it themselves.