Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(integrations): add support for airtable pat #3545

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions docs-v2/integrations/all/airtable-pat.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
title: Airtable (Personal Access Token)
sidebarTitle: Airtable (Personal Access Token)
---

import Overview from "/snippets/overview.mdx"
import PreBuiltTooling from "/snippets/generated/airtable-pat/PreBuiltTooling.mdx"
import PreBuiltUseCases from "/snippets/generated/airtable-pat/PreBuiltUseCases.mdx"

<Overview />
<PreBuiltTooling />
<PreBuiltUseCases />

## Access requirements
| Pre-Requisites | Status | Comment|
| - | - | - |
| Paid dev account | ❓ | |
| Paid test account | ❓ | |
| Partnership | ❓ | |
| App review | ❓ | |
| Security audit | ❓ | |


## Setup guide

_No setup guide yet._

<Tip>Need help getting started? Get help in the [community](https://nango.dev/slack).</Tip>

<Note>Contribute improvements to the setup guide by [editing this page](https://github.com/nangohq/nango/tree/master/docs-v2/integrations/all/airtable-pat.mdx)</Note>


## Useful links

- [Generate an Airtable Personal Access Token](https://airtable.com/create/tokens/new)
- [Airtable Authentication](https://airtable.com/developers/web/guides/personal-access-tokens#using-personal-access-tokens)
- [Personal Access Token Scopes](https://airtable.com/developers/web/api/scopes)
- [API Rate Limiting](https://airtable.com/developers/web/api/rate-limits)
- [Web API docs (their REST API)](https://airtable.com/developers/web/api/introduction)
- [SCIM API docs (their REST SCIM API)](https://airtable.com/developers/web/api/scim-overview)


<Note>Contribute useful links by [editing this page](https://github.com/nangohq/nango/tree/master/docs-v2/integrations/all/airtable-pat.mdx)</Note>

## API gotchas

- Airtable (Personal Access Token) uses API_KEY auth mode with `authorization: Bearer API_KEY` in the request header to access different endpoints.

<Note>Contribute API gotchas by [editing this page](https://github.com/nangohq/nango/tree/master/docs-v2/integrations/all/airtable-pat.mdx)</Note>

## Going further

<Card title="Connect to Airtable (Personal Access Token)" icon="link" href="/integrations/all/airtable-pat/connect" horizontal>
Guide to connect to Airtable (Personal Access Token) using Connect UI
</Card>
39 changes: 39 additions & 0 deletions docs-v2/integrations/all/airtable-pat/connect.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
title: Airtable (Personal Access Token) - How do I link my account?
sidebarTitle: Airtable (Personal Access Token)
---


# Overview

To authenticate with Airtable (Personal Access Token), you will need:
1. **Personl Access Token** - A key that grants Nango permission to interact with Airtable's APIs resources and services.

This guide will walk you through generating your **Personal Access Token** within Airtable.

### Prerequisites:

- You must have a registered account with Airtable.

### Instructions:

#### Step 1: Generating Your Personal Access Token
1. Login to your [Airtable](https://airtable.com/) account.
2. Navigate to the [Personal Access Token page](https://airtable.com/create/tokens) then click on the **Create new token** button.
<img src="/integrations/all/airtable-pat/create_pat.png" />
3. Fill in the form by providing a unique and recognizable name for your token.
4. Click **Add a scope** to choose the level of access required for your API interactions.
<Tip>Optional: Click **Add a base** if you need to restrict access to specific bases or workspaces.</Tip>
<img src="/integrations/all/airtable-pat/pat_form.png" />

#### Step 3: Enter credentials in the Connect UI

Once you have the **Personal Access Token**:
1. Open the form where you need to authenticate with Airtable (Personal Access Token).
2. Enter the **Personal Access Token** in its respective field.
3. Submit the form, and you should be successfully authenticated.


<img src="/integrations/all/airtable-pat/form.png" style={{maxWidth: "450px" }}/>

You are now connected to Airtable (Personal Access Token).
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs-v2/integrations/all/airtable-pat/form.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs-v2/mint.json
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,7 @@
"integrations/all/aircall",
"integrations/all/aircall-basic",
"integrations/all/airtable",
"integrations/all/airtable-pat",
"integrations/all/algolia",
"integrations/all/amazon",
"integrations/all/amplitude",
Expand Down
40 changes: 40 additions & 0 deletions docs-v2/snippets/generated/airtable-pat/PreBuiltTooling.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
## Pre-built tooling
<AccordionGroup>
<Accordion title="✅ Authorization">
| Tools | Status |
| - | - |
| Pre-built authorization (API Key) | ✅ |
| Pre-built authorization UI | ✅ |
| Custom authorization UI | ✅ |
| End-user authorization guide | ✅ |
| Expired credentials detection | ✅ |
</Accordion>
<Accordion title="✅ Read & write data">
| Tools | Status |
| - | - |
| Pre-built integrations | 🚫 (time to contribute: &lt;48h) |
| API unification | ✅ |
| 2-way sync | ✅ |
| Webhooks from Nango on data modifications | ✅ |
| Real-time webhooks from 3rd-party API | 🚫 (time to contribute: &lt;48h) |
| Proxy requests | ✅ |
</Accordion>
<Accordion title="✅ Observability & data quality">
| Tools | Status |
| - | - |
| HTTP request logging | ✅ |
| End-to-type type safety | ✅ |
| Data runtime validation | ✅ |
| OpenTelemetry export | ✅ |
| Slack alerts on errors | ✅ |
| Integration status API | ✅ |
</Accordion>
<Accordion title="✅ Customization">
| Tools | Status |
| - | - |
| Create or customize use-cases | ✅ |
| Pre-configured pagination | 🚫 (time to contribute: &lt;48h) |
| Pre-configured rate-limit handling | 🚫 (time to contribute: &lt;48h) |
| Per-customer configurations | ✅ |
</Accordion>
</AccordionGroup>
5 changes: 5 additions & 0 deletions docs-v2/snippets/generated/airtable-pat/PreBuiltUseCases.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## Pre-built integrations

_No pre-built integration yet (time to contribute: &lt;48h)_

<Tip>Not seeing the integration you need? [Build your own](https://docs.nango.dev/guides/custom-integrations/overview) independently.</Tip>
20 changes: 20 additions & 0 deletions packages/providers/providers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,26 @@ airtable:
webhook_routing_script: airtableWebhookRouting
docs: https://docs.nango.dev/integrations/all/airtable

airtable-pat:
display_name: Airtable (Personal Access Token)
categories:
- productivity
auth_mode: API_KEY
proxy:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PAT is scoped hence the reason for omitting proxy.verification, although tested locally.

base_url: https://api.airtable.com
headers:
authorization: Bearer ${apiKey}
docs: https://docs.nango.dev/integrations/all/airtable-pat
docs_connect: https://docs.nango.dev/integrations/all/airtable-pat/connect
credentials:
apiKey:
type: string
title: Personal Access Token
description: The Personal Access Token for your Airtable account
example: 'patoXxYzA1B2C3D4Ef.98a7b6c5d4e3f2g1h0i9j8k7l6m5n4o3p2q1r0s9t8u7v6w5x4y3z2a1b0cdef'
pattern: '^[a-zA-Z0-9\.]+$'
doc_section: '#step-1-generating-your-personal-access-token'

autodesk:
display_name: Autodesk
categories:
Expand Down
Loading