Znote (recipes)
  Get Znote  

Tutorial Airtable

How to use the Airtable Plugin with CRUD

 

Airtable

This note enables seamless integration with an Airtable spreadsheet. 👉 Insure to install the Airtable plugin

Initialization ⚙️

  • Create and save your personal token Create Token Scopes: data.records:read data.records:write schema.bases:read schema.bases:write Access: Your workspace

  • Create a new Table Info: The Airtable URL is composed like below: https://airtable.com/BASE/TABLE/VIEW https://airtable.com/appnXXXX/tblXXXX/viwXXX

Usage 🧑‍💻

Copy your Airtable infos in the block below

const BASE= "appnXXXX";
const TOKEN = "XXXXXXXX";
const TABLE = "tblXXX";

Create a Table Field types documentation: Field-model

const AirtableApi = require("./airtable-api.js");
const data = {
    "name": "Purchases",
    "description": "List of customers for downloadable content",
    "fields": [
      {"name": "Email", "type": "email"},
      {"name": "purchaseDate", "options": {"dateFormat":{"format":"YYYY-MM-DD", "name":"iso"}}, "type": "date"},
      {"name": "nbrOfDownload", "options": {"precision":0}, "type": "number"},
      {"name": "version", "options": {"precision":0}, "type": "number"}
    ]
  }

const airtable = new AirtableApi(TOKEN, BASE);
printJSON(await airtable.createTable(data));

List records

const AirtableApi = require("./airtable-api.js");
const airtable = new AirtableApi(TOKEN, BASE);
const result = await airtable.listRecords(TABLE, 100, 0);
//const result = await airtable.listRecordsSorted(TABLE, 100, 0, "purchaseDate");
printJSON(result);

Search a record Formula Documentation: formula-field-reference

const AirtableApi = require("./airtable-api.js");
const airtable = new AirtableApi(TOKEN, BASE);
const result = await airtable.searchRecord(TABLE, 'SEARCH(SUBSTITUTE("usermail@gmail.com","+","%2B"), {email})');
printJSON(result);

Create a new record

const AirtableApi = require("./airtable-api.js");
const airtable = new AirtableApi(TOKEN, BASE);
const creationDate = new Date().toISOString().split('T')[0];
const data = {
    "records": [
      {
        "fields": {
          "Email": "usermail@gmail.com",
          "purchaseDate": creationDate,
          "nbrOfDownload": 0,
          "version": 1
        }
      }
    ]
  }
const result = await airtable.createRecord(TABLE, data);
printJSON(result);

Update a record

const AirtableApi = require("./airtable-api.js");
const airtable = new AirtableApi(TOKEN, BASE);
const RECORD = "rech8grvSTiksocGa"; // recordID to change
const data = {
  "fields": {
    "nbrOfDownload": 1
  }
}
const result = await airtable.updateRecord(TABLE, RECORD, data);
printJSON(result);

Related recipes