What are you trying to achieve?
good evening all,
Im finally at the end of my wits, trying to figure out this thing called callin.io.
I have a model running well with prompts from Airtable via OpenAI and back into Airtable, perfectly organized and formatted. The problem starts when i try to extract this into Google Docs, Duplication occurs, markdown occurs and generally i am just going crazy. Late nights, no sleep. NEED to fix this. But i need help.
Steps taken so far
The best i have managed is to get the data into GoogleDocs, but then it is markdown format, with all the openai responses crowded 3x into all 3 placeholders.
I need advise on how to get the data in correct format into Google doc.
Screenshots: scenario setup, module configuration, errors
Welcome to the callin.io community!
Your source module is likely incorrect, and you might be using the wrong type of aggregator.
Setting the Correct Aggregator Source
You need to set the “Source Module” field of the aggregator to where the bundles are originating from. This is typically an iterator module, but it could also be a search/list/repeater module, or even the trigger module!
Combining Bundles Using Aggregators
Each result (item/record) from trigger/iterator/list/search/match modules will output a bundle. This can lead to multiple bundles, which then trigger multiple operations in subsequent modules (one operation per bundle). To “combine” multiple bundles into a single variable, you will need to use an aggregator.
Aggregators are modules that consolidate multiple bundles into one single bundle. An example of a commonly used aggregator module is the Array aggregator module. The next popular aggregator is the Text Aggregator, which is very versatile and can be applied to many use cases such as building JSON, CSV, or HTML.
You can find more information about other types of aggregator modules here:
- Array aggregator
- Text aggregator
- Numeric aggregator
- Table aggregator
- JSON aggregator
- CSV aggregator
- Archive (ZIP) aggregator
- other app-specific aggregators
Question: Which aggregator do you think will be most suitable for your use-case?
Mapping a Specific Structure Into a Complex Field
If you have an array of collections, in programming terms, this is referred to as an array of objects, or an array containing non-primitive data types (“complex”).
The Array Aggregator module is quite powerful as it enables you to construct a new complex array of collections that matches a field in a later module, allowing you to map multiple items (collections) to it. Such fields would normally allow you to add items manually, but you can switch the “Map” toggle to the “on” state and map an entire array into a single field.
This is achieved by selecting the “Target structure type” within the Array Aggregator module.
As illustrated in the example above, the “Map” toggle on complex fields is utilized when you have an array variable (such as one generated by an array aggregator). Other module combinations might also allow you to produce an array that matches a future field’s array structure, for instance, “Aggregate to JSON + Parse JSON”, or “Create JSON + Parse JSON”, but this is a more advanced topic.
Question: Are you mapping your array into a field that accommodates multiple items/collections?
Example
Here’s an illustration of how your scenario might appear:
This is merely an example. Your final solution might differ based on your specific requirements and the data you are working with.
For additional details, please refer to "Mapping with arrays" in the Help Centre. It is also recommended to explore the callin.io Academy, which also covers the usage of Iterators & Aggregators.
Hope this guidance is helpful! Please let me know if you have any further questions or encounter any issues. P.S.: Dedicating some time to the tutorials in the callin.io Academy will significantly save you time and reduce frustration when using callin.io!
I implemented a comparable configuration and incorporated an image to text process prior to feeding the data into the Airtable field. This ensures that if the image holds the necessary information, it extracts the text first and then updates the record accordingly. You can implement a filter to verify if the field is empty before proceeding with the update, which was beneficial in preventing accidental overwrites.