made suggested changes

This commit is contained in:
dhselar1423
2023-10-23 16:57:52 +05:30
parent 4da187c4c5
commit 7bca3d9c15
2 changed files with 87 additions and 14 deletions
+86 -11
View File
@@ -14,8 +14,9 @@ Tasks are executed after the job is triggered and are the main building blocks o
Gets multiple records for a table. You can filter. [Official Airtable Docs](https://airtable.com/developers/web/api/update-multiple-records)
```ts example.ts
//gets multiple records from the table. Here we only get the Status fields (columns)
const records = await table.getRecords("muliple records", { fields: ["Status"] });
//gets multiple records from the table.
// Here we only get the Status fields (columns)
await table.getRecords("muliple records", { fields: ["Status"] });
```
@@ -25,7 +26,7 @@ Gets a single record (using the id) for a table. [Official Airtable Docs](https:
```ts example.ts
// Get a single record using the ID of the first record in the fetched records.
const aRecord = await table.getRecord("single", records[0].id);
await table.getRecord("single", records[0].id);
```
@@ -35,10 +36,12 @@ Create one or more records in a table.[Official Airtable Docs](https://airtable.
```ts example.ts
// Create newRecords by adding a record to the table.
const newRecords = await table.createRecords("create records", [
await table.createRecords("create records", [
{
// Define the new record to be created with field values for "Launch goals" and "Status."
fields: { "Launch goals": "Created from Trigger.dev", Status: "In progress" },
// Define the new record to be created
// with field values for "Launch goals" and "Status."
fields: { "Launch goals": "Created from Trigger.dev",
Status: "In progress" },
},
]);
```
@@ -50,12 +53,13 @@ Update one or more records in a table.[Official Airtable Docs](https://airtable.
```ts example.ts
// Update the record that was just created.
const updatedRecords = await table.updateRecords(
// Specify the table's name as "update records."
await table.updateRecords(
// Specify the table's name as "update records."
"update records",
// Use the `map` method to create an array of records to be updated.
// Use the `map` method to create an array of records to be updated.
newRecords.map((record) => ({
// For each record, specify the ID and the field to update ("Status" to "At risk").
/*For each record, specify the :
ID and the field to update ("Status" to "At risk").*/
id: record.id,
fields: { Status: "At risk" },
}))
@@ -69,7 +73,7 @@ Delete one or more records in a table (using ids).[Official Airtable Docs](https
```ts example.ts
// Delete records from the table.
const deletedRecords = await table.deleteRecords(
await table.deleteRecords(
// Specify the table's name as "delete records."
"delete records",
);
@@ -80,4 +84,75 @@ const deletedRecords = await table.deleteRecords(
Do anything thats possible with the official Airtable Node SDK.
## Usage
Include the Airtable integration in your Trigger.dev job.
You can optionally add the types for your Table this gives you nice type inference and errors when writing your code.
```ts
//this is the type definition for my Table
type LaunchGoalsAndOkRs = {
"Launch goals"?: string;
DRI?: Collaborator;
Team?: string;
Status?: "On track" | "In progress" | "At risk";
"Key results"?: Array<string>;
"Features (from 💻 Features table)"?: Array<string>;
"Status (from 💻 Features)": Array<
"Live" | "Complete" | "In progress" | "Planning" | "In reviews"
>;
};
client.defineJob({
id: "airtable-example-1",
name: "Airtable Example 1: getRecords",
version: "0.1.0",
trigger: eventTrigger({
name: "airtable.example",
}),
integrations: {
//make sure to add the integration here
airtable,
},
run: async (payload, io, ctx) => {
//adding the type to table<YourTableType>("<your table name>") gives you nice type inference and errors
//you can leave it out as well table("<your table name>")
const table = io.airtable.base("<your base id>").table<LaunchGoalsAndOkRs>("<your table name>");
//gets multiple records from the table. Here we only get the Status fields (columns)
const records = await table.getRecords("muliple records", { fields: ["Status"] });
await io.logger.log(records[0].fields.Status ?? "no status");
//Get a single record
const aRecord = await table.getRecord("single", records[0].id);
//create a new record
const newRecords = await table.createRecords("create records", [
{
fields: { "Launch goals": "Created from Trigger.dev", Status: "In progress" },
},
]);
//update the record we just created
const updatedRecords = await table.updateRecords(
"update records",
newRecords.map((record) => ({
id: record.id,
fields: { Status: "At risk" },
}))
);
//wait 5 seconds
await io.wait("5 secs", 5);
//delete the record we just created + updated
const deletedRecords = await table.deleteRecords(
"delete records",
updatedRecords.map((record) => record.id)
);
},
});
```
+1 -3
View File
@@ -5,9 +5,7 @@ sidebarTitle: Overview & authentication
## Overview
Our Airtable integration provides a versatile way to enhance data management, collaboration, and workflow automation.
You can customize triggers and tasks to fit your unique use cases and business processes, helping your team become more efficient and productive.
Our Airtable integration allows you to easily connect to the Airtable API and perform tasks such as creating/updating/deleting single or multiple records in your tables.
For examples of some of the things you can do with it, check out our Jobs Showcase: