Ticket Article¶
By Ticket¶
Required permission:
- ticket.agent (access to related ticket)
- ticket.customer (access to related ticket with customer_id ** current_user.id || organization_id ** current_user.organization_id)
Request:
GET /api/v1/ticket_articles/by_ticket/{ticketId}
Response:
Status: 200 Ok
[
{
"id": 3,
"ticket_id": 3,
"from": "Bob Smith",
"to": "",
"cc": "",
"subject": "some subject",
"body": "huhuhuu<br>huhuhuu<br>huhuhuu<br><br>",
"content_type": "text/html",
"type": "note",
"internal": false,
"time_unit": "12.0"
...
"updated_at": "2016-08-15T07:55:42.119Z",
"created_at": "2016-08-15T07:55:42.119Z"
},
{
"id": 4,
"ticket_id": 3,
"from": "Bob Smith",
"to": "",
"cc": "",
"subject": "some subject",
"body": "huhuhuu<br>huhuhuu<br>huhuhuu<br><br>",
"content_type": "text/html",
"type": "note",
"internal": false,
"time_unit": "15.0"
...
"updated_at": "2016-08-16T07:55:42.119Z",
"created_at": "2016-08-16T07:55:42.119Z"
},
]
Show¶
Required permission:
- ticket.agent (access to related ticket)
- ticket.customer (access to related ticket with customer_id ** current_user.id || organization_id ** current_user.organization_id)
Request:
GET /api/v1/ticket_articles/{id}
Response:
Status: 200 Ok
{
"id": 3,
"ticket_id": 3,
"from": "Bob Smith",
"to": "",
"cc": "",
"subject": "some subject",
"body": "huhuhuu<br>huhuhuu<br>huhuhuu<br><br>",
"content_type": "text/html",
"type": "note",
"internal": false,
"time_unit": "12.0"
"attachments": [
{
"id": 123,
"filename": "some_file1.txt",
"preferences": {
"Mime-Type": "text/plain"
}
},
{
"id": 124,
"filename": "some_file2.txt",
"preferences": {
"Mime-Type": "text/plain"
}
}
],
...
"created_at": "2016-10-19T10:07:12.011Z",
"updated_at": "2017-01-18T12:45:53.420Z"
}
Create¶
Required permission:
- ticket.agent (access to related ticket)
- ticket.customer (access to related ticket with customer_id ** current_user.id || organization_id ** current_user.organization_id)
Request:
POST /api/v1/ticket_articles
{
"ticket_id": 3,
"to": "",
"cc": "",
"subject": "some subject",
"body": "huhuhuu<br>huhuhuu<br>huhuhuu<br><br>",
"content_type": "text/html",
"type": "note",
"internal": false,
"time_unit": "12"
}
Response:
Status: 201 Created
{
"id": 3,
"ticket_id": 3,
"from": "Bob Smith",
"to": "",
"cc": "",
"subject": "some subject",
"body": "huhuhuu<br>huhuhuu<br>huhuhuu<br><br>",
"content_type": "text/html",
"type": "note",
"internal": false,
"time_unit": "12.0"
...
"created_at": "2016-10-19T10:07:12.011Z",
"updated_at": "2017-01-18T12:45:53.420Z"
}
If you want to include attachments of articles, the payload looks like:
Request:
POST /api/v1/ticket_articles
{
"ticket_id": 3,
"to": "",
"cc": "",
"subject": "some subject",
"body": "huhuhuu<br>huhuhuu<br>huhuhuu<br><br>",
"content_type": "text/html",
"type": "note",
"internal": false,
"time_unit": "12",
"attachments": [
{
"filename": "some_file1.txt",
"data": "content in base64",
"mime-type": "text/plain"
},
{
"filename": "some_file2.txt",
"data": "content in base64",
"mime-type": "text/plain"
}
]
}
Response:
Status: 201 Created
{
"id": 3,
"from": "Bob Smith",
"to": "",
"cc": "",
"subject": "some subject",
"body": "huhuhuu<br>huhuhuu<br>huhuhuu<br><br>",
"content_type": "text/html",
"type": "note",
"internal": false,
"time_unit": "12.0"
"attachments": [
{
"id": 123,
"filename": "some_file1.txt",
"preferences": {
"Mime-Type": "text/plain"
}
},
{
"id": 124,
"filename": "some_file2.txt",
"preferences": {
"Mime-Type": "text/plain"
}
}
],
...
"created_at": "2016-10-19T10:07:12.011Z",
"updated_at": "2017-01-18T12:45:53.420Z"
}
To download attachments you need to call “GET /api/v1/ticket_attachment/#{ticket_id}/#{article_id}/#{id}”.
If you want to add inline images, just use data URIs in HTML markup:
Request:
POST /api/v1/ticket_articles
{
"ticket_id": 3,
"to": "",
"cc": "",
"subject": "some subject",
"body": "<b>some</b> message witn inline image <img src=\"data:image/jpeg;base64,ABCDEFG==\">"
"content_type": "text/html",
"type": "note",
"internal": false,
"time_unit": "12"
}
Response:
Status: 201 Created
{
"id": 3,
"ticket_id": 3,
"from": "Bob Smith",
"to": "",
"cc": "",
"subject": "some subject",
"body": "huhuhuu<br>huhuhuu<br>huhuhuu<br><br>",
"content_type": "text/html",
"type": "note",
"internal": false,
"time_unit": "12.0"
"attachments": [
{
"id": 123,
"filename": "44.262871107@zammad.example.com",
"preferences": {
"Mime-Type": "image/jpeg",
"Content-ID": "44.262871107@zammad.example.com",
"Content-Disposition": "inline"
}
}
],
...
"created_at": "2016-10-19T10:07:12.011Z",
"updated_at": "2017-01-18T12:45:53.420Z"
}
To download attachments you need to call “GET /api/v1/ticket_attachment/#{ticket_id}/#{article_id}/#{id}”.
If you want to create a phone ticket on behalf for a specific customer, use origin_by_id:
Required permission:
- ticket.agent (access to related ticket)
Request:
POST /api/v1/ticket_articles
{
"ticket_id": 3,
"origin_by_id": 5,
"to": "",
"cc": "",
"subject": "some subject",
"body": "<b>some</b> message witn inline image <img src=\"data:image/jpeg;base64,ABCDEFG==\">"
"content_type": "text/html",
"sender": "Customer",
"type": "phone",
"internal": false,
"time_unit": "12"
}