Skip to content

Instantly share code, notes, and snippets.

@arthurwuhoo
Created December 17, 2021 18:47
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save arthurwuhoo/fb2dec2c1488303712908db71c6a60fb to your computer and use it in GitHub Desktop.
// ----------------------------------------------------------------------------
// 🚨 STEP 1. 🚨
// Change 'Test' to the name of your table.
let table = base.getTable('Test');
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// 🚨 STEP 2: 🚨
// Change the following url to your Zapier webhook.
// To get a Zapier webhook, click the below link, then choose "Catch Hook" as the trigger event
// https://zapier.com/app/editor?create=true&template__0__selected_api=WebHookAPI
let webhook_url = 'ZAPIER_WEBHOOK_URL'
// ----------------------------------------------------------------------------
let record = await input.recordAsync('Choose a record', table);
let record_id = record.id;
// ----------------------------------------------------------------------------
// 🚨 STEP 3. 🚨
// Add all the fields you want to send over to Zapier. Follow the format:
// let record_FIELDNAME = record.getCellValue(FIELDNAME);
let record_email = record.getCellValue('Email');
let record_name = record.getCellValue('Name');
// ----------------------------------------------------------------------------
const customFetch = async (
record,
) => {
const url = webhook_url;
console.log("F url:", url);
const options = {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
record_id: record_id,
// ----------------------------------------------------------------------------
// 🚨 STEP 4. 🚨
// Pass in the fields you want to use in the Zapier Zap
// Format it like --
// record_FIELDNAME: record_FIELDNAME,
record_name: record_name,
record_email: record_email,
// ----------------------------------------------------------------------------
}),
};
const response = await remoteFetchAsync(url, options);
const result = await response.json();
return result;
};
let result = await customFetch(record);
console.log(result);
output.markdown(`# You have selected ${result}.`);
@Camos26
Copy link

Camos26 commented Sep 14, 2023

@arthurwuhoo I've referenced your script for a few Airtable extensions that were working great up until a day or so ago. Im getting the error below:

j: Error: Bad request: .requestJson is missing
at customFetch on line 94
at main on line 99

any ideas? I'm not seeing any outages or recent updates that might have thrown off the script. My full script is linked below.


`// ----------------------------------------------------------------------------

// 🚨 STEP 1. 🚨
// Change 'Test' to the name of your table.
let table = base.getTable("Credit Submissions");
// ----------------------------------------------------------------------------

// ----------------------------------------------------------------------------
// 🚨 STEP 2: 🚨
// Change the following url to your Zapier webhook.
// To get a Zapier webhook, click the below link, then choose "Catch Hook" as the trigger event
// https://zapier.com/app/editor?create=true&template__0__selected_api=WebHookAPI
let webhook_url = '{URL HIDDEN}'
// ----------------------------------------------------------------------------

let record = await input.recordAsync('Choose a record', table);
let record_id = record.id;

// ----------------------------------------------------------------------------
// 🚨 STEP 3. 🚨
// Add all the fields you want to send over to Zapier. Follow the format:
// let record_FIELDNAME = record.getCellValue(FIELDNAME);
let record_Name = record.getCellValue('Name');
let record_CompanyName = record.getCellValue('Company Name');
let record_DateofBirth = record.getCellValue('Date of Birth')
let record_SocialSecurityNumber = record.getCellValue('Social Security Number');
let record_LoanAmountNeeded = record.getCellValue('Loan Amount Needed');
let record_Email = record.getCellValue('Email');
let record_TaxID = record.getCellValue('Tax ID');
let record_Phone = record.getCellValue('Phone');
let record_HomeStreetAddress = record.getCellValue('Home Street Address');
let record_HomeCity = record.getCellValue('Home City');
let record_HomeState = record.getCellValue('Home State');
let record_HomeZipCode = record.getCellValue('Home Zip Code');
let record_BusinessStreetAddress = record.getCellValue('Business Street Address');
let record_BusinessCity = record.getCellValue('Business City');
let record_BusinessState = record.getCellValue('Business State');
let record_BusinessZipCode = record.getCellValue('Business Zip Code');
let record_TimeInBusinessYears = record.getCellValue('Time In Business Years');
let record_BusinessStartDate = record.getCellValue('Business Start Date');
let record_EntityType = record.getCellValue('Entity Type');
let record_HomeAddress = record.getCellValue('Home Address');
let record_BusinessAddress = record.getCellValue('Business Address');
let record_UTM = record.getCellValue('UTM');
let record_SalesRep = record.getCellValue('Sales Rep');
// ----------------------------------------------------------------------------

const customFetch = async (
record,
) => {
const url = webhook_url;
console.log("F url:", url);

const options = {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
record_id: record_id,

// ----------------------------------------------------------------------------
// 🚨 STEP 4. 🚨
// Pass in the fields you want to use in the Zapier Zap
// Format it like --
// record_FIELDNAME: record_FIELDNAME,
record_Name: record_Name,
record_CompanyName: record_CompanyName,
record_DateofBirth: record_DateofBirth,
record_SocialSecurityNumber: record_SocialSecurityNumber,
record_LoanAmountNeeded: record_LoanAmountNeeded,
record_Email: record_Email,
record_TaxID: record_TaxID,
record_Phone: record_Phone,
record_HomeStreetAddress: record_HomeStreetAddress,
record_HomeCity: record_HomeCity,
record_HomeState: record_HomeState,
record_HomeZipCode: record_HomeZipCode,
record_BusinessStreetAddress: record_BusinessStreetAddress,
record_BusinessCity: record_BusinessCity,
record_BusinessState: record_BusinessState,
record_BusinessZipCode: record_BusinessZipCode,
record_TimeInBusinessYears: record_TimeInBusinessYears,
record_BusinessStartDate: record_BusinessStartDate,
record_EntityType: record_EntityType,
record_HomeAddress: record_HomeAddress,
record_BusinessAddress: record_BusinessAddress,
record_UTM: record_UTM,
record_SalesRep: record_SalesRep,
// ----------------------------------------------------------------------------
}),
};

const response = await remoteFetchAsync(url, options);
const result = await response.json();
return result;
};

let result = await customFetch(record);

console.log(result);
output.markdown(# You have selected ${result}.);`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment