Plugin for Grouparoo to add Airtable as a destination
What do records map to in Airtable?
- Records map to rows in tables in Airtable
- The primary key is an internal ID in Airtable
- There is an API that allows us to update, insert and read these rows knowing this internal ID
What do we call the fields in Airtable
- Fields in Airtable are just called fields
- These fields can be a collection of different types
- String
- Internal ID of record in other table
- URL to other resource
- Number
- boolean
- Lookup(Array of numbers, strings, booleans, or objects)
What does Group Membership map to?
- Group membership would map to a tags field in the table
- Group membership would be updated using the update method
Do the APIs exist to do things in bulk?
- Create and Update can accept up to 10 items per request
What do rate limits look like?
- The rate limit for Airtable is 5 requests per second with a 30 second penalty for exceeding that
- 429 status is returned if the rate limit is exceeded
Is there a supported/maintained Node API client?
- Yes there is the Airtable API client Airtable API
Where is the Airtable icon from?
Where do we get credentials for Airtable?
- This can be accessed from the user page on airtable
yarn add @bsegal/grouparoo-airtable-pluginyarn installyarn commityarn build: CommonJS Modules (/cjs), and ESModule (/esm) from the source using the TypeScript Compiler.yarn format: Format source code files via Prettier.yarn lint: Lint all source files via ESLint.yarn test: Run all tests via Jest.yarn commit: Create a commit, correctly formatted using commitizen.
CI is enabled via build-info.yaml, using [Tingle].
commitizen, semantic-release, and conventional-changelog are all enabled by default. If you use yarn commit to format your commit messages, semantic-release will figure out what the next release of your library should be and will publish it to npm on every merge to master.
If you would rather directly control which versions are published on merge, you can replace the "Release" stage with the commented-out "Attempt Publish" stage within build-info.yaml. For more information, see the npm-publish-if-not action container.
This project is based on the template web/web-library-skeleton