Instagram DM Bot

The warm Instagram outreach loop — discover → qualify → warm → wait → personalized DM draft — without cold spam or living in your DMs.

Key takeaways

  • Discovers prospects by opening recent posts under your hashtags and reading who commented — real, active accounts, not follower scrapes.
  • AI-qualifies each person against your product before spending anything on them; poor fits are skipped and never revisited.
  • Warms with a like and a thoughtful comment, waits a configurable number of days, then drafts the DM.
  • Every DM is drafted, never auto-sent — the bot types it into the Instagram composer and leaves Send to you.
  • People, Visited, and History tabs show exactly where each prospect sits, and the Visited list guarantees nobody gets approached twice.
  • Editable limits: 5–10 DM drafts a day, 8–14 warm comments, 16–28 warm likes, 1-day warm wait.

Cold Instagram DMs get ignored — or worse, reported. The Instagram DM Bot mirrors how thoughtful humans do outreach: find the right people, confirm they're actually a fit, warm the relationship with genuine engagement, wait, then write a personal message. You stay in control of the final send.

The discovery method matters here. Instead of scraping follower lists, the bot opens recent posts under the hashtags you choose and looks at who's commenting — people who were active on that topic in the last few days, not dormant accounts that happen to follow someone.

The full workflow

  1. 1

    Discover

    The bot opens recent posts under each hashtag in your list and reads the commenters. Anyone already visited, skipped, or messaged is filtered out before their profile is even opened.

  2. 2

    Qualify

    It opens the profile, reads the bio and recent posts, and has the AI judge fit against your product details from Settings. Bad fits are marked skipped with a reason, so you never burn a DM slot on someone who was never going to care.

  3. 3

    Warm

    For people who pass, the bot likes and leaves a thoughtful comment on their content — context before the message, not a cold approach out of nowhere.

  4. 4

    Wait

    A configurable warm wait (one calendar day by default) sits between engaging and messaging, so the DM lands as a follow-on to real interaction rather than as an instant sequence step.

  5. 5

    Draft the DM

    AI writes a personalized opener from their profile and posts: an observation plus one open question, two to three lines, no link, no pitch. The bot types it into the composer and stops.

Four ways to run it

Run modes
ModeWhat it does
All dayDiscovers when the queue has room, then warms and drafts DMs with safe spacing across the day
DiscoverFinds people from hashtag posts and comments, qualifies them, and adds a few to the queue — then stops
Warm onceQualifies, likes, and comments on the next queued person, then stops
DM onceTypes the next ready draft into the composer and leaves Send to you, then stops

The single-step modes are how you get comfortable with the output. Run Discover, look at who landed in the queue and why others were skipped, run Warm once and read the comment it left, then run DM once and read the draft before you send it.

Pipeline visibility

Every person in the pipeline carries a status, so you always know what's been done to whom:

Prospect statuses
StatusMeaning
QueuedDiscovered and qualified, waiting for their warm run
QualifyingProfile open, AI checking fit against your product
SkippedNot a fit — the reason is shown on the row
WarmingLike and comment in progress
Warming doneEngaged; waiting out the warm-wait days
Ready to DMPast the wait period, next in line for a draft
Draft readyMessage typed into the composer — your turn
MessagedSent, and moved to the completed list

The Visited list is the guardrail

The single worst thing warm outreach automation can do is approach the same person twice. The Visited list exists to prevent that: every profile the bot opens is recorded, tagged with why (queued, not a fit, skipped, draft ready, already DM'd, or your own account) and the hashtag it came from.

Discovery checks that list before opening a profile, not after — so someone you've already skipped doesn't cost a page load, let alone a second approach. If you ever want a person reconsidered, remove them from Visited manually.

Daily limits

Default limits (editable in Setup → Limits)
SettingDefaultWhat it controls
DM drafts per day5–10How many messages get typed each day — the deliberately smallest number in the app
Warm comments per day8–14Comments left during the warm phase, shared with the Instagram Comment Bot's budget model
Warm likes per day16–28Likes during the warm phase
Likes over comments gap8–12Minimum extra likes above comments, randomized daily
Warm wait1 dayCalendar days between like + comment and the DM draft

The number of people allowed in the active queue at once is set by your license plan and shown in the People tab as a count against your ceiling. DM volume is intentionally the tightest limit in SocialKaptan — Instagram treats unsolicited messaging far more harshly than public engagement, and ten thoughtful DMs beat a hundred that get reported.

How the DM gets written

The opener is generated from what's actually on their profile and in their recent posts, layered on top of your product details and shared writing style. The rules are deliberately strict:

  • No links in the first message — links in a cold DM are the fastest way to get reported.
  • One specific observation about them, then one open question. Never yes/no, never a call ask.
  • Two to three lines. Anything longer reads as a template.
  • No pitch. Your product comes up later, when they ask.

Setup → Style holds a DM guidance field for extra instructions — tone, niches to lean into, phrases you never want to see — on top of the writing style you configure once in Settings.

How it differs from the Instagram Comment Bot

Two Instagram bots, two jobs
Comment BotDM Bot
GoalPublic visibility under hashtagsOne-to-one conversations
Unit of workA postA person
DiscoveryRecent posts under a hashtagCommenters on those posts, then qualified
OutputLikes and comments, postedLikes, comments, then a DM draft you send
MemorySession counters and historyPeople queue, Visited list, per-person status

They share the same Instagram session — both act as your account — and work well together: the Comment Bot builds the ambient presence that makes a DM from you look familiar rather than random.

Setup checklist

  1. 1Connect Instagram in the desktop app if you haven't already.
  2. 2Fill in product name, tagline, and description in Settings — these are what qualification judges fit against, so vague descriptions produce vague targeting.
  3. 3Add niche hashtags in Setup → Find people, one per line. Specific beats popular here.
  4. 4Add DM guidance in Setup → Style.
  5. 5Run Discover once and review the queue: who got in, who got skipped, and whether the reasons make sense.
  6. 6Run Warm once, then DM once, and read the draft before sending. Adjust guidance until you'd send it without editing.
  7. 7Start All day.

Frequently asked questions

No — it always drafts. The bot types the personalized message into the Instagram composer and leaves Send to you, in every mode including the all-day loop. Discovery, qualification, warming, and first-draft copy are automated; pressing Send is not.

It opens recent posts under the hashtags you configure and reads the commenters — people who were active on that topic recently. Each candidate is then checked against the Visited list before their profile is opened, and AI-qualified against your product before they enter the queue.

The Visited list. Every profile the bot opens is recorded with a tag — queued, not a fit, skipped, draft ready, already DM'd — and discovery checks it before opening anyone. You can remove someone manually if you want them reconsidered.

Five to ten by default, and it picks a target inside that range each day. It's the tightest limit in the app on purpose: Instagram is far stricter about unsolicited DMs than about public likes and comments.

Because a DM that arrives seconds after a like reads as automation. The warm wait — one calendar day by default, configurable — puts a natural gap between engaging with someone's content and messaging them about it.

The bot opens the profile, reads the bio and recent posts, and asks the AI whether this person plausibly fits the product you described in Settings. Poor fits get marked skipped with a visible reason. The quality of your product description directly determines the quality of that filter.

Hashtag discovery is the main path, and the People tab shows the resulting queue. Individual profiles can be run through the pipeline directly using the single-step modes, which is the practical way to handle someone you already know you want to reach.

The Comment Bot works post by post for public visibility. The DM Bot works person by person: discover, qualify, warm, wait, draft. They share the same Instagram session and complement each other — public engagement makes a later DM feel familiar rather than cold.

It runs locally in your own Chrome profile, drafts instead of sending, warms before messaging, keeps daily DM volume in single digits, and never approaches the same person twice. No tool can guarantee zero risk — but the design here is much closer to a careful person than to a DM farm.

Yes. The live friendly log narrates each step as it happens, session counters tally warm likes, comments, and DMs, and the History tab keeps a persistent record across restarts. The People tab shows the current state of every prospect.

See Instagram DM Bot running on a real desktop

Local-first LinkedIn & Instagram automation with AI replies, preview mode, and safe daily limits.