Unipile LinkedIn reply via HTTP module returns 422 (not_allowed_inmail) while initial message works

:bullseye: What is your goal?

Send a message to answer from a linkedin chat (with 1st rank linkedin contact, existing conversations)

:thinking: What is the problem & what have you tried?

I’m currently building a LinkedIn outreach automation in Make using Unipile, and I’m facing an issue specifically with replying to messages.

Here is my setup:

SCENARIO 1 (working):

  • Google Sheets (leads)
  • OpenAI (generate message)
  • HTTP (Unipile)
    → Endpoint: POST /api/v1/chats
    → Body: account_id + attendees_ids + text

This works perfectly: the first message is sent successfully via LinkedIn.


SCENARIO 2 (problematic):

  • Webhook (Unipile inbound messages)
  • Google Sheets (find lead)
  • OpenAI (generate reply)
  • HTTP (Unipile reply)

I am trying to reply using:

POST /api/v1/chats/{chat_id}/messages

Parameters:

  • chat_id from webhook
  • body (multipart/form-data):
    • text = OpenAI response
  • headers:
    • X-API-KEY
    • accept: application/json

PROBLEM:

I consistently get this error:

422 - not_allowed_inmail
“The recipient hasn’t accepted your inmail yet or has declined it.”

However:

  • The conversation already exists
  • The initial message (scenario 1) was successfully sent to this same user
  • The account is properly connected in Unipile (status = Running)

WHAT I ALREADY TRIED:

  1. Rebuilt the HTTP module from scratch
  2. Verified chat_id matches webhook
  3. Added account_id to the request body
  4. Ensured correct Content-Type (multipart/form-data)
  5. Tested sending via:
    POST /api/v1/chats (same as scenario 1)
    → This returns 400 malformed_request (likely formatting issue)

OBSERVATION:

Using /api/v1/chats works for sending messages to a user, even when a conversation already exists (it appears to reuse the existing thread).

But using /api/v1/chats/{chat_id}/messages fails consistently with 422.


QUESTIONS:

  1. Is there any known limitation or condition where replying via chat_id fails but sending via attendees_ids works?
  2. Could this be related to LinkedIn conversation state or InMail restrictions?
  3. Is account_id required or recommended when using the chat_id endpoint?
  4. Has anyone successfully implemented LinkedIn message replies via Unipile in Make?

Goal:
I want to build a full conversation loop (receive → generate → reply), not just initial outreach.

Any help or insight would be greatly appreciated :folded_hands:

:clipboard: Error messages or input/output bundles

DataError
Unprocessable Entity
{“status”:422,“type”:“errors/not_allowed_inmail”,“title”:“Not allowed inmail”,“detail”:“The recipient hasn’t accepted your inmail yet or has declined it.”}

Origin
HTTP

This is a lot but i got you

1. Why does chat_id fail but attendees_ids works?

Because the chat isn’t “open” yet.

  • chat_id → needs accepted/replied convo

  • attendees_ids → works anyway

2. Is this a LinkedIn / InMail restriction?

Yes.
Your message is still a pending request (InMail state) not a real conversation yet.


3. Do I need account_id with chat_id?

No.
It’s optional and not the cause of your error.


4. Can replies work via Unipile in Make?

Yes but only if:

  • user has replied OR

  • connection is accepted

Otherwise → it will fail.


5. Why does my current setup break?

You assumed:
“chat exists = I can reply”

Reality:
“chat accepted = I can reply”


6. What’s the actual fix?

Use this for everything:
POST /api/v1/chats

It handles:

  • first message

  • follow-ups

  • replies

No errors. No stress.

If there is any further issue

send me a screenshot of it

Thank you very much for your answer. I actually thought about it just after posting, but it failed. I just tried this morning after reading your reply, I recreated the module from the beginning, still doesn’t work. I got another error (Error 400):

EDIT : I found the solution, it is attendees_ids not attendees_id, it works :slight_smile:

“Bad Request

  • {“status”:400,“type”:“errors/invalid_parameters”,“title”:“Invalid parameters”,“detail”:“One or more request parameters are invalid or missing.\n{\“type\”:45,\“schema\”:{\“description\”:\“One or more attendee provider ID.\\nFor `instagram`, please use the ‘provider_messaging_id’.\\nFor LinkedIn users, use a `provider_id` starting with: ACo for classic, ACw for Sales Navigator, AE for Recruiter.\\nFor LinkedIn company messaging, please use the ‘messaging_id’.\\nFor WhatsApp, please use ‘00000000@s.whatsapp.net’.\”,\“minItems\”:1,\“type\”:\“array\”,\“items\”:{\“type\”:\“string\”}},\“path\”:\”/attendees_ids\“,\“message\”:\“Required property\”}”}”.

  • I don’t understand because I actually applied the attendees_id, I tried once by mapping it from my googlesheet, and another time from the webhook. Same error each time :confused: .

Should i still hop on this?

Or you have solved it already

I was busy on a client job just finished the project kindly bear with me