Recent searches


No recent searches

Proper use of undocumented attachment_ids field in side conversations API.



Posted Jun 10, 2024

I am part of a team developing an application installed to the ticket_sidebar location. As part of this we want to be able to programatically create side conversations for our users.

 

We've had success doing by calling the side conversations API via ZAFClient:

https://developer.zendesk.com/api-reference/ticketing/side_conversation/side_conversation/#create-side-conversation

 

Our code is essentially this, which works: 

const { 'ticket.id': id } = (await client.get(
  'ticket.id',
));

const message = {
  "message": {
    "subject": "My printer is on fire!",
    "body": "The smoke is very colorful.",
    "to": [
      { "email": "someone@example.com" } 
    ],
  }
};

await client.request({
  contentType: 'application/json',
  url: `/api/v2/tickets/${id}/side_conversations`,
  type: 'POST',
  data: JSON.stringify(message),
  dataType: 'json',
})

We would also like the ability to add attachments. This is where we run into issues.

The example code from the documentation would suggest this is possible:

{
  "message": {
    "subject": "My printer is on fire!",
    "body": "The smoke is very colorful.",
    "to": [
      { "email": "someone@example.com" }
    ],
    "attachment_ids": ["0123456789"]
  },

However the attachment_ids field is not documented on the associated Message object, and in testing always results in an error that the attachment was not found.

https://developer.zendesk.com/api-reference/ticketing/side_conversation/side_conversation_event/#messages

 

Our expectation was that we could get a list of attachments by first making a request to /api/v2/tickets/${id}/comments.json , then use the attachment IDs from that as part of the message payload. (We've also confirmed work with the api/v2/attachments/ endpoint). Inspecting the GraphQL network requests that are made when creating a side conversation via the UI also results in the same attachment IDs being used - so it is unclear why these attachments aren't being found.

 

TL;DR - is the attachment_ids field actually supported in the side conversations API, and if so what do we need to do to get this to work?


1

7

7 comments

On a similar note, it doesn't look like the CC or BCC fields are available via this API either, whilst they are available via the UI.

0


Having looked at this a bit further it seems like the expected approach is to upload an attachment via 

https://developer.zendesk.com/api-reference/ticketing/side_conversation/side_conversation_attachment/, retrieve the UUID from the response - and then use this in the payload for creating the side conversation.

 

Is it possible to perform the upload via ZAFClient's request method?

0


image avatar

Erica Girges

Zendesk Developer Advocacy

Hi Lachlan!
 
Yes, you can utilize the request method to upload the attachment via the API. You'll just want to be sure to capture that attachment_id that is returned once uploaded.

1


Thanks Erica, do you know if there are any examples of this anywhere? Our attempts resulted in getting a 500 error back from the server. It's not too clear how to express that the payload is multipart/form-data when using request()

0


image avatar

Erica Girges

Zendesk Developer Advocacy

Hi Lachlan, 
 
Apologies for the delay, I was out of office for the end of last week. I can definitely put together a little demo for you today. Otherwise, I can also pull you into a ticket and get a better look at your code directly and see if we can troubleshoot from there. 
 
Let me know whichever you prefer. Happy to help!

0


Hey Erica, no worries at all!

 

A demo would be appreciated if you have the time, thanks.

 

 

0


I am having the same issue. Erica, if you could help me as well, I would greatly appreciate it.

0


Please sign in to leave a comment.

Didn't find what you're looking for?

New post