Instagram DMs
Connect an Instagram professional account and let setters work their DM conversations inside Alpha
Instagram DMs
Alpha connects to one Instagram professional account per tenant and brings its direct-message conversations into a shared inbox, so setters can qualify prospects without leaving the CRM. Each conversation is matched to a CRM lead, so the DM history sits alongside everything else known about that person.
The one thing to understand first
Alpha cannot send the first message to someone who has never messaged you.
This is Instagram's rule, not a missing feature. Meta only permits sending inside a conversation the user themselves opened, and only for a limited time afterwards. Sending a cold DM through the API is a policy violation that puts the connected account at risk.
In practice this means the opener is typed by hand in the Instagram app, and everything after it happens in Alpha:
- The setter sends the first message from the Instagram app.
- Alpha sees that message appear in the thread (it arrives as an echo) and opens the conversation in the inbox.
- The moment the prospect replies, the messaging window opens and the setter can reply from Alpha.
Tools that claim to send cold Instagram DMs from a dashboard rely on unofficial automation. They routinely get accounts restricted. Alpha will not do this.
There are three channels where a conversation can legitimately start without a manual opener: click-to-Instagram-Direct ads, private replies to comments, and story mentions or replies. All three count as the user opening the thread.
The messaging window
Every conversation shows how much time is left to reply. The window is measured from the prospect's last message, not from your last one.
| Time since their last message | What Alpha does |
|---|---|
| Under 24 hours | Reply freely. |
| 24 hours to 7 days | Reply is still allowed, sent with Instagram's human-agent tag. Alpha applies this automatically. |
| Over 7 days | The composer is disabled. Nothing can be sent until they message again. |
When the window has closed, the reply box is switched off rather than merely warning you; a message sent outside the window would be refused by Instagram anyway.
Threads running out of time
The free 24-hour window is the one worth racing, so Alpha counts it down instead of leaving you to work it out from a timestamp.
- In the list. Six hours before a thread's free window shuts, its row starts showing the time left (nog 4u 12m) counting down to the minute. It appears only on threads where the prospect wrote last: once you have answered, the clock still runs but nothing is owed.
- The "Bijna 24u" tab. Next to Alle and Van mij sits a third pane holding exactly your threads in that last six hours, soonest to shut at the top. That is the order to work them in.
Past 24 hours a thread leaves this list. It has not gone away; it moves to the human-agent reply above, which has six more days to run and is no longer a race.
Claiming a conversation
Several setters share one Instagram account, so any thread can be claimed. Claiming marks it as yours and stops a colleague replying to the same prospect at the same time. A thread can be claimed by only one person; if someone got there first, Alpha tells you rather than letting both of you answer. Release the claim when you are done and it returns to the shared pool.
Only the setter holding a claim can release it. A colleague cannot release your claim and then claim the conversation themselves. To take over a colleague's conversation, use the takeover action when the workspace allows handovers.
Who sent what
Every outbound message carries the name of the setter who sent it, so a shared account still reads as a record of who said what. Three cases:
- Sent from Alpha: the message shows the setter's name.
- Sent from the Instagram app: marked sent from the Instagram app. Instagram does not tell us which person typed it, only that it did not go through Alpha. Manually typed openers always land in this category.
- Inbound: no sender label; it is the prospect.
The badge on a claimed thread also shows the colleague's name rather than their login email.
Photos, reels and other media
A DM does not have to be words. When a prospect shares a reel, a photo, a video, a voice message or a post, the thread shows it in the bubble: images and videos render inline, and everything else appears as a labelled card you can open in a new tab. The conversation list labels the thread the same way: a thread whose last message was a reel reads Reel rather than sitting blank.
Instagram serves this media from signed links that expire, usually within days. An older thread will still say that a reel was shared, but the video behind it may no longer load. Save anything you need to keep.
Reactions
Emoji reactions show up under the message they belong to: both the ones a prospect leaves on your replies and the ones your team leaves from the Instagram app. Instagram allows one reaction per person per message, so reacting again replaces the previous emoji rather than adding to it, and removing a reaction clears it from the thread.
Read status
Two different things are tracked, and they do not mean the same thing.
Has the prospect seen our message? Instagram sends a receipt when they open the thread, and Alpha marks every outbound message up to that point as seen:
- A single grey tick: delivered, not yet seen.
- A blue double tick with Seen: the prospect has read it.
The conversation list carries the same tick, but only while your message is the most recent one; once they reply, the tick disappears because the thread is back in your court.
Instagram reports a read as "seen everything up to here" rather than per message, and only sends a receipt at all if the prospect has read receipts enabled. No tick therefore means not confirmed seen, not definitely unread.
Has our team picked the thread up? A thread with new messages is bold with a dot in the list. Opening it clears that for everyone, since the inbox is shared; the point is for the team to see that someone has the thread, not to track individual reading.
Preset messages
The replies a setter types twenty times a day can be saved as preset messages and dropped into a conversation with one click. Manage them under Communications → Preset messages.
Each preset is either:
- Only me: your own wording, invisible to colleagues. Anyone who can reply in the inbox can create these.
- Whole team: shared with everyone on the tenant. Creating or editing one needs the CRM settings permission, so the team's standard answers cannot be rewritten by accident.
In the inbox they sit as buttons directly above the reply box, team presets first. Clicking one inserts the text into the composer rather than sending it; these almost always need a name or a date filled in first, and an Instagram DM cannot be recalled. Once there are more than a handful, a search box appears above them and matches on both the title and the message text, so you can find a preset by a phrase you remember from it.
The panel collapses with the arrow next to the heading, and stays collapsed on that browser until you open it again.
Leads
The first time someone messages, Alpha resolves their Instagram handle and looks for a matching lead:
- Handle already on a lead: the conversation is linked to that existing lead. Nothing is duplicated.
- No match: a new lead is created from the handle alone, with source
Instagram DM.
Instagram handles can change. Alpha keys conversations on Instagram's own internal id, so a thread stays intact and correctly linked even if the prospect renames their account.
In the communications timeline
DMs appear in the Communications panel of the lead, marked with an Instagram badge and sorted in among the emails, so the first contact is visible where the rest of the history is. Qualify the lead and the thread follows onto its customer and opportunity as well; nothing is copied, they simply resolve back to the lead the conversation belongs to.
Replying stays in the Instagram inbox: the messaging window decides whether a reply is allowed at all, so an Instagram item in the timeline links there instead of opening the email composer.
Going the other way, Lead openen in a thread's header carries the thread with it: the lead page then shows Terug naar het gesprek, which returns you to that same DM rather than to the lead list. Reaching the lead any other way shows no such link, because there is no thread to go back to.
Blocking an account
The connected account is usually somebody's own professional account, so private chats arrive on the same webhook as the leads. A blocklist keeps those out: a DM from a blocked handle is refused on arrival: no conversation, no message, no lead, and nothing in the shared inbox for a colleague to read.
Two ways to block an account:
- From the inbox: the block button in the conversation header. It blocks the handle and removes the thread you are looking at.
- Under Settings → Tenant → Instagram: the Blocked accounts list, where handles are added and removed by hand.
Blocking a handle also deletes the conversations it already opened, messages included, in the same way the delete button does. The linked lead is left alone; it carries its own CRM history. Unblocking stops the blocking from then on; it cannot bring the deleted messages back.
A handle is stored in one form (no @, lowercased) so @Amars.Prive and amars.prive are the same entry and block the same account. Blocking is per tenant and applies to whichever Instagram account is connected.
One case the list cannot cover: if Instagram does not give Alpha a handle for a thread (a profile lookup can fail), the thread is ingested rather than dropped. Losing a real lead silently is the worse outcome, so the block only applies once the handle is known.
Connecting the account
Under Settings → Tenant → Integrations, choose Instagram and authorize. You will be asked to sign in to the Instagram account and approve access. Requirements:
- The account must be a professional account (business or creator).
- You must be an admin of it.
- Message access must be enabled for the account in the Instagram app's own settings.
Disconnecting, and what happens to the data
Three different things can end a connection, and they do not all delete the same data.
| What happens | Tokens | Conversations |
|---|---|---|
| You disconnect in Alpha | Deleted immediately | Kept as CRM history |
| You remove the app from your own Instagram account | Deleted immediately | Kept as CRM history |
| A prospect removes the app, or asks Meta to delete their data | n/a | Their thread and messages are deleted |
The distinction is about whose data it is. When you disconnect, you are ending a connection you own; the conversations stay because they are your record of your own customer contact, in the same way email history survives changing mail provider. No new messages arrive after disconnecting.
When a prospect withdraws, that is their consent being taken back, so their thread and every message in it is removed. Nothing is queued for review: deletion happens immediately and Meta receives a confirmation code the person can quote.
If you want the conversations gone as well when you disconnect, delete the threads before disconnecting; once the connection is gone, Alpha can no longer tie them back to an Instagram account.
Limitations
- One Instagram account per tenant.
- Text messages only for now: images, stories and reactions arrive as part of the thread but cannot be sent from Alpha.
- Cold outreach is not possible through Alpha, as described above. For templated outbound messaging, WhatsApp is the appropriate channel and a separate integration.