Best answer

SubZap - Return from SubZap after Loop


Userlevel 1

Good evening community,

 

to give you a short background information for my actual problem / situation.

We try to read information (beside some main data also line items) from airtable and send them to documint.

In general the selection should be ok, but there is the limitation for around 10 line items from Airtable at once and therefore i can not get all at once.

What is my approach:

Created a Main Zap that gets started by a webhook from Airtable and then starts collecting the main data from there. then after a filter that ensures all is there what needed i call a SubZap (one of 5 needed) which should do the following:

  1. Trigger that starts it
  2. Action to read all the data based on a view i created in Airtable to split the items and so max the number i can get per run (now at least the 10 limit counts for one group or category of line items, not for all)
  3. Start a loop and write the received data in a Zapier Table that reflects all possible fields used in my Airtable data. In details what the loop does:
    1. Create the records in Zapier Tables
    2. Filter to only continue at Last iteration of loop
    3. At last it should give an “OK” for this step via “Return from a Sub-Zap” back to Main Zap

Of course i read the issue at the right, telling me, i cannot use a loop step before a return step.

But i do not get that, what is the issue here? it worked when i tested it once. But not now anymore.
If it runs once then i gets reset and all the mapping in the loop gets lost and i have to reconfigure it and it will not run properly of course.

What is the reason behind this limitation? I can not find any practical solution.

 

The plan was to get the OK from SubZap 1 backto main, then check if the OK was sent, then start SubZap 2 for next category and so on until the last (5th category).
After then the Main should read the zapier table and create all the needed Line Items out of it and send it to the next tool.

 

As this is not working properly, can you please enlighten me or propose me anything how to solve this issue?
Or if i oversee any particular point or option here?

This really frustrates me here, and i hope you can help me.

Thank you in addition, have a wonderful evening.

Cheers :)

 

 

icon

Best answer by Troy Tessalone 10 August 2023, 00:37

View original

This post has been closed for comments. Please create a new post if you need help or have a question about this topic.

13 replies

Userlevel 7
Badge +14

Hi @Financial Admin 

Zap action: Airtable - API Request

This can be used to return up to 100 records.

 

Userlevel 1

Hi Troy,

sounds good, is this also working for line items?
or does it give just raw record lines?

 

I will test it out, if that works, you are my savior :D

 

BR

FA

 

Userlevel 7
Badge +14

@Financial Admin 

Unclear about what you mean by these:

is this also working for line items?
or does it give just raw record lines?

 

The output is the same as the Find Record(s) action.

 

Airtable API: https://airtable.com/developers/web/api/introduction

Userlevel 1

Hi @Troy Tessalone ,

 

thank you very much, i tried the request, but i am not that much familiar with the correct syntax.

May i ask you, if this is correct?

I setup the Formula like you see here:

and Record ID should be the value out of a previous step in Zapier.

And in Zapier the only field i wanted to fill is this one here, right?
 

 

I am not sure what i do wrong, but when i try to filter on a specific value on a record, i can not get the correct records.

If you have any hint for me, would be awesome….

 

Thank you in advance.

BR

 

Userlevel 7
Badge +14

@Financial Admin 

You would use these 2 sections:

  • URL
  • Query String Parameters

 

Userlevel 7
Badge +14

@Financial Admin

Try this filterByFormula

Change {FIELD} to the desired field.

Change [RECORD_ID] to be mapped in from a previous step.

{FIELD} = '[RECORD_ID]'

 

 

Userlevel 1

Hi @Troy Tessalone ,

in general that worked, but it seems that the date gets mixed up entirely.
i have records in airtable that store all information, also sometimes columns not filled depending of the product involved.

when i request those records i guessed i will have empty colums that will reflect just as ,,,value,,,

while others reflect as ,value,,value,value,,, for example.

The request seems ok yet. But then i want to loop them (create loop from text with delimeters “,”) and create then entries in my Zapier Table.

The result mixes values from different records, column values from a third record are also included in first and so on….
I am not sure how i can manage to keep them all like they are intended to be…

Userlevel 7
Badge +14

@Financial Admin 

We would need to see updated screenshots with how your Zap steps are configured.

Showing screenshots with how the data is returned from Airtable will be helpful too.

Since the data returned from Airtable is an array, make sure to use this Zap action: Looping - Create Loop from Line Items

 

Userlevel 1

Hi @Troy Tessalone ,

 

of course i will send updated Screenshots.

I used the one config you mention above before, but the issue then was, the values have not been separated but only taken together in one long string with the “,” in between.
So i was trying to get the one with text instead of by lineitems.

Here is the Whole in a nutshell for now:
 

 

 

Here are the details from the API Request:


Here are the records that comes in the “data” section of the requests return (put in a spoiler so you can hide it due to long text.

 

data
 records
  1
id
rec8gUP9IHzJjZU1P
createdTime
2023-08-10T20:51:46.000Z
fields
Produkt
1
recpFsMrvMHVtwfO6
Ablauf Zinsfestschreibung
2030-03-01
Aufstellung
1
recmC8aGf85pALeHI
Kreditrate
350
DetailID
17
Ablauf Vertrag
2031-01-01
Kredit Zins
0.0321
Kreditsumme
300000
Aufstellung Detail
Aufstellung Details-17
KundeID
1
rechnmLHhnDPiMlEz
Produkt Kategorie
1
Privatkredit
RecordID
rec8gUP9IHzJjZU1P
Kunde
1
Leland Gaunt
Produkt Bezeichnung
1
Privatkredit
Produkt Gruppe
1
Finanzen
FindTest
1
2
id
recO2Ul9VP7goposH
createdTime
2023-08-10T20:54:08.000Z
fields
Produkt
1
rectCJWiObmEjZVbE
Ablauf Zinsfestschreibung
2040-12-31
Aufstellung
1
recmC8aGf85pALeHI
Kreditrate
99
DetailID
18
Ablauf Vertrag
2040-12-31
Kredit Zins
0.1132
Kreditsumme
4500
Aufstellung Detail
Aufstellung Details-18
KundeID
1
rechnmLHhnDPiMlEz
Produkt Kategorie
1
Privatkredit
RecordID
recO2Ul9VP7goposH
Kunde
1
Leland Gaunt
Produkt Bezeichnung
1
Kreditkarte
Produkt Gruppe
1
Finanzen
FindTest
1
3
id
recVdS5E0cYh0zolI
createdTime
2023-08-10T20:58:36.000Z
fields
Produkt
1
recIPVVCUzm0q2jP4
Aufstellung
1
recmC8aGf85pALeHI
DetailID
21
Ablauf Vertrag
2028-12-31
Versicherung Jahresbeitrag
480
Aufstellung Detail
Aufstellung Details-21
KundeID
1
rechnmLHhnDPiMlEz
Produkt Kategorie
1
Versicherung
RecordID
recVdS5E0cYh0zolI
Kunde
1
Leland Gaunt
Produkt Bezeichnung
1
Unfallversicherung
Produkt Gruppe
1
Versicherungen
FindTest
1
4
id
recZS3zPbMIU29kWC
createdTime
2023-08-10T20:56:25.000Z
fields
Produkt
1
rec0gnfgq9E3FH4Lv
Ablauf Zinsfestschreibung
2045-12-31
Aufstellung
1
recmC8aGf85pALeHI
DetailID
20
Ablauf Vertrag
2055-12-31
Kredit Zins neu
0.036
Kreditrate optimiert
1100
Kreditsumme optimiert
800000
Aufstellung Detail
Aufstellung Details-20
KundeID
1 rechnmLHhnDPiMlEz
Produkt Kategorie
1
Finanzierung - Kredit optimiert
RecordID
recZS3zPbMIU29kWC
Kunde
1
Leland Gaunt
Produkt Bezeichnung
1
Kredit optimiert
Produkt Gruppe
1
Finanzen
FindTest
1
5
id
recc64zvXTr3aY7bT
createdTime
2023-08-10T20:55:32.000Z
fields
Produkt
1
recepesqCIoVOiflX
Ablauf Zinsfestschreibung
2034-12-31
Aufstellung
1
recmC8aGf85pALeHI
Kreditrate
1200
DetailID
19
Ablauf Vertrag
2034-12-31
Kredit Zins
0.0455
Kreditsumme
425000
Aufstellung Detail
Aufstellung Details-19
KundeID
1
rechnmLHhnDPiMlEz
Produkt Kategorie
1
Baufinanzierung
RecordID
recc64zvXTr3aY7bT
Kunde
1
Leland Gaunt
Produkt Bezeichnung
1
Hypothek
Produkt Gruppe
1
Finanzen
FindTest
1
6
id
recrGe4ymX4Z8nQG6
createdTime
2023-08-10T20:59:26.000Z
fields
Produkt
1
recEpMAzXJXl5eRFl
Versicherung Jahresbeitrag optimiert
390
Aufstellung
1
recmC8aGf85pALeHI
DetailID
22
Ablauf Vertrag
2035-05-01
Aufstellung Detail
Aufstellung Details-22
KundeID
1
rechnmLHhnDPiMlEz
Produkt Kategorie
1
Versicherung optimiert
RecordID
recrGe4ymX4Z8nQG6
Kunde
1
Leland Gaunt
Produkt Bezeichnung
1
Unfallversicherung optimiert
Produkt Gruppe
1
Versicherungen
FindTest
1

 

and for one of the items here the screenshots (last field overlaps to new screenshot to show where it continues):
 

 

 

Then the Step for the loop:

 

 

Example of the fields that are getting looped:

 

There are more , depending of the product

Here are the further settings

 

and here you get the first loop as the preview and not all of the fields had to be filled. some of the data is already mixed with the data from other records.

1
loop_iteration
1
KreditSumme
300000
KreditSummeOpt
800000
AufstellungDetail
Aufstellung Details-17
AufstellungID
recmC8aGf85pALeHI
Aufstellung
recmC8aGf85pALeHI
KundeID
rechnmLHhnDPiMlEz
KundeName
Leland Gaunt
ProduktID
recpFsMrvMHVtwfO6
ProduktBezeichnung
Privatkredit
ProduktKategorie
Privatkredit
ProduktGruppe
Finanzen
KreditRate
350
KreditRateOpt
1100
KreditZins
0.0321
KreditZinsNeu
0.036
VersicherungJahresbeitrag
480
VersicherungJahresbeitragOpt
390
AblaufZinsfestschreibung
2030-03-01
AblaufVertrag
2031-01-01
DetailID
17
RecordID
rec8gUP9IHzJjZU1P

 

 

Does that fit for you to give me maybe more ideas?

 

Thank you so so much for taking your time at all, really appreciated!

Userlevel 7
Badge +14

@Financial Admin 

Since the data returned from Airtable is an array, I recommend using this Zap action: Looping - Create Loop from Line Items

 

If you only want records that meet certain conditions (e.g. Field X must have a value), then specify an Airtable View (with Filters criteria configured) in the Airtable API Request action.

 

Or you can use a Filter step after the Looping step to limit which records continue to run based on configured Filter conditions.

Userlevel 1

Hi @Troy Tessalone ,

i tried again, here is the result when i switch to Loop from line items, first the setup:

 

 

Then, the result in the test:
 

 

 

 

Somehow it seems the linked IDs etc. would be kept all in one field, the data that is just from this record in other fields stay like it should be.

Can you tell me why the linked data is stored this way and how to prevent this?

 

Thank you and regards

Userlevel 7
Badge +14

@Financial Admin 

Looks like you are mixing values from different steps.

Try removing the mapped values from step 2 and step 3.

Instead map those directly to the desired step after the Looping step.

 

Userlevel 1

Hi @Troy Tessalone ,

i tried, but even when i use the response data record the data that is not directly included but linked is not getting listed in the line item but then it takes all from this one “lower” level together and packs all values in one field.

That is always when you see above my post and picture, when you have the one below the field cause it is linked.

What i recognized is, when i have data linked over a single select field for example the categorie or the product group, i could not use them when they have been linked but… when i use a formula field in the table and just put the single select field as source so that i have the name in the formula field, this works for me. And this way i can use the really neccesary fields for the selection.
This way i need to put the name of the product also in addition in a single select and then get the name via Formula field but this is all i can do now.

I guess this is a shabby solution, but for now it works and hopefully i will be able to refine it someday.

 

Thank you for your help with this Troy, much appreciated, even when the solution needed to be this way :)

Have a good evening!