diff --git a/package-lock.json b/package-lock.json index 10fa319287..cab87b9414 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,7 +63,7 @@ }, "apify-docs-theme": { "name": "@apify/docs-theme", - "version": "1.0.219", + "version": "1.0.221", "license": "ISC", "dependencies": { "@apify/docs-search-modal": "^1.3.3", diff --git a/sources/platform/integrations/data-storage/airtable.md b/sources/platform/integrations/data-storage/airtable/console_integration.md similarity index 81% rename from sources/platform/integrations/data-storage/airtable.md rename to sources/platform/integrations/data-storage/airtable/console_integration.md index 7f03509dc2..f925c3a280 100644 --- a/sources/platform/integrations/data-storage/airtable.md +++ b/sources/platform/integrations/data-storage/airtable/console_integration.md @@ -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 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.** @@ -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. @@ -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. @@ -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) diff --git a/sources/platform/integrations/data-storage/airtable/index.md b/sources/platform/integrations/data-storage/airtable/index.md new file mode 100644 index 0000000000..69dbe202a9 --- /dev/null +++ b/sources/platform/integrations/data-storage/airtable/index.md @@ -0,0 +1,145 @@ +--- +title: Airtable integration +description: Connect Apify with Airtable. +sidebar_label: Airtable +sidebar_position: 4 +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 Apify Console integration 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** dropdown in the top right corner and click **Extensions**. + +![Access the extensions tab on Airtable UI by pressing tools button](../../images/airtable/airtable_tools_button.png) + + +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) + +### 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) + +### 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 + +```bash +{ + crawl: { + depth: 'the field you selected', + } +} +``` + +![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 + +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. + +#### Import operations + +1. **CREATE**: New table is created for each run of this integration. +2. **APPEND**: New records are added to the specified table. If the table does not yet exist, new one is created. +3. **OVERWRITE**: All records in the specified table are replaced with new data. If the table does not yet exist, new one is created. + +#### 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) diff --git a/sources/platform/integrations/images/airtable/airtable_actor_run.png b/sources/platform/integrations/images/airtable/airtable_actor_run.png new file mode 100644 index 0000000000..94ee5499b6 Binary files /dev/null and b/sources/platform/integrations/images/airtable/airtable_actor_run.png differ diff --git a/sources/platform/integrations/images/airtable/airtable_actor_select.png b/sources/platform/integrations/images/airtable/airtable_actor_select.png new file mode 100644 index 0000000000..35de3e9ffb Binary files /dev/null and b/sources/platform/integrations/images/airtable/airtable_actor_select.png differ diff --git a/sources/platform/integrations/images/airtable/airtable_configure_actor.png b/sources/platform/integrations/images/airtable/airtable_configure_actor.png new file mode 100644 index 0000000000..cb0e4a2b35 Binary files /dev/null and b/sources/platform/integrations/images/airtable/airtable_configure_actor.png differ diff --git a/sources/platform/integrations/images/airtable/airtable_dataset.png b/sources/platform/integrations/images/airtable/airtable_dataset.png new file mode 100644 index 0000000000..d7842f2779 Binary files /dev/null and b/sources/platform/integrations/images/airtable/airtable_dataset.png differ diff --git a/sources/platform/integrations/images/airtable/airtable_field_previews.png b/sources/platform/integrations/images/airtable/airtable_field_previews.png new file mode 100644 index 0000000000..95b769fbe4 Binary files /dev/null and b/sources/platform/integrations/images/airtable/airtable_field_previews.png differ diff --git a/sources/platform/integrations/images/airtable/airtable_login.png b/sources/platform/integrations/images/airtable/airtable_login.png new file mode 100644 index 0000000000..a1c5b6b2ee Binary files /dev/null and b/sources/platform/integrations/images/airtable/airtable_login.png differ diff --git a/sources/platform/integrations/images/airtable/airtable_mapping_row.png b/sources/platform/integrations/images/airtable/airtable_mapping_row.png new file mode 100644 index 0000000000..748bbca238 Binary files /dev/null and b/sources/platform/integrations/images/airtable/airtable_mapping_row.png differ diff --git a/sources/platform/integrations/images/airtable/airtable_overview.png b/sources/platform/integrations/images/airtable/airtable_overview.png new file mode 100644 index 0000000000..9e5c018b08 Binary files /dev/null and b/sources/platform/integrations/images/airtable/airtable_overview.png differ diff --git a/sources/platform/integrations/images/airtable/airtable_preview.png b/sources/platform/integrations/images/airtable/airtable_preview.png new file mode 100644 index 0000000000..c7faee7202 Binary files /dev/null and b/sources/platform/integrations/images/airtable/airtable_preview.png differ diff --git a/sources/platform/integrations/images/airtable/airtable_search_apify_extenison.png b/sources/platform/integrations/images/airtable/airtable_search_apify_extenison.png new file mode 100644 index 0000000000..d751c79ea8 Binary files /dev/null and b/sources/platform/integrations/images/airtable/airtable_search_apify_extenison.png differ diff --git a/sources/platform/integrations/images/airtable/airtable_task.png b/sources/platform/integrations/images/airtable/airtable_task.png new file mode 100644 index 0000000000..9f2be58212 Binary files /dev/null and b/sources/platform/integrations/images/airtable/airtable_task.png differ diff --git a/sources/platform/integrations/images/airtable/airtable_tools_button.png b/sources/platform/integrations/images/airtable/airtable_tools_button.png new file mode 100644 index 0000000000..ab01c47e99 Binary files /dev/null and b/sources/platform/integrations/images/airtable/airtable_tools_button.png differ diff --git a/sources/platform/integrations/images/airtable/airtable_unique_id.png b/sources/platform/integrations/images/airtable/airtable_unique_id.png new file mode 100644 index 0000000000..90017d37a0 Binary files /dev/null and b/sources/platform/integrations/images/airtable/airtable_unique_id.png differ