Instagram messaging window
Three clocks.Know whichone's running.
Instagram has three message windows. A private reply to a comment must go out within 7 days of the comment, once. A normal message must go out within 24 hours of the person's last message or action. A human agent can reply by hand within 7 days using the Human Agent tag. A comment alone never opens the 24-hour window.
Updated
Instagram message windows
- 7 daysto send the one private reply
- 24 hoursafter they message or tap
- 7 daysfor a human agent, by hand
From Meta's developer docs, checked 9 November 2026.
Instagram 24 hour window, private reply 7 days, human agent tag
The windows.With sources.
These are timing rules, not volume limits. For how many you can send per hour, see Instagram DM limits.
| Window | Length | Starts when | What you can send | Source |
|---|---|---|---|---|
| Private reply | 7 days | When the comment was created (post, reel or ad post). Live comments: only during the broadcast. | One message to the commenter, ever. Lands in their Inbox if they follow you, Requests if not. | Private replies |
| Standard messaging window | 24 hours | A user action, most often the person messaging you. | Any number of messages: text, links, media, templates. | Messaging API |
| After a Click-to-Direct ad | Up to 7 days | The person's first message after clicking a Click-to-Direct ad. | Same as the standard window. | Messaging policy |
| Human Agent | 7 days | The user's message. | Manual replies from a person, tagged as human agent. Needs the Human Agent feature, which needs App Review. | Messaging policy, Human Agent |
From Meta's developer documentation, checked 9 November 2026. Meta's policy page also lists message tags that exist only on Messenger, and says one-time notifications aren't available on the Instagram messaging API. Hourly and per-second limits are on Instagram DM limits. DMpop is not affiliated with Meta or Instagram.
What opens the Instagram messaging window
What opens it.What doesn't.
Meta's messaging policy lists the user actions that open the standard window. Here they are, plus three things people expect to count and don't.
Opens it01
They send you a message.
The main one. A reply to your private reply counts, and so does a Story reply: Meta delivers it as a
messagesevent withreply_to.story.Opens it02
They tap a call-to-action button.
Meta lists “a call-to-action button like Get Started”. A postback button in your DM sends you a
messaging_postbackswebhook; in practice Instagram accepts the next message after that tap.Opens it03
They react to a message.
On Meta's list. So are an ig.me link with a ref parameter on an existing thread, and the first message after a Click-to-Direct ad.
Doesn't04
A comment.
A comment earns one private reply, nothing more. Meta: “Follow-up messages can only be sent if the recipient responds.”
Doesn't05
Reading your DM.
A
messaging_seenevent isn't a response. We see Instagram refuse a message sent after a read with no reply: “outside of allowed window”.Doesn't06
Tapping a link button.
A
web_urlbutton just opens the link. Meta's webhooks have an event for postback taps, not link taps, so your app never hears about it. Use a postback button for the tap that should open the chat.
Meta's full list: the user sends a message, clicks a call-to-action button like Get Started, sends their first message after a Click-to-Direct ad, starts a conversation via a plugin, clicks an ig.me link with a ref parameter on an existing thread, or reacts to a message (messaging policy). The “doesn't” cards are what we see in practice.
Instagram private reply 7 days, then the 24-hour window
From commentto conversation.
- Someone comments. The private reply clock starts: 7 days to send one message.
- You send the private reply. It goes to their Inbox if they follow you, Requests if they don't. That's your one message until they respond.
- They tap a button or write back. Now the conversation is open and the 24-hour window starts.
- You can send as much as the chat needs, within Meta's per-second send limits, until 24 hours pass with nothing from them.
- Window closed. Automated messages are refused until they message again. A person on your team can still reply by hand with the Human Agent tag, up to 7 days after their message.
// 1. The private reply: one message, with a postback button.// (Text plus a button template; the button title is capped at 20 characters.)await send({ recipient: { comment_id: commentId }, message: { attachment: { type: "template", payload: { template_type: "button", text: "Hey! Tap below and I'll send the link.", buttons: [{ type: "postback", title: "Send me the link", payload: "LINK_123" }], }, }, },});// 2. Their tap arrives as a messaging_postbacks webhook.// The conversation is open: message them by IGSID now.function onPostback(event) { windows.set(event.sender.id, Date.now()); // the 24-hour clock starts return send({ recipient: { id: event.sender.id }, message: { text: "Here you go: https://example.com/guide" }, });}// 3. Before any later message, check the clock.const DAY = 24 * 60 * 60 * 1000;const canMessage = (igsid) => Date.now() - (windows.get(igsid) ?? 0) < DAY;// send() POSTs to https://graph.instagram.com/v27.0/<IG_ID>/messagesThe private replies guide shows a text private reply. Sending it as a button template, as above, is what we do in practice; Meta's button template supports up to three URL or postback buttons. Track the window per Instagram-scoped ID (IGSID) from your own webhook timestamps: the API doesn't give you a “window open” flag, it just refuses the send with error 10, subcode 2534022.
Instagram human agent tag
Human Agent.For humans.
Meta's messaging policy says the Human Agent tag “allows businesses to manually respond to user messages within a separate 7-day period”. The feature reference adds that it's for cases where “a user's issue cannot be resolved in the standard messaging window”, and that it needs App Review and Business Verification.
- It's for a person typing a reply, through your own inbox or Instagram's.
- Meta's Instagram messaging review guide says to request it only if you have a custom inbox for human escalations, and to explain why a reply can take up to 7 days.
- Meta warns that using tags outside approved use cases may restrict your ability to send messages. A campaign blast or an automated “still interested?” nudge isn't a human agent reply.
- It doesn't extend the private reply. A comment still gets one message within 7 days.
How DMpop works within the windows
Built aroundthe clocks.
Opening message
The private reply is a short message with a button. Tapping it opens the conversation, and DMpop sends the link straight after. It's why the opening message exists: it turns your one private reply into an open chat.
Follow gate
Non-followers get a “follow me first” message with an “I'm following” button. The tap opens the window, DMpop checks the follow with Instagram, and sends the link. How the check works: Instagram follow check API.
Follow-up message
A follow-up only goes out after the person taps a button in the chat (an opening message's button or the follow gate's “I'm following”) or after they DM the keyword. A plain comment → link DM never gets one, because the comment's one private reply is used and the person hasn't responded. The delay can be 0 to 1,440 minutes, counted from when the link was sent. If the window has closed by then, Instagram refuses it and DMpop doesn't retry, so keep the delay well under a day.
DM and Story reply keywords
With “also on DMs” on, someone who DMs the keyword or replies to your Story with it gets a normal reply inside the window their message opened. No private reply is used.
Building this yourself? The rest of the plumbing is on Instagram comment to DM API, and why a DM didn't go out is on auto DM not sending.
Questions
Window questions,answered.
What is the Instagram 24-hour messaging window?
The time your app has to message someone after they act, usually after they message your account. Meta's messaging docs say the standard window lasts 24 hours for most user actions. After it closes, an automated message is refused until the person messages again.
Can I send a private reply after 7 days?
No. Meta allows a private reply within 7 days of when the comment was created, for posts, reels and ad posts. For Live comments, only during the broadcast. Later attempts fail with 'outside of allowed window'.
What is the Instagram human agent tag?
A message tag that lets a person reply by hand within 7 days of the user's message, instead of 24 hours. Meta's policy describes it as letting businesses manually respond within a separate 7-day period, and your app needs the Human Agent feature, approved in App Review. It's for real people answering, not for automated messages.
Does a comment open the 24-hour window?
No. A comment lets you send one private reply. Only when the person responds can you message them again, within 24 hours of that response. That's why comment-to-DM tools put a button in the first message.
Does a Story reply open the messaging window?
A Story reply reaches your app as a message (a messages webhook with reply_to.story), and a message from the person is the main action that opens the standard window. You reply to it as a normal message, not as a private reply.
Does the window reset with each message?
Meta frames it as having up to 24 hours to respond to a user after their action, so count from their most recent message or action. Each new message from them gives you a fresh 24 hours.
Can I use the human agent tag for automation or promotions?
Meta describes it as a way for businesses to manually respond, and warns that using tags outside approved use cases may restrict your ability to send messages. Use it for genuine human support, not automated or promotional sends.
API on every plan
Let the clocksrun themselves.
DMpop's opening message, follow gate and follow-up are built around these windows. Create campaigns from the API or MCP on any plan: Free sends 1,000 DMs a month, paid plans start at ₹99.