Make est un outil formidable pour mettre en relation des applications qui ne nous le permettent pas forcément par défaut. Ces applications, via leur API, permettent à Make de communiquer avec les autres services de notre entreprise, et c’est ce qui rend ce logiciel si puissant. Le problème qu’on rencontre souvent, c’est que le format de données renvoyé par ces applications n’est pas toujours le même. Dans cet article, je te présente l’importance d’utiliser des array aggregator et iterator sur Make pour transformer tes données d’un format vers un autre pour une meilleure fluidité de tes scénarios.
2 formats de données
Dans Make, il arrive souvent qu’on ait besoin de récupérer un ensemble de données. Depuis un Google Sheets, depuis un tableau, une base Airtable, un CRM…
Ces applications vont nous renvoyer des données mais sous deux formats différents.
Le format tableau
C’est le format auquel on pense quand on s’attend à recevoir plusieurs résultats. Le module récupère toutes nos données, les met dans un tableau et nous renvoie le tableau.
On se retrouverait donc avec une simple liste de nos éléments comme ici :
- Pomme
- Banane
- Poire
- Cerise
- Kiwi
Après avoir renvoyé ce tableau, les modules suivants sont exécutés une seule fois et ton scénario se poursuit normalement.
Le format bundles
Un grand nombre de modules renvoient leurs données dans ce format. Le format bundles renvoie un pack de données par résultat trouvé.
La différence majeure avec le tableau, c’est que la suite de ton scénario sera exécutée x fois, x correspondant au nombre de résultats trouvés.
Donc si tu trouves 1000 résultats dans ton Google Sheets par exemple, chaque module qui suit ton module Google Sheets sera exécuté 1000 fois.
Quel format est le meilleur ?
En réalité, il n’y a pas de meilleur format qu’un autre. Les deux formats ont leur utilité, et tout dépend de ce que tu veux faire de ces données.
Parfois, tu souhaites traiter toutes les données reçues une à une. Et parfois tu souhaites traiter tes données toutes en même temps.
L’array aggregator, qu’est-ce que c’est ?
Passons maintenant à la pratique. Sur Make, pour passer d’un format de type bundle à un format de type tableau, on utilise un array aggregator.
Ce module prend en paramètre une liste de bundles et insère tout dans un tableau qu’il retourne en résultat.
Exemple avec Google Sheets
Pour illustrer l’intérêt de l’array aggregator, on peut utiliser Google Sheets. Le module Search Rows nous permet de récupérer une liste de plusieurs bundles qui contiennent chacun le contenu de nos lignes.
Ici, mon module Search Rows m’a renvoyé 11 bundles. Comme je te l’ai expliqué plus tôt, tous les modules suivants de mmon scénario traiteront chacun des 11 bundles individuellement.
Pour traiter cet ensemble de données de manière groupée, alors on doit transformer ces bundles en tableau. Pour ce faire, on va utiliser un array aggregator.
Les paramètres de l’array aggregator sur Make
L’array aggregator prend plusieurs paramètres. D’abord, tu dois spécifier la source des données. En l’occurence pour nous, nous n’avons qu’un seul module, donc les données viennent forcément de notre module Google Sheets.
Le second paramètre, c’est « Target structure type ». On peut faire en sorte que le tableau retourné par notre array aggregator corresponde à un format demandé dans un des modules suivants.
Par exemple, le module Instagram « Create a carousel post » demande un tableau avec des valeurs « media_type » et « image_url ». Si on ajoute ce module plus tard dans notre automatisation, on pourra faire en sorte que « Target structure type » ait la bonne structure pour l’utiliser dans notre module Instagram.
En savoir plus sur l’automatisation d’Instagram.
Le dernier paramètre est « Aggregated fields », qui te permet de choisir les données de notre Google Sheets qu’on veut garder dans notre tableau. Dans notre cas, il y a beaucoup de données inutiles dans les variables renvoyées par « Search Rows », nous n’avons besoin que de la colonne A.
Le résultat de l’array aggregator sur Make
Le module nous renvoie ainsi un tableau. Dans ce tableau, on retrouve 11 éléments et chacun de ces éléments contiennent le contenu de la colonne A comme spécifié dans les paramètres.
Le module Iterator sur Make
Le module Iterator fait exactement l’opposé du module aggregator. C’est à dire qu’il permet de convertir un tableau en plusieurs Bundles.
Par rapport à l’exemple précédent où nous avons convertir nos bundles en tableau. Pour l’exemple, nous pouvons de nouveau convertir ce tableau en bundles.
Paramètre de l’iterator sur Make
Le module iterator ne prend qu’un seul paramètre : le tableau à convertir.
Résultat de l’iterator sur Make
C’est bon, notre tableau est converti en plusieurs bundles. Les résultats ne sont pas exactement les mêmes que ceux renvoyés par le Google Sheets car avec l’aggregator, nous avions seulement récupéré quelques données, pas toutes.
Cela peut parfois être intéressant de combiner un aggregator et un iterator. Notamment pour trier les données des bundles reçus. On sélectionne les données qu’on veut garder, puis on convertit de nouveau celles-ci pour que nos bundles soient plus légers.
Conclusion : Array aggregator et iterator sur Make
J’espère que tu as bien compris pourquoi et comment utiliser les array aggregator et iterator sur Make. Pour être honnête, j’ai mis du temps avant de réellement comprendre leur utilité.
La meilleure façon d’apprendre, c’est en pratiquant. Et je pense qu’en créant des scénarios, tu tomberas forcément sur une situation où tu auras besoin d’un de ces deux modules pour débloquer ton scénario.
Comme d’habitude, dis-moi en commentaire si tu as la moindre question.
A bientôt.
Nathan.