Message App Extension Request Errors

Hi there,

I am trying to implement the Message App Extension (Messaging app extension) for our company.

So far, I have managed to

  • implement the required endpoints to my best understanding
  • connect the app with our company in pipedrive
  • create the channel
  • see the empty message board

After some discussion, and trial and error in the live chat, I was able to send and receive messages in pipedrive.

Afterwards, I played around with the controls, and deleted the conversation from within the pipedrive messages.

Then I wanted to create a new conversation (the conversation has id ‘98’):

This is what my server is returning for that conversation:

Here are the logs from that call. (basically the receive a message flow Implementing Messaging app extension)

My code basically works as follows:

  • I get a callback from the messanger app that a new message has arrived.
  • i store that massage internally (there is no querying for messages) and thereby create the conversation on my side.
  • i call the endpoint /v1/channels/messages/receive to let pipedrive know about the new message (until here is the first log entry in the above image). while this request is pending:
    • i get a request from pipedrive for /conversations/98. The request is successful and the content can be seen in the image above. (log entries two and three)
  • then the pending request concludes with a 400 and the very generic error message “Failed when querying Provider REST API”. (log entry four; this log entry also contains the payload and the response (resp) )

In my first trial and error, I had the same error message in the same spot, because parts of the response for the conversations - endpoints were missing (the message field ‘attachements’ and the field additional_data are required, but can be empty, which is not reflected in the yaml file). After fixing that I saw the first conversation in pipedrive. Just minutes later, without code changes, this does not work anymore, and I am clueless why.

Ricardo (from the live chat) pointed me here. I hope you can help me.

Best, Tammo

I think I resolved the issue: It is again an insufficient specified field in your yaml (omnichannel-api-docs/omnichannel-integration.specs.yaml at master · pipedrive/omnichannel-api-docs · GitHub). Here are all the issues i found so far:

  • additional_data in getConversations and getConversationById is required, but can be an empty dictionary
  • next_messages_cursor of a Conversation is required, but can be null
  • attachments of a Message is required but can be an empty list.
  • the recipientIds field of the postMessage body is actually called recipientIds[]
  • the field attachments in /v1/channels/messages/receive is required, but can be an empty field.

Thank you so much for capturing the key details @tammo
I will share it with the concerned engineering team