Skip to main content

Hi ManyChat Community,

I'm facing a strange issue with the /fb/sending/sendContent API endpoint for my Instagram account, and I'm hoping someone here might have some insight.

The Goal: I have an n8n workflow that, once a user completes a process, sends them 3 images via Instagram DM.

The Problem: My n8n workflow calls the sendContent endpoint. The API call is successful every time and returns a 200 OK with the body {"status":"success"}. However, the images are never delivered to the user in their Instagram DM. The message just silently fails after being accepted by the API.

Here is a summary of my debugging so far:

  1. The API Call is Correct: The request is sent via POST and receives a status: success response from ManyChat, so the connection, authentication, and request format seem to be correct.

  2. The Instagram Channel is Active: My Instagram channel is active in Settings → Channels. The conversational part of my bot works perfectly; it can receive messages from users and reply instantly. The issue is only with sending content proactively via the API.

  3. The subscriber_id is Valid: I have been testing this with my own personal Instagram account as the recipient. I am an admin, I have an active conversation with the bot, and I have not blocked it. I copied my subscriber_id directly from my contact profile in ManyChat.

  4. The Image URLs are Not the Problem: I initially thought the issue was with my image URLs (hosted on Supabase Storage). To rule this out, I performed two tests:

    • I confirmed my Supabase URLs are 100% public and load perfectly in an incognito browser window.

    • I then ran a definitive test using a universally accessible Wikipedia image URL. The result was the same: status: success from the API, but the Wikipedia image was never delivered.

This proves the issue is not related to the image source.

Here is the exact cURL request I am using for testing (with the public Wikipedia URL):

Bash

 

curl -X POST "https://api.manychat.com/fb/sending/sendContent" \
-H "Authorization: Bearer <MY_MANYCHAT_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"subscriber_id": "<MY_OWN_ADMIN_SUBSCRIBER_ID>",
"data": {
"version": "v2",
"content": {
"messages": s
{
"type": "image",
"url": "https://upload.wikimedia.org/wikipedia/commons/a/a9/Example.jpg"
}
]
}
},
"message_tag": "POST_PURCHASE_UPDATE"
}'

My Question: Has anyone experienced a situation where the sendContent API accepts the request successfully but silently fails to deliver the message? It seems like an internal processing issue within the ManyChat platform. Is there any other setting, permission, or known bug that could be causing this?

I've already tried "Refreshing Permissions" in the channel settings, with no change.

Any help or ideas would be greatly appreciated!

Thanks.

Hi ​@Isaact ,

I noticed that your request is missing the channel field. Without "type": "instagram" inside the content block, Manychat won't know which channel to send the message to. I tested the payload below, and the image was delivered successfully:

{
"subscriber_id": 2059754198,
"data": {
"version": "v2",
"content": {
"type": "instagram",
"messages": "
{ "type": "image", "url": "https://upload.wikimedia.org/wikipedia/commons/a/a9/Example.jpg" },
{ "type": "text", "text": "My caption" }
]
}
}
}

Please also make sure to respect Instagram’s 24-hour messaging window. If the contact hasn’t interacted with your profile in the last 24 hours, the message will be blocked.

You can find more details in the dynamic block documentation here:
https://manychat.github.io/dynamic_block_docs/channels/


Reply