Your Reel is doing well. People are commenting the keyword. Your automation dashboard says Connected, the campaign says Live, and not a single DM has gone out.
This is the most frustrating failure in Instagram automation, because nothing looks broken. There is no error banner, no red badge, no failed-delivery notice. The comments pile up and the DMs quietly do not.
Almost every case comes down to one of eight causes. They are listed here roughly in order of how often they are the culprit, so working top to bottom is usually faster than guessing.
1. The Allow Access to Messages toggle is off
This is the single most common cause, and the most confusing one.
Instagram has a permission, separate from anything you approved during setup, that controls whether connected tools may send messages at all. A Meta app update can reset it without telling you. Your automation tool will keep showing Connected, because the token it stored is still perfectly valid. The tool can read comments. It just cannot send.
The fix takes about four taps:
Profile, then the menu, then Settings and Activity, then Messages and Story Replies, then Message Controls, then Connected Tools. Turn on Allow Access to Messages.
If comments are being detected and no DM is arriving, check this before anything else. It is worth re-checking after any Instagram app update.
2. The account is not a Professional account
Meta's messaging APIs only work with Professional accounts, which means Creator or Business. A personal account cannot send automated DMs through any tool, no matter what the tool's interface suggests.
Switch in Instagram settings under Account type and tools, then reconnect your automation. If you recently switched back to personal for any reason, that alone will stop everything.
3. Your access token expired
Meta expires Instagram access tokens on a rolling basis, typically every 60 to 90 days. When the token dies, the automation stops.
The trap is that many dashboards do not re-check the token, so they keep displaying Connected long after it has expired. We have seen this on our own accounts: a token with an expiry date weeks in the past, sitting next to a green Connected label. Reconnecting from Settings resolves it in seconds, and it is worth doing on any account that has been quiet for a while.
This one is common enough, and misleading enough, that it gets its own breakdown in why your DM automation dies every 60 to 90 days.
4. You are outside the 24-hour messaging window
Meta only allows you to message someone within 24 hours of their last interaction with you. This is a policy boundary, not a tool limitation, and it exists to stop unsolicited messaging.
In practice this affects two situations. First, testing: if you commented yesterday and are waiting for a DM today, the window may have closed. Second, delayed processing: if a tool queues sends and drains that queue slowly during a spike, the oldest entries can age out before they are sent.
If some people in a campaign got their DM and others did not, and the ones who missed out commented much earlier, this is a likely explanation.
5. The post changed
A comment-to-DM automation is bound to one specific piece of media, identified by a media ID rather than by its URL.
Editing a caption is usually safe. Archiving, deleting, or re-uploading is not. A re-upload looks identical to your audience but carries a brand-new media ID, so the automation is now watching a post that effectively no longer exists.
If you reposted a Reel because the first version underperformed, point the campaign at the new one.
6. The comments came in before your automation existed
Instagram does not send webhooks for historical comments. When you set up an automation, the platform starts telling your tool about comments from that moment forward. Everything before it is invisible.
This catches people constantly. You post a Reel, it starts performing, you then set up the automation, and you assume the 40 people who already commented will be picked up. They will not be, unless your tool explicitly backfills them when the campaign launches, which is possible inside Instagram's reply window but not something every tool does.
The practical habit is to set up the automation before the post goes live, not after it starts working.
7. The keyword is not matching what people actually type
Keyword matching is stricter than most people expect, and real comments are messier than the keyword you had in mind.
Exact matching means the comment must be only that word. Someone who comments "AI please" or "send me AI" will not match an exact rule. Casing matters too, unless your tool is case-insensitive: in one campaign we looked at, a majority of entrants typed a lowercase variant of the keyword rather than the capitalised version shown in the caption.
Emoji, trailing punctuation, and autocorrect all contribute. If your comment volume is high but your DM count is low, read the actual comments before assuming the automation is broken. Switching from exact to contains matching solves most of it.
8. Rate limiting, which matters less than you have been told
Nearly every article on this subject quotes a hard limit of 200 DMs per hour. That number is not what Meta documents. For the Private Replies pathway that most comment-to-DM tools actually use, the documented ceiling is closer to 750 calls per hour per professional account, as covered in our fact-check of the 200 per hour claim.
Rate limiting is real, but for a creator with a few thousand followers it is rarely the cause. It becomes relevant when a Reel goes unexpectedly viral and hundreds of comments land in minutes. If that is your situation, the question to ask about your tool is not what cap it advertises but whether it paces delivery after a spike instead of firing everything at once.
Quick diagnosis table
| Symptom | Most likely cause | Fix |
|---|---|---|
| Comments detected, zero DMs sent | Allow Access to Messages is off | Turn it on in Connected Tools |
| Worked for weeks, then stopped | Token expired | Reconnect from Settings |
| Nothing works, ever | Personal account | Switch to Creator or Business |
| Some got DMs, earlier commenters did not | 24-hour window closed | Set up before posting, check pacing |
| Stopped on one specific post | Post archived or re-uploaded | Re-point the campaign at the new media |
| The 40 people who commented first got nothing | No historical webhooks | Launch the automation before the post |
| High comments, low DMs | Keyword not matching | Switch to contains matching |
| Fails only during a viral spike | Rate limiting or pacing | Check how the tool drains its queue |
The order to check things in
If you take one habit from this, make it this sequence. Check the message permission toggle, then the token, then whether the account is still Professional. Those three account for the large majority of cases and all three take under a minute.
Only then look at campaign-level things: the keyword rule, the media the campaign points at, and whether the people who missed out commented outside the window. Tool bugs exist, but they are a long way down this list, and the failures above produce exactly the same silence.
UnlockDM matches keywords case-insensitively, backfills keyword commenters when a campaign launches so early comments are not lost, and paces delivery through a queue after a spike rather than firing everything at once.



