Help me with ntegrating Contact Data with Meeting Attendees in n8n: Challenges and Solutions

Scenario:

I have two APIs—one provides contact details, including email addresses and IDs, while the other returns meeting records with attendees. However, the attendees are contacts identified only by their IDs, without email addresses. A meeting can have one or multiple contacts.

Option 1:
I attempted to merge both datasets using JavaScript. However, the code processes one dataset first and then the other sequentially, rather than handling both simultaneously. This prevents me from matching attendee IDs with contact details in real time.

Option 2:
I tried using a merge operation, connecting both datasets. The issue is that contacts are structured as individual records with an email and ID, whereas meetings store attendees under id_asistentes in a JSON format containing multiple IDs. Unfortunately, the merge operation does not support a one-to-many relationship, making it impossible to link each meeting to multiple contacts properly.

I’d appreciate any insights into whether this issue can be resolved efficiently in n8n.

Would you like me to further refine or format the explanation for easier readability

Jscon contact example:

[
{
“id_user_contact”: “46e8730b-199a-e07f-ebfa-56d59d47eef1”,
“email_address”: “[email protected]”,
“user_name”: " test "
},
{
“id_user_contact”: “cfcf4504-0fec-11e7-b824-060c6f621ec1”,
“email_address”: " [email protected] ",
“user_name”: “test1”
},
{
“id_user_contact”: “84019ca7-0541-8dcc-bd79-537a3a818c70”,
“email_address”: " [email protected] ",
“user_name”: “test2”
},
]

json meetings

[
{
“name”: “meetings test 2025-06-03”,
“date_start”: “2025-06-03T18:00:00-04:00”,
“date_end”: “2025-06-03T19:00:00-04:00”,
“id_contact”: [
“46e8730b-199a-e07f-ebfa-56d59d47eef1”,
" cfcf4504-0fec-11e7-b824-060c6f621ec1"
],
“id_user”: “84019ca7-0541-8dcc-bd79-537a3a818c70\n”,
“description”: “”,
“id_asistentes”: [
“46e8730b-199a-e07f-ebfa-56d59d47eef1”,
" cfcf4504-0fec-11e7-b824-060c6f621ec1",
“84019ca7-0541-8dcc-bd79-537a3a818c70”
]
}
]

What is the error message (if any)?

Please share your workflow


(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)

Share the output returned by the last node

Information on your n8n setup

  • n8n version: 1.94.1
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main): own
  • Running n8n via (Docker, npm, n8n cloud, desktop app): Docker
  • Operating system: debian

I use the workflow and able to merge those data

Sorry after review your question and I did an update.

The logic here is split the id_contact and merge with id_user to an array.

Then merge with id_user_contact finally

First of all, thank you very much for your input.

Your response does successfully match attendee IDs with their corresponding email addresses, but it lacks the connection to the meeting name and its duration. These crucial details were omitted. While I initially included a single meeting, multiple meetings can take place on the same day. As a result, although the attendee email and ID are linked, there is no way to determine which meeting they belong to.

Do you think I might have another alternative?

First of all, thank you very much for your input.

Your response does successfully match attendee IDs with their corresponding email addresses, but it lacks the connection to the meeting name and its duration. These crucial details were omitted. While I initially included a single meeting, multiple meetings can take place on the same day. As a result, although the attendee email and ID are linked, there is no way to determine which meeting they belong to.

Do you think I might have another alternative?

Oh I think it’s not very hard to achieve.

Here is the concept. So the output will be

If some field or value is not what you expect. You can modify a bit.

Thank you so much for taking the time to analyze my case. I noticed that the meeting was split into multiple arrays, whereas it should ideally be contained within a single array along with all its associated contacts. However, your logic provided me with a different perspective that I hadn’t considered before. I truly appreciate all your support—thanks to your insights, I was able to successfully implement a functional workflow. Here’s how it turned out

1 Like

Congrats !

next time I think you can provide your expectation output then we can build the workflow at one shot.

You can give the expect json directly.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.