Channels
Answer direct messages sent to your Instagram professional account.
Requirements#
- An Instagram professional account (Business or Creator).
- A Facebook Page linked to that Instagram account.
- A Facebook account that can manage both, to grant OmniMessage access to messaging.
- In the Instagram app, access to messages must be allowed for connected tools.
Connect the channel#
Instagram channels are connected in the console by signing in with Facebook:
- Open Channels, choose Connect channel and pick Instagram.
- Choose Continue with Facebook. A Facebook window opens; sign in and grant access to the Page and the Instagram account.
- Back in the console, your Pages are listed. Pick the Page your Instagram professional account is linked to and choose Connect Instagram account.
- The channel shows as pending for a moment and then as connected.
A Page without a linked Instagram professional account is listed as not connectable. Link the account in the Page settings on Facebook, then sign in again. There are no credentials to copy, and creating an Instagram channel with an API key is not available. The identifier of the channel is the Instagram account ID.
Recipients#
to is the Instagram-scoped user ID (IGSID) of the person. You obtain it from the from field of a message.received event when the person sends you a direct message. An account cannot message someone who has never contacted it.
Supported message types#
| Type | Use it for |
|---|---|
text | Plain text of up to 4096 characters. |
attachments | One image, video, document, audio file, voice note or sticker, fetched from an HTTPS URL. |
button | Text with one to three quick-reply buttons. |
This channel also accepts the pass-through types carousel, product_list. Their content is forwarded in the provider format without validation: see Channel-specific types.
Channel rules#
- Meta applies a standard messaging window: you can answer with free-form content for 24 hours after the last message from the person.
- A message sent outside the window is refused by Meta and fails with a
provider_erroror422 policy_violation. It is not charged. buttonmessages show up to three reply buttons. A tap arrives as amessage.receivedevent carrying the buttonid.- Content must comply with the Meta Platform Terms and Instagram messaging policies.
Example request#
curl https://api.omnimessage.co/v1/messages \
-H "Authorization: Bearer om_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"channel": "ch_4jH7fD0sA3gB6vN9mQ2w",
"to": "17841400000000000",
"type": "attachments",
"attachments": [
{
"type": "image",
"url": "https://example.com/media/size-guide.png"
}
]
}'Delivery statuses#
Instagram reports sent and delivered, and read when the recipient has seen the message.
Pricing#
Each accepted outbound message on a instagram channel consumes one package credit or the instagram price from the wallet. Read your effective price from GET /v1/pricing. Inbound messages are free. Fees charged by the provider are separate. See Billing.