Discord Embeds, specifically the fields

I’ll start by saying that I’m new to make and to start with something simple since I use Discord a lot I tried using the “Watch Channel Messages”, so trying to collect the full content of a message and literally paste it in another text channel, which in this case belongs to another server, with the “Send a message” modules.

So far I have managed, with a really simple scheme, to get the full content of the message sent in the “X” server and get it “pasted” in a channel-text belonging to a “Y” server, however depending on the following type of messages the “send message” module detects:

  • Only raw text, no embed attached
  • No raw text, only embed(s) attached

occurred the invalid form body error since i was filling both raw text and embeds fields but sometimes it was missing, so I opted for a router that has to verify wether 2 different conditions occur, the first route should be done if the message has no embed, but only raw text and the second one, if the message has no content as raw text, but has embeds attached.

I say in advance that the router’s conditions are probably wrong / poorly formulated, but at the moment that is not the serious problem.

The problem that is giving me a hard time is that although the “watch messages” module is able to detect the entire content and arranges the group of embed’s fields in an array and the single fields as collections with their 3 values ( name, value, inline status ), the send message module literally gets every information/content about that embed but only one of those fields by default. Is there anyone more experienced who has any idea how to solve this problem?

I’ll point out in advance that it shouldn’t be a problem related to Privileged Gateway Intents since they are all enabled.

( Don’t mind the iterator and array aggregator modules, after seeing a video tutorial I wanted to try to see if breaking the array into multiple bundles w/iterator could solve the problem, but I didn’t succeed :confused: , so those modules are not active… )



Try to iterate these fields before passing them to the next module.

Welcome to the Make community!

Every result (item/record) from an iterator module will output a bundle. To “combine” them into a single structure, you’ll need to use an aggregator of some sort.

Aggregators are modules that accumulate multiple bundles into one single bundle. An example of a commonly-used aggregator module is the Array aggregator module.

The Array Aggregator module allows you to build a complex array of collections for a later module’s field to map multiple items (collections) to it.

Here is an example of using the “Target structure type” of an Array Aggregator module:

As you can see, the “Map” toggle on fields are used when you have an array. You can easily build an array variable to map to a field, by using an Array Aggregator module and select the “Target Structure Type” as the future field you want to map the array into.

Using this method, you should be able to map the embed field.

samliewrequest private consultation

Join the unofficial Make Discord server to chat with other makers!

3 Likes

Thanks both Mariana and Samliew for the quick answers! with the help of an Iterator and an array aggregator i managed to get the result i was looking for!



3 Likes