Help

Re: One to many relationship between bases

524 1
cancel
Showing results for 
Search instead for 
Did you mean: 
Moshe_Peretz
5 - Automation Enthusiast
5 - Automation Enthusiast

Hi guys,

I have multiple bases with the same structure. (Meaning - same fields, same data but different clients).

I’m trying to build a base that contains all records from all of the bases with a specific status (the status called ‘Send Pitch’).
So, I’ve managed to collect all of these statuses from all bases using AT automation and scripting block. The first step is “When record matches conditions” (when the status = “Send Pitch”) and then a short script to add the relevant values into my webhook.

let url = "https://hooks.zapier.com/hooks/catch/XXXXXXX/?recordID=";
let config = input.config();
let baseID = base.id;
let table = base.getTable("SDR Workbench");
let tblID = table.id;
let basename = base.name;


await fetch(url + config.recordId + '&baseID=' + baseID + '&tblid=' + tblID + '&tblname=' + basename + '&cname=' + config.cname + '&fuptxt=' + config.fuptext);

So, one way is good. All of the records with a “Send Pitch” status are sent to my new base.
My problem starts when I’m trying to return those records back to their original base. After handling the record, the status should be changed to pitch sent. Once the status changed, I want to update ONLY the status field of the record on the original base with the status “Pitch Sent”.
Zapier is having trouble sending them to multiple bases because the field codes aren’t the same. Here’s an example:

zaperr

To accomplish this step, I’m using a different webhook with the record ID, base ID, table name, client, and status fields.

let url = "https://hook.integromat.com/XXXXXXXX?recordID=";
let config = input.config();
let baseID = base.id;
let table = base.getTable("Send Pitch");
let tblID = table.id;
let basename = base.name;


await fetch(url + config.recordId + '&baseID=' + config.baseID + '&tblid=' + config.tblID + '&tblname=' + basename + '&baseName=' + basename + '&Status=' + config.status + '&Client=' + config.client );

Any ideas on how to make Zapier find the relevant base to send the data to and how to avoid these field errors?
Any other method I can use instead of exporting it to Zapier? maybe Airtable API?3

Thanks in advance for your help!

2 Replies 2

Assuming you’ve already looked at Airtable’s native cross-base table syncing and determined it wouldn’t work for you:

If I understand your post correctly, you have an Automation in each Client Base that has a Run a script action to trigger a Zapier webhook to copy the trigger record to one collector base. If this is accurate, can’t you just add a Update record step that updates the original record’s status? Is there a reason that step must be done in Zapier?

Also: a non-Zapier approach to using Airtable Automations to push a record from one base to another was covered on the BuiltOnAir podcast starting in Episode 2

Hi @Kamille_Parks, thanks for your response!

Yes, you got it right.
The reason I can’t use the sync function is that I have ~100 bases for different clients, so I can’t really create a hundred tabs for this task.

Also, thanks for the info regarding this podcast! I saw a half of it before, and I’m definitely gonna see the other half now.

And the most important thing - Here’s the workaround I used to solve the problem:

The downside - It’s not solved with Zapier, but with Integromat.
I sent another webhook from the single base to Integromat, then performed an API call with the ‘Make an API Call’ module.
In this module, I’ve inserted the data from my webhook (in order to use it with various bases, I used the API address as v0/[BaseID-module]/[TableName-module]. Same for the fields I wanted to update and the record ID they refer to.

I hope it’s clear. If someone will find it useful, I’ll add some screenshots.