How to combine descriptions from different cards in Trello into one card

Hello. I am a beginner
Scenario: when a form is filled in on jotform, a contact card should be created in trello. Where: card name = the email left in the form. The card description displays the user’s comment and name.

There are 17 boards in Trello. Each board corresponds to a product name. The form has a drop-down menu with these products. That is, the card is created on the board that is selected in the form.

You can leave the same email address in the form and choose a different product. Each time, the card can be created on a different board.
There are no problems with this step. After the router, the upper chain creates the card.

The next step is to search for cards with the same name. this is the bottom chain after the router.

The filter after the router checks if there is a card with that name.

the filter after module 81 (Trello search for cards) searches for the very first card that was created with that name (I want to add to this card the description of all the others with that name to leave only one).

Finally, in module 98, I get the id of the very first card created. I need to change the description in this card.
Module 86 (aggregator), pulls an array of cards from module 69 (the one in front of the router)
In module 96, I want to extract all the descriptions that are in cards with the same name. I tried to do it through map() in two ways. But it gives an error.

Also, in the last module I can’t get the id from module 100.

If there is someone free, please help me figure out how to extract all descriptions from each card with the same name (given that they can be in different boards)?

And I’m interested in how to solve the problem with the last module, why the previous modules are not pulled up?








Hello @alina25,

I’ve not quite fully understood your post, but something caught my attention that I wanted to point out, which might address your very last question.
When you use an Aggregator (like Array Aggregator), then anything encapsulated in that gray box around it and all the modules before it up until your selected “Source”, none of the data from those modules are available outside that encapsulation.

To get around this you can use a “Router Magic Formula”. Essentially that means you use a Set Variables module to save data from one or modules for recall later using Get Variables.

I hope that makes sense and hope it helps!

2 Likes

Hello, Donald!
Thank you for your quick response. I found the information about aggregators useful.
My screenshots didn’t load immediately, so without them, the description of the problem is unclear.
I tried to do as you suggested - I saved the data from the aggregators in Set Variables, and thanks to the Get variables module, they are passed to the last module Edit Card. One problem solved)
The issue with passing the card description remains. Module 96 should extract the description of the cards. If the description field is empty, it should return - description is missing.
Since Description is located in the Cards array, which is located in another array, I use the () and flatten() functions as shown in the screenshots. But something does not work - because I get an empty value as an output.
How can I get the description if it is nested in two arrays?

In Module 96 are you trying to get the description of a single card or all cards?

Is the Array producted by Module 86 an array of Boards and each board contains an array of Cards?

If possible, please provide the output from 86 and what exactly you want to pull from it.
Here’s how to download the output, start by clicking the bubble at the top right after it runs.

In module 96, I want to get a description of all cards with the same name. These cards can be from different Boards.
Module 86 returns only an array of cards. And from these cards I need to collect all the descriptions (highlighted in orange on the screen)

Output boundles of array 86:

[
{
“array”: [
{
“id”: null,
“desc”: null,
“cards”: [
{
“id”: “67331d4051cc170cf778fa7b”,
“address”: null,
“badges”: {
“attachmentsByType”: {
“trello”: {
“board”: 0,
“card”: 0
}
},
“externalSource”: null,
“location”: false,
“votes”: 0,
“viewingMemberVoted”: false,
“subscribed”: false,
“attachments”: 0,
“fogbugz”: “”,
“checkItems”: 0,
“checkItemsChecked”: 0,
“checkItemsEarliestDue”: null,
“comments”: 0,
“description”: true,
“due”: null,
“dueComplete”: false,
“lastUpdatedByAi”: false,
“start”: null
},
“checkItemStates”: ,
“closed”: false,
“coordinates”: null,
“creationMethod”: null,
“creationMethodError”: null,
“dueComplete”: false,
“dateLastActivity”: “2024-11-12T09:17:52.713Z”,
“dateViewedByCreator”: null,
“desc”: “Test Board d1\n\nBoard D\nSpecial Requests, 1й тест 12.11, 11:15”,
“descData”: {
“emoji”: {}
},
“due”: null,
“dueReminder”: null,
“email”: null,
“idBoard”: “672e39eebc7dbd90d867ddb7”,
“idChecklists”: ,
“idLabels”: ,
“idList”: “672e39eebc7dbd90d867ddbe”,
“idMemberCreator”: “672e26e51cd5071efdf2236d”,
“idMembers”: ,
“idMembersVoted”: ,
“idOrganization”: “672e2709ce6a6507e9602ca9”,
“idShort”: 1,
“idAttachmentCover”: null,
“labels”: ,
“limits”: {
“attachments”: {
“perCard”: {
“status”: “ok”,
“disableAt”: 1000,
“warnAt”: 800
}
},
“checklists”: {
“perCard”: {
“status”: “ok”,
“disableAt”: 500,
“warnAt”: 400
}
},
“stickers”: {
“perCard”: {
“status”: “ok”,
“disableAt”: 70,
“warnAt”: 56
}
}
},
“locationName”: null,
“manualCoverAttachment”: false,
“name”: “E-mail, test.test260824+d1@gmail.com”,
“nodeId”: “ari:cloud:trello::card/workspace/672e2709ce6a6507e9602ca9/67331d4051cc170cf778fa7b”,
“pinned”: false,
“pos”: 16384,
“shortLink”: “pgbLwL6J”,
“shortUrl”: “Trello”,
“sourceEmail”: null,
“staticMapUrl”: null,
“start”: null,
“subscribed”: false,
“url”: “Trello”,
“cover”: {
“idAttachment”: null,
“color”: null,
“idUploadedBackground”: null,
“size”: “normal”,
“brightness”: “dark”,
“idPlugin”: null
},
“isTemplate”: false,
“cardRole”: null,
“mirrorSourceId”: null,
“mirrorSourceNodeId”: null,
“stickers”: ,
“attachments”: ,
“pluginData”: ,
“customFieldItems”:
},
{
“id”: “67331de50667aa577ae81661”,
“address”: null,
“badges”: {
“attachmentsByType”: {
“trello”: {
“board”: 0,
“card”: 0
}
},
“externalSource”: null,
“location”: false,
“votes”: 0,
“viewingMemberVoted”: false,
“subscribed”: false,
“attachments”: 0,
“fogbugz”: “”,
“checkItems”: 0,
“checkItemsChecked”: 0,
“checkItemsEarliestDue”: null,
“comments”: 0,
“description”: true,
“due”: null,
“dueComplete”: false,
“lastUpdatedByAi”: false,
“start”: null
},
“checkItemStates”: ,
“closed”: false,
“coordinates”: null,
“creationMethod”: null,
“creationMethodError”: null,
“dueComplete”: false,
“dateLastActivity”: “2024-11-12T09:20:37.799Z”,
“dateViewedByCreator”: null,
“desc”: “Test Board e1\n\nBoard D\nSpecial Requests, 1й тест 12.11, 11:22”,
“descData”: {
“emoji”: {}
},
“due”: null,
“dueReminder”: null,
“email”: null,
“idBoard”: “672e39eebc7dbd90d867ddb7”,
“idChecklists”: ,
“idLabels”: ,
“idList”: “672e39eebc7dbd90d867ddbe”,
“idMemberCreator”: “672e26e51cd5071efdf2236d”,
“idMembers”: ,
“idMembersVoted”: ,
“idOrganization”: “672e2709ce6a6507e9602ca9”,
“idShort”: 2,
“idAttachmentCover”: null,
“labels”: ,
“limits”: {
“attachments”: {
“perCard”: {
“status”: “ok”,
“disableAt”: 1000,
“warnAt”: 800
}
},
“checklists”: {
“perCard”: {
“status”: “ok”,
“disableAt”: 500,
“warnAt”: 400
}
},
“stickers”: {
“perCard”: {
“status”: “ok”,
“disableAt”: 70,
“warnAt”: 56
}
}
},
“locationName”: null,
“manualCoverAttachment”: false,
“name”: “E-mail, test.test260824+e1@gmail.com”,
“nodeId”: “ari:cloud:trello::card/workspace/672e2709ce6a6507e9602ca9/67331de50667aa577ae81661”,
“pinned”: false,
“pos”: 32768,
“shortLink”: “r92ieWB4”,
“shortUrl”: “Trello”,
“sourceEmail”: null,
“staticMapUrl”: null,
“start”: null,
“subscribed”: false,
“url”: “Trello”,
“cover”: {
“idAttachment”: null,
“color”: null,
“idUploadedBackground”: null,
“size”: “normal”,
“brightness”: “dark”,
“idPlugin”: null
},
“isTemplate”: false,
“cardRole”: null,
“mirrorSourceId”: null,
“mirrorSourceNodeId”: null,
“stickers”: ,
“attachments”: ,
“pluginData”: ,
“customFieldItems”:
},
{
“id”: “67331de68e4491f37d977302”,
“address”: null,
“badges”: {
“attachmentsByType”: {
“trello”: {
“board”: 0,
“card”: 0
}
},
“externalSource”: null,
“location”: false,
“votes”: 0,
“viewingMemberVoted”: false,
“subscribed”: false,
“attachments”: 0,
“fogbugz”: “”,
“checkItems”: 0,
“checkItemsChecked”: 0,
“checkItemsEarliestDue”: null,
“comments”: 0,
“description”: true,
“due”: null,
“dueComplete”: false,
“lastUpdatedByAi”: false,
“start”: null
},
“checkItemStates”: ,
“closed”: false,
“coordinates”: null,
“creationMethod”: null,
“creationMethodError”: null,
“dueComplete”: false,
“dateLastActivity”: “2024-11-12T09:20:38.337Z”,
“dateViewedByCreator”: null,
“desc”: “Test Board e1\n\nBoard D\nSpecial Requests, 1й тест 12.11, 11:17”,
“descData”: {
“emoji”: {}
},
“due”: null,
“dueReminder”: null,
“email”: null,
“idBoard”: “672e39eebc7dbd90d867ddb7”,
“idChecklists”: ,
“idLabels”: ,
“idList”: “672e39eebc7dbd90d867ddbe”,
“idMemberCreator”: “672e26e51cd5071efdf2236d”,
“idMembers”: ,
“idMembersVoted”: ,
“idOrganization”: “672e2709ce6a6507e9602ca9”,
“idShort”: 3,
“idAttachmentCover”: null,
“labels”: ,
“limits”: {
“attachments”: {
“perCard”: {
“status”: “ok”,
“disableAt”: 1000,
“warnAt”: 800
}
},
“checklists”: {
“perCard”: {
“status”: “ok”,
“disableAt”: 500,
“warnAt”: 400
}
},
“stickers”: {
“perCard”: {
“status”: “ok”,
“disableAt”: 70,
“warnAt”: 56
}
}
},
“locationName”: null,
“manualCoverAttachment”: false,
“name”: “E-mail, test.test260824+d1@gmail.com”,
“nodeId”: “ari:cloud:trello::card/workspace/672e2709ce6a6507e9602ca9/67331de68e4491f37d977302”,
“pinned”: false,
“pos”: 49152,
“shortLink”: “K2fbEXD7”,
“shortUrl”: “Trello”,
“sourceEmail”: null,
“staticMapUrl”: null,
“start”: null,
“subscribed”: false,
“url”: “Trello”,
“cover”: {
“idAttachment”: null,
“color”: null,
“idUploadedBackground”: null,
“size”: “normal”,
“brightness”: “dark”,
“idPlugin”: null
},
“isTemplate”: false,
“cardRole”: null,
“mirrorSourceId”: null,
“mirrorSourceNodeId”: null,
“stickers”: ,
“attachments”: ,
“pluginData”: ,
“customFieldItems”:
}
],
“email”: null
}
],
IMTAGGLENGTH”: 1
}
]

So using this test data, and the email E-mail, test.test260824+d1@gmail.com I used an Iterator on the cards array, aggregated only the data I needed (id, desc, name), used a filter between them to filter out that email only, and the result was an array id, desc, and name from cards where that email was in the name.

I don’t know if this is the best way to handle this, but it’s a start. The problem is there’s a lot going on already in your Scenario so it wouldn’t really make sense to Iterate and Aggregate again on an array you’ve made from a previous Iterate/Aggregate combo.

Anyway, you can see this blueprint to see how it works.
how-to-combine-descriptions-from-different-cards-in-trello-into-one-card-62075.json (17.6 KB)

There is another way to extract desc using map() function with a filter on name, but using E-mail, test.test260824+d1@gmail.com as a value to filter on wasn’t working for me, so I’m missing something there.

1 Like

Thank you, it worked :dancer:
You have greatly simplified the map() function (unlike my first version). this description passing is enough for the process.
Thank you for your time and great solution :+1:

1 Like