In a project I pull JSON-objects out of the Zammad-API.
I get the ticket:
[
{
"id": 53,
"group_id": 2,
"priority_id": 2,
"state_id": 2,
"organization_id": null,
"number": "740534",
"title": "Testanfrage Weichinger",
"owner_id": 3,
"customer_id": 3,
"note": null,
"first_response_at": "2022-11-15T07:19:04.078Z",
"first_response_escalation_at": null,
"first_response_in_min": 0,
"first_response_diff_in_min": 4320,
"close_at": null,
"close_escalation_at": null,
"close_in_min": null,
"close_diff_in_min": null,
"update_escalation_at": null,
"update_in_min": null,
"update_diff_in_min": null,
"last_contact_at": "2022-11-15T07:20:05.013Z",
"last_contact_agent_at": "2022-11-15T07:19:41.008Z",
"last_contact_customer_at": "2022-11-15T07:20:05.013Z",
"last_owner_update_at": "2022-11-15T12:08:48.875Z",
"create_article_type_id": 1,
"create_article_sender_id": 1,
"article_count": 3,
"escalation_at": null,
"pending_time": null,
"type": null,
"time_unit": null,
"preferences": {
"channel_id": 3,
"escalation_calculation": {
"first_response_at": "2022-11-15T07:19:04.078Z",
"last_update_at": "2022-11-15T07:20:05.013Z",
"last_contact_at": "2022-11-15T07:20:05.013Z",
"sla_id": 2,
"sla_updated_at": "2023-01-11T16:02:47.791Z",
"calendar_id": 2,
"calendar_updated_at": "2023-01-15T13:20:30.043Z",
"escalation_disabled": false
}
},
"updated_by_id": 3,
"created_by_id": 3,
"created_at": "2022-11-15T07:19:04.022Z",
"updated_at": "2023-01-16T07:40:29.206Z",
"last_close_at": null
}
]
and the ticket-articles belonging to that ticket:
[
{
"id": 130,
"ticket_id": 53,
"type_id": 1,
"sender_id": 1,
"from": "Stefan Weichinger <[email protected]>",
"to": "[email protected]",
"cc": null,
"subject": "Testanfrage Weichinger",
"reply_to": null,
"message_id": "<[email protected]>",
"message_id_md5": "2bf547f5f570f6a8143ca8084110aee2",
"in_reply_to": null,
"content_type": "text/plain",
"references": null,
"body": "\nZum Test von Zammad-Emailing.\n\n-- \nViele Grüße | Stefan Weichinger | DW: | Mobil: \n",
"internal": false,
"preferences": {
"send-auto-response": true,
"is-auto-response": false
},
"updated_by_id": 3,
"created_by_id": 3,
"origin_by_id": null,
"created_at": "2022-11-15T07:19:04.078Z",
"updated_at": "2022-11-15T07:19:04.078Z",
"attachments": [],
"type": "email",
"sender": "Agent",
"created_by": "[email protected]",
"updated_by": "[email protected]"
},
{
"id": 131,
"ticket_id": 53,
"type_id": 1,
"sender_id": 1,
"from": "\"Stefan White via company1 Support\" <[email protected]>",
"to": "[email protected]",
"cc": "",
"subject": "Testanfrage Weichinger",
"reply_to": null,
"message_id": "<20221115071941.53.6087c1df-aa4c-4cbf-b79a-e2498239612b@ticket.company1.com>",
"message_id_md5": "07a9eee59e351c3d068badce3a56c7a0",
"in_reply_to": "<[email protected]>",
"content_type": "text/html",
"references": null,
"body": "KLappt nun das ANtworten?<br><br><div data-signature=\"true\" data-signature-id=\"1\"> Stefan White<br><br>--<br> Super Support - Waterford Business Park<br> 5201 Blue Lagoon Drive - 8th Floor & 9th Floor - Miami, 33126 USA<br> Email: [email protected] - Web: <a href=\"http://www.example.com/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">http://www.example.com/</a><br>--</div>",
"internal": false,
"preferences": {
"subtype": "reply",
"email_address_id": 1,
"delivery_retry": 1,
"delivery_channel_id": 3,
"delivery_status_message": null,
"delivery_status": "success",
"delivery_status_date": "2022-11-15T07:19:43.621Z"
},
"updated_by_id": 4,
"created_by_id": 4,
"origin_by_id": null,
"created_at": "2022-11-15T07:19:41.008Z",
"updated_at": "2022-11-15T07:19:43.622Z",
"attachments": [],
"type": "email",
"sender": "Agent",
"created_by": "[email protected]",
"updated_by": "[email protected]"
}
]
A freelancer has written a piece of nodejs that I can call via http-request.
That code needs both JSON-objects combined in one "body", like in:
{
"Ticket": {
"id": 53,
"group_id": 2,
"priority_id": 2,
"state_id": 2,
"organization_id": null,
"number": "740534",
"title": "Testanfrage Weichinger",
"owner_id": 3,
"customer_id": 3,
"note": null,
"first_response_at": "2022-11-15T07:19:04.078Z",
"first_response_escalation_at": null,
"first_response_in_min": 0,
"first_response_diff_in_min": 4320,
"close_at": null,
"close_escalation_at": null,
"close_in_min": null,
"close_diff_in_min": null,
"update_escalation_at": null,
"update_in_min": null,
"update_diff_in_min": null,
"last_contact_at": "2022-11-15T07:20:05.013Z",
"last_contact_agent_at": "2022-11-15T07:19:41.008Z",
"last_contact_customer_at": "2022-11-15T07:20:05.013Z",
"last_owner_update_at": "2022-11-15T12:08:48.875Z",
"create_article_type_id": 1,
"create_article_sender_id": 1,
"article_count": 3,
"escalation_at": null,
"pending_time": null,
"type": null,
"time_unit": null,
"preferences": {
"channel_id": 3,
"escalation_calculation": {
"first_response_at": "2022-11-15T07:19:04.078Z",
"last_update_at": "2022-11-15T07:20:05.013Z",
"last_contact_at": "2022-11-15T07:20:05.013Z",
"sla_id": 2,
"sla_updated_at": "2023-01-11T16:02:47.791Z",
"calendar_id": 2,
"calendar_updated_at": "2023-01-15T13:20:30.043Z",
"escalation_disabled": false
}
},
"updated_by_id": 3,
"created_by_id": 3,
"created_at": "2022-11-15T07:19:04.022Z",
"updated_at": "2023-01-16T07:40:29.206Z",
"datev_dokumentennummer": "",
"last_close_at": null
},
"articles": [
{
"id": 130,
"ticket_id": 53,
"type_id": 1,
"sender_id": 1,
"from": "Stefan Weichinger <[email protected]>",
"to": "[email protected]",
"cc": null,
"subject": "Testanfrage Weichinger",
"reply_to": null,
"message_id": "<[email protected]>",
"message_id_md5": "2bf547f5f570f6a8143ca8084110aee2",
"in_reply_to": null,
"content_type": "text/plain",
"references": null,
"body": "\nZum Test von Zammad-Emailing.\n\n-- \nViele Grüße | Stefan Weichinger | DW: | Mobil: \n",
"internal": false,
"preferences": {
"send-auto-response": true,
"is-auto-response": false
},
"updated_by_id": 3,
"created_by_id": 3,
"origin_by_id": null,
"created_at": "2022-11-15T07:19:04.078Z",
"updated_at": "2022-11-15T07:19:04.078Z",
"attachments": [],
"type": "email",
"sender": "Agent",
"created_by": "[email protected]",
"updated_by": "[email protected]"
},
{
"id": 131,
"ticket_id": 53,
"type_id": 1,
"sender_id": 1,
"from": "\"Stefan White via company1 Support\" <[email protected]>",
"to": "[email protected]",
"cc": "",
"subject": "Testanfrage Weichinger",
"reply_to": null,
"message_id": "<20221115071941.53.6087c1df-aa4c-4cbf-b79a-e2498239612b@ticket.company1.com>",
"message_id_md5": "07a9eee59e351c3d068badce3a56c7a0",
"in_reply_to": "<[email protected]>",
"content_type": "text/html",
"references": null,
"body": "KLappt nun das ANtworten?<br><br><div data-signature=\"true\" data-signature-id=\"1\"> Stefan White<br><br>--<br> Super Support - Waterford Business Park<br> 5201 Blue Lagoon Drive - 8th Floor & 9th Floor - Miami, 33126 USA<br> Email: [email protected] - Web: <a href=\"http://www.example.com/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">http://www.example.com/</a><br>--</div>",
"internal": false,
"preferences": {
"subtype": "reply",
"email_address_id": 1,
"delivery_retry": 1,
"delivery_channel_id": 3,
"delivery_status_message": null,
"delivery_status": "success",
"delivery_status_date": "2022-11-15T07:19:43.621Z"
},
"updated_by_id": 4,
"created_by_id": 4,
"origin_by_id": null,
"created_at": "2022-11-15T07:19:41.008Z",
"updated_at": "2022-11-15T07:19:43.622Z",
"attachments": [],
"type": "email",
"sender": "Agent",
"created_by": "[email protected]",
"updated_by": "[email protected]"
}
]
}
In my n8n-workflow I can add js-code to do that, could someone help me writing this? I googled around merging and concatenating json, but the additional adding of the "names" makes it harder for me (adding "Ticket:" and "articles:" ...). I am not a js-coder at all ... so far ;-)
Any help appreciated! thanks
Assuming you have your tickets stored in some variable named
tickets
and all your articles stored in some variable namedarticles
. You can simply map your tickets to your new combined type as such.You can simply filter the articles for each ticket by the
ticket_id
.