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
:
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.
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 comments
Lachlan Kidson
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
Lachlan Kidson
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
Erica Girges
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
Lachlan Kidson
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
Erica Girges
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
Lachlan Kidson
Hey Erica, no worries at all!
A demo would be appreciated if you have the time, thanks.
0
Cathy Arbuckle
I am having the same issue. Erica, if you could help me as well, I would greatly appreciate it.
0