Skip to content
Open
Show file tree
Hide file tree
Changes from 4 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
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
title: Airtable integration
description: Learn how to integrate Apify with Airtable
sidebar_label: Airtable
title: Airtable integration on Apify console
description: Learn how to integrate Airtable on the Apify console
sidebar_label: Console integration
sidebar_position: 4
slug: /integrations/airtable
slug: /integrations/airtable/console
---

**Learn how to integrate your Apify Actors with Airtable. This article shows you how to automatically upload results to your Airtable when an Actor run succeeds.**
Expand All @@ -26,11 +26,11 @@ To use the Apify integration for Airtable, ensure you have:
1. In Apify Console, go to the [API & Integrations tab](https://console.apify.com/settings/integrations) in the **Settings** section.
1. Under **Account-level integrations**, click **Add account**.

![Add account button in Account-level integrations section of the settings](../images/airtable/connect-account-1.png)
![Add account button in Account-level integrations section of the settings](../../images/airtable/connect-account-1.png)

1. Select **Airtable** from the list of available services.

![Connect with Airtable button among other buttons for connection of other available services](../images/airtable/connect-account-2.png)
![Connect with Airtable button among other buttons for connection of other available services](../../images/airtable/connect-account-2.png)

1. Follow the OAuth 2.0 authorization flow to securely connect your Airtable account.

Expand All @@ -42,7 +42,7 @@ To use the Apify integration for Airtable, ensure you have:

1. Go to the **Integrations** tab and click **Upload data to Airtable**.

![Airtable integration option among other available integrations](../images/airtable/set-up-integration-1.png)
![Airtable integration option among other available integrations](../../images/airtable/set-up-integration-1.png)

1. Select the upload mode:
- **CREATE**: New table is created for each run of this integration.
Expand All @@ -55,9 +55,9 @@ To use the Apify integration for Airtable, ensure you have:

To ensure uniqueness when using CREATE mode, use dynamic variables. If a table with the same name already exists in CREATE mode, a random token will be appended.

![Airtable integration configuration form](../images/airtable/set-up-integration-2.png)
![Airtable integration configuration form](../../images/airtable/set-up-integration-2.png)

1. Save the integration. Once your Actor runs, you'll see its results uploaded to Airtable.

![Airtable table filled with data](../images/airtable/set-up-integration-3.png)
![Airtable table filled with data](../../images/airtable/set-up-integration-3.png)

141 changes: 141 additions & 0 deletions sources/platform/integrations/data-storage/airtable/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
---
title: Airtable integration
description: Connect Apify with Airtable.
sidebar_label: Airtable
sidebar_position: 4
Copy link

Choose a reason for hiding this comment

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

Bug: Sidebar Position Conflict Between Files

The sidebar_position is set to 4, which conflicts with console_integration.md that also has sidebar_position: 4. Since both files are in the same directory and index.md should be the main page while console_integration.md is a sub-section, they should have different sidebar positions. The index.md should have a lower position number than console_integration.md (e.g., index.md: 4, console_integration.md: 5).

Fix in Cursor Fix in Web

slug: /integrations/airtable
---

**Learn how to integrate Apify with Airtable. This article shows you how to use the Apify extension on Airtable.**

---

[Airtable](https://www.airtable.com/) is a cloud-based platform for organizing, managing, and collaborating on data. With Apify integration for Airtable, you can automatically upload Actor run results to Airtable after a successful run.

This integration uses OAuth 2.0, a secure authorization protocol, to connect your Airtable account to Apify and manage data transfers.

## Connect Apify with Airtable

To use the Apify integration for Airtable, ensure you have:

- An [Apify account](https://console.apify.com/)
- An [Airtable account](https://www.airtable.com/)

## Types of integration

You could integrate Apify with Airtable using one of two available options. This guide explain how to use the extension which is the recommended integration.

- **Apify Extension** on Airtable website.
- **console integration** on the Actor page.

This guide will explain how to use the **Apify extension**, for the console integration just go to the *Console integration* page in the docs.

## Setup

### Install Apify extension

Go to [Airtable](https://airtable.com) and open the base you would like to work with. Press the **tools button** on the right side of the screen and press the **Add an extension button**.

![Access the extensions tab on Airtable UI by pressing tools button](../../images/airtable/airtable_tools_button.png)

<!-- TODO: improve pictures when Apify integration is published -->
Search for Apify extenison and install it

![Search for the Apify extension on Airtable](../../images/airtable/airtable_search_apify_extenison.png)

Open the Apify extension and login using OAuth 2.0 with your Apify account. If you dont have an account, visit [Apify Registration](https://console.apify.com/sign-up) page.

![Open Apify extension and login](../../images/airtable/airtable_login.png)

## Extension Overview

Apify extension helps you map and import data into your Airtable base

### Features

- Run Actors
- Run tasks
- Get dataset items
- Map and import the data into your base

![Apify extension overview](../../images/airtable/airtable_overview.png)

### Run Actor

1. Select any Actor from `Apify store` or `recently used Actors`
![Select Actor screen](../../images/airtable/airtable_actor_select.png)

1. Fill in the Actor input form.
![Configure Actor screen](../../images/airtable/airtable_configure_actor.png)

1. Run the Actor and wait for results
![Run the Actor](../../images/airtable/airtable_actor_run.png)

### Data Mapping

This section will explain how to map your run results or dataset items into your Airtable base

#### Mapping row

Apify extension has UI elements that allow you to map dataset fields to Airtable fields.

![Run the Actor](../../images/airtable/airtable_mapping_row.png)

**Source:** dataset field from Apify.

**Target:** Target Airtable field label. For mode `new` it creates new fields in your table

**Field Type:** Displays the type of the target Airtable field. For `new` mode you need to also specify this field.

#### Select Fields to Map

The preview window next to the mapping rows will help you view and pick fields from the dataset.
"." character in the labels point to the children elements of an object

**Example Source**: crawl.depth <br/>
**Apify Field**:

```bash
{
crawl: {
depth: 3,
}
}
```
Copy link
Contributor

Choose a reason for hiding this comment

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

What is this supposed to be? What does it explain?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

So the source crawl.depth is referring to the children field depth of crawl in the api result. If you check out the field preview image you can see on the right side fields with "."s in the name. I am not sure if this is very clear in the docs.


![Preview dataset fields](../../images/airtable/airtable_field_previews.png)

#### Automatic field matching

Apify extension looks at the field labels in your table and matches them with dataset fields giving you a default list of mappings.

**How does it work:** <br/>
Source: `crawl.depth`
it checks for fields in your table with label either `depth` or `crawl.depth`. If there is a match it adds a mapping row automatically.


#### Duplicate filtering

Select a **unique ID** on the data mapping step. The unique ID will be added to the list of mapping rows.
Make sure it points to the correct field in your table. While importing the data will be filtered by existing values in the table.
![Select unique ID](../../images/airtable/airtable_unique_id.png)

#### Preview Mapped Data

Preview the results and start the import

![Preview Mapped Data](../../images/airtable/airtable_preview.png)

### Run Task

You can select and run any saved Apify task directly from the extension to reuse preconfigured inputs.

![Run task](../../images/airtable/airtable_task.png)


### Get Dataset

Retrieve items from any Apify dataset and import them into your Airtable base with a single click.

![Get dataset](../../images/airtable/airtable_dataset.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.
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.
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.
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.
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.
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.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.