Skip to main content
留言觸發的自動化回報活動 status: "sent",但留言者卻表示從未收到 DM,這幾乎都是接收者的 Instagram 隱私設定所致 — 不是你的自動化或 Ayrshare 出了 bug。
sent 代表 Instagram 接受了訊息,並非代表訊息已送達。 Instagram 在任何 API 層面都不揭露訊息送達狀態。Instagram 一接受 send_dm 動作的當下,Ayrshare 就會將其標記為 sent;訊息是否真的送達接收者,則由 Ayrshare 無法讀取或變更的設定決定。

接收者的「Message requests」設定決定送達與否

每位 Instagram 使用者可在 Settings and activity → Messages and story replies → Message requests 底下控制誰可以傳送訊息請求給自己。選項大致是「所有人」、「你的追蹤者」與「沒有人」。 當你的自動化向限制訊息請求的使用者傳送 DM 時,Meta 會接受該請求、回傳帶訊息 ID 的成功回應,然後靜默地將訊息捨棄。沒有錯誤、沒有失敗 webhook,也沒有送達/已讀訊號 — 此捨棄行為在任何 API 層面都不可見。Meta 知道這則訊息無法送達(其自家 App UI 會顯示 “This account can’t receive your message because they don’t allow new message requests from everyone”),但並不會透過 API 揭露。

既有對話會覆寫該設定

若發送者與接收者之間已有訊息對話(例如接收者曾傳送 DM 給該帳號),該既有對話會覆寫 Message requests 設定,自動化 DM 會直接送進既有對話串中,而非以新的請求形式出現。這也是為什麼同一個自動化能觸及某些留言者卻無法觸及其他人;也是為什麼曾主動傳訊給該帳號的接收者之後就能穩定收到自動化 DM。

如何辨識這種情況

  • 活動列顯示 status: “sent”,沒有 errorDetails
  • 接收者回報未收到 DM(且訊息也不在他們的訊息請求資料夾中)。
  • 此情況在接收者之間並不一致 — 有些人收得到,有些人收不到 — 且在你的設定中找不到規律。
這是一個送達結果,而非失敗狀態,因此永遠不會顯示為 failedfailed 表示 Instagram 拒絕了發送,原因會出現在 actionResults[].errorDetails — 那是另一種情況(請見錯誤碼)。

你能做什麼

無法透過程式繞過 — 沒有任何 API、權限範圍或發送格式可以繞過接收者的 Message requests 設定。你能做的是:
  • 事先設定期望:留言觸發的 DM 只能觸及 Instagram 設定允許訊息請求的人,或已與你帳號有對話的人。
  • 鼓勵留言者主動 DM 你的帳號(或開啟訊息請求)以便接收後續訊息 — 一則進來的訊息會永久打開該對話串。
  • 考慮以公開回覆該留言作為觸及所有人的備援途徑。

留言觸發的 DM 如何傳送(private reply)

留言觸發的自動化會透過 Instagram 的 private reply 傳送 DM,並錨定在留言本身。這正是讓自動化得以傳訊給你從未傳送過訊息的留言者的原因。以下是其運作機制與限制,值得了解:
  • 錨定於留言的 7 天視窗。回覆必須在留言之後 7 天內發送。超過此時間視窗會關閉,發送會以 code: 484 失敗。
  • 每則留言僅能回覆一次,永久有效。Instagram 每則留言只允許一次 private reply。第二次嘗試會以 code: 484 失敗 — Instagram 會用與視窗已關閉相同的共享錯誤回報「已回覆」,因此請檢視 errorDetails 以判斷究竟屬於哪種情形。
  • 以訊息請求形式抵達。即使是成功送達的 private reply,也會落在接收者的訊息請求資料夾中並必須被接受 — 除非對話已經存在。
  • 送達仍取決於接收者的設定。Private reply 移除了「必須先傳過訊息」的要求,但不會覆寫接收者的 Message requests 設定,這正是上述所描述的限制。

相關資料