Skip to content
Draft
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
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ sidebar_position: 7
slug: /integrations/workato
---

**Connect Apify Actors to Workato recipes to run web scraping and automation jobs, monitor run events, and process results.**

---

[Workato](https://www.workato.com/) is an automation platform where you can build recipes, automated workflows that connect your apps with no-code connectors. With the [Apify Connector](https://apify.com), you can run _Apify Actors_ inside your recipes to launch web scraping and automation jobs, watch for run events, and further work with the results.

## Get started
Expand All @@ -30,7 +34,7 @@ After installation, the Apify connector appears in **Connector SDK** under the *

Before using the Apify connector in recipes, create a connection inside a Workato project.

### Create a project (if you dont have one)
### Create a project (if you don't have one)

1. In Workato, go to **Workspace > Projects**.
1. Click **Create project**.
Expand All @@ -45,36 +49,12 @@ Before using the Apify connector in recipes, create a connection inside a Workat
1. Click the **Create** button.
1. Select **Connection**.
1. Search for **Apify** and choose the Apify connector.

![Screenshot showing how to search for the Apify connector in Workato](../images/workato/create-connection-find-connector.png)

![Screenshot of the connection selection interface in Workato](../images/workato/connection-selection.png)

### Choose authentication type

You can authenticate the connection using either:

- **Apify API token**
- **Sign in with Apify** (OAuth 2.0)

#### Authenticate with API token

1. In the Apify connection dialog, select **Apify API token** as the authentication type.
1. Enter your **API Token**. In Apify Console, go to [**Settings > Integrations**](https://console.apify.com/account#/integrations) and copy your API token.
1. Click **Connect**. Workato will test the connection by making an authenticated call to verify your credentials.

![Screenshot of the Workato API Key authentication form](../images/workato/create-connection-api-key.png)
![Screenshot showing successful API Key authentication in Workato](../images/workato/create-connection-api-success.png)

#### Authenticate with OAuth 2.0

1. In the Apify connection dialog, select **Sign in with Apify** as the authentication type.
1. Click **Connect** to start the OAuth flow.
1. Sign in to Apify and authorize Workato to access your account.
1. After authorizing, you'll be redirected back to Workato and the connection will be established.

![Screenshot of the Workato OAuth 2.0 authentication interface](../images/workato/create-connection-oauth.png)
![Screenshot showing successful OAuth authentication in Workato](../images/workato/create-connection-oauth-success.png)
![Screenshot showing how to search for the Apify connector in Workato](../images/workato/create-connection-find-connector.png)
![Screenshot of the connection selection interface in Workato](../images/workato/connection-selection.png)
1. In the connection dialog, enter your **API Token**. In Apify Console, go to [**Settings > Integrations**](https://console.apify.com/account#/integrations) and copy your API token.
1. Click **Connect**. Workato tests the connection by making an authenticated call to verify your credentials.
![Screenshot of the Workato API Key authentication form](../images/workato/create-connection-api-key.png)
![Screenshot showing successful API Key authentication in Workato](../images/workato/create-connection-api-success.png)

Once the connection is created and authenticated, you can use it in any recipe.

Expand All @@ -90,19 +70,19 @@ _The Apify connector provides dynamic dropdown lists (pick lists) and flexible i

- **Selection method (pick list vs. manual ID):** Choose from fetched lists or switch to manual and paste an ID. If an item doesn't appear, make sure it exists in your account and has been used at least once, or paste its ID manually.
- Available pick lists:
- **Actors**: Lists your recently used Actors or Apify Store Actors, displaying the title and username/name
- **Actors**: Lists your recently used Actors or Apify Store Actors, displaying the title and `owner/name`
- **Tasks**: Lists your saved tasks, displaying the task title and Actor name
- **Datasets**: Lists available datasets, sorted by most recent first
- **Key-value stores**: Lists available stores, sorted by most recent first
- **Store Keys**: Dynamically shows keys available in the selected store

### Input types

- **Input type (schemabased vs. JSON):** For Actor inputs, when you choose an Actor from the pick list, the connector fetches the input schema and renders dynamic fields based on the Actor's configuration. If schema fetching fails or you switch to manual input, a JSON input field appears where you can paste valid JSON instead. For Task inputs, you can optionally provide an override input as JSON to modify the task's pre-configured settings.
- **Input type (schema-based vs. JSON):** For Actor inputs, when you choose an Actor from the pick list, the connector fetches the input schema and renders dynamic fields based on the Actor's configuration. If schema fetching fails or you switch to manual input, a JSON input field appears where you can paste valid JSON instead. For task inputs, you can optionally provide an override input as JSON to modify the task's pre-configured settings.

:::tip Copy the Actor/Task input JSON
:::tip Copy input JSON

Open the Actor or Task Input page in Apify Console, switch format to JSON, and copy the canonical structure:
Open the Actor or task input page in Apify Console, switch format to JSON, and copy the canonical structure:
`https://console.apify.com/actors/<actor_id>/input`
`https://console.apify.com/actors/tasks/<task_id>/input`

Expand All @@ -116,10 +96,10 @@ When using manual input instead of pick lists, you'll need to provide the correc

- **Actor ID**: [Actor detail page](https://console.apify.com/actors) > API panel or URL.
- Example URL: `https://console.apify.com/actors/<actorId>`
- Actor name format: owner~name (for example, `apify~website-scraper`)
- Actor name format: `apify/web-scraper` (slash) or `apify~web-scraper` (tilde). The connector accepts both formats and normalizes internally.
- **Task ID**: [Task detail page](https://console.apify.com/actors/tasks) > API panel or URL.
- Example URL: `https://console.apify.com/actors/tasks/<taskId>`
- **Dataset ID**: [Storage > Datasets](https://console.apify.com/storage/datasets) > Dataset detail > API panel or URL.
- **Dataset ID**: [Storage > Datasets](https://console.apify.com/storage/datasets) > dataset detail > API panel or URL.
- Example URL: `https://console.apify.com/storage/datasets/<datasetId>`
- Also available in the table on the `Storage > Datasets` page
- **Key-value store ID**: [Storage > Key-value stores](https://console.apify.com/storage/Key-value-stores) > Store detail > API panel or URL.
Expand All @@ -138,7 +118,7 @@ Each connector trigger and action field in Workato includes inline help text des

The Apify connector provides the following triggers that monitor your Apify account for task completions:

### Actor Run Finished
### Actor run finished

_Triggers when an Apify Actor run finishes (succeeds, fails, times out, or gets aborted)._

Expand All @@ -150,11 +130,11 @@ This trigger monitors a specific Apify Actor and starts the recipe when any run

![Screenshot of the Actor Run Finished trigger configuration in Workato](../images/workato/trigger-actor.png)

### Task Run Finished
### Task run finished

_Triggers when an Apify Task run finishes (succeeds, fails, times out, or gets aborted)._
_Triggers when an Apify task run finishes (succeeds, fails, times out, or gets aborted)._

This trigger creates a webhook in your Apify account that will notify Workato when the selected Task run finishes with the specified statuses. This trigger watches a specific saved task (an Actor with preset inputs) and fires when that task's run completes with any terminal status. You can choose specific statuses to monitor (`ACTOR.RUN.SUCCEEDED`, `ACTOR.RUN.FAILED`, `ACTOR.RUN.TIMED_OUT`, `ACTOR.RUN.ABORTED`). This is particularly useful for:
This trigger creates a webhook in your Apify account that will notify Workato when the selected task run finishes with the specified statuses. This trigger watches a specific saved task (an Actor with preset inputs) and fires when that task's run completes with any terminal status. You can choose specific statuses to monitor (`ACTOR.RUN.SUCCEEDED`, `ACTOR.RUN.FAILED`, `ACTOR.RUN.TIMED_OUT`, `ACTOR.RUN.ABORTED`). This is particularly useful for:

- Monitoring scheduled or recurring tasks
- Building workflows dependent on specific data collection tasks
Expand All @@ -164,7 +144,7 @@ This trigger creates a webhook in your Apify account that will notify Workato wh

## Actions

_The Apify connector offers comprehensive actions to interact with the Apify platform._
_The Apify connector has the following actions for working with the Apify platform._

### Run Actor

Expand All @@ -174,9 +154,11 @@ This action runs an Apify Actor with your specified input and execution paramete

- Select from your recently used Actors or Apify Store Actors
- Provide input using dynamic schema-based fields or raw JSON
- Configure run options like memory allocation, timeout, and build version
- Configure run options: memory (128 MB to 32 GB), timeout, and build version (defaults to `latest`)
- Choose between synchronous (wait for completion) or asynchronous execution

URL input fields are validated before the run starts. The dataset item limit rejects zero or negative values; leave it empty for no limit.

:::tip Input field descriptions

Each input field includes helpful descriptions that guide you toward the correct format and expected values.
Expand All @@ -187,15 +169,17 @@ Default values for input fields will be displayed as placeholders, giving you a

![Screenshot of the Run Actor action configuration interface in Workato](../images/workato/run-actor.png)

### Run Task
### Run task

_Run an Apify Actor task with optional input overrides._

This action runs an Apify Task with optional input overrides and execution parameters. Tasks are pre-configured Actor runs with saved input, making them ideal for repeated executions. You can optionally override the task's configured input. You can:
This action runs an Apify task with optional input overrides and execution parameters. Tasks are pre-configured Actor runs with saved input, making them ideal for repeated executions. You can optionally override the task's configured input. You can:

- Select from your saved tasks or input specific Task ID
- Select from your saved tasks or input a specific task ID
- Override the task's pre-configured input with new JSON if needed
- Configure task options like memory, build version, or timeout
- Configure task options: memory (128 MB to 32 GB), timeout, and build version (defaults to `latest`)

URL input fields are validated before the run starts. The dataset item limit rejects zero or negative values; leave it empty for no limit.

![Screenshot of the Run Task action configuration interface in Workato](../images/workato/run-task.png)

Expand Down Expand Up @@ -227,9 +211,9 @@ For optimal results, use datasets where all items follow a consistent structure.

### Get key-value store record

_Retrieves a single record from a Key-value store._
_Retrieves a single record from a key-value store._

Select a Key-value store and a key to retrieve the corresponding record as a text string or binary file. Key-value stores often contain metadata, logs, or files from Actor runs. This action:
Select a key-value store and a key to retrieve the corresponding record as a text string or binary file. Key-value stores often contain metadata, logs, or files from Actor runs. This action:

- Fetches named entries by key from specified stores with dynamic key selection
- Accesses configuration data, screenshots, or custom outputs
Expand All @@ -238,20 +222,19 @@ Select a Key-value store and a key to retrieve the corresponding record as a tex

![Screenshot of the Get Key-value store record action configuration interface in Workato](../images/workato/get-key-val.png)

### Scrape Single URL
### Scrape single URL

_Scrapes a single URL using a selected Apify crawler._

Provide a single URL and a desired crawler type to get structured scraped data from that page as a JSON object. This action provides immediate, on-demand scraping capabilities:

- Scrapes content from a single specified URL
- Offers multiple crawler types (Adaptive, Firefox, Cheerio, JSDOM)
- Returns extracted content in structured format (text, markdown, HTML, metadata)
- Perfect for real-time data extraction triggered by recipes
- Supports three crawler types: **Adaptive Crawler** (Website Content Crawler), **Firefox Headless Browser**, and **Cheerio** (fast, raw HTTP)
- Returns extracted content in structured format (text, markdown, HTML, and metadata)

![Screenshot of the Scrape Single URL action configuration interface in Workato](../images/workato/scrape-url.png)

## Longrunning scrapes and async pattern in Workato
## Long-running scrapes and async pattern in Workato

Long-running scrapes can exceed typical step execution expectations. Use this asynchronous pattern to keep recipes reliable and scalable.

Expand All @@ -261,7 +244,7 @@ Long-running scrapes can exceed typical step execution expectations. Use this as
- ![Screenshot showing the Run Actor action configuration with async option in Workato](../images/workato/run-actor.png)
1. Continue when the run finishes
- Build a separate recipe with the **Actor Run Finished** trigger.
- Filter for the specific Actor or Task you started in Step 1.
- Filter for the specific Actor or task you started in step 1.
- ![Screenshot showing how to filter for specific Actor in the Run Finished trigger](../images/workato/trigger-actor.png)
1. Fetch results and process
- In the triggered recipe, add **Get Dataset Items** (use the dataset ID from the trigger payload) and continue processing.
Expand All @@ -274,7 +257,7 @@ Long-running scrapes can exceed typical step execution expectations. Use this as
Workato's visual interface makes it easy to connect Apify data with other business applications:

- _Data pills:_ Use output fields from Apify triggers and actions as inputs for subsequent steps
- _Field mapping:_ Visually map scraped data fields to CRM, database, or spreadsheet columns
- _Field mapping:_ Visually map scraped data fields to CRM, database, or spreadsheet columns
- _Conditional logic:_ Build workflows that respond differently based on Actor run status or data content
- _Data transformation:_ Apply filters, formatting, and calculations to scraped data before sending to target systems

Expand All @@ -292,8 +275,8 @@ Workato's visual interface makes it easy to connect Apify data with other busine
- _Actor selection:_ If an Actor doesn't appear in dropdowns, ensure it has been run at least once
- _Timeout errors:_ For long-running Actors, use asynchronous execution rather than waiting for completion
- _Data format:_ Ensure JSON inputs are properly formatted and match expected Actor input schema
- _OAuth issues:_ If using OAuth, make sure the redirect URI matches your Workato region (US or EU)
- _Validation errors:_ The connector validates URL fields and dataset item limits before running. Check that URLs include a valid protocol (`https://`) and that item limits are positive integers or empty.
- _Resource not found errors:_ Check that IDs are correct and case-sensitive
- _Dataset field mapping issues:_ If you experience incorrect data types or missing fields in the Get Dataset Items action data pill, this may be caused by non-homogeneous data in your dataset. The connector samples only the first 25 items to determine field types, so inconsistent data structures can lead to mapping problems. Try to ensure your dataset has consistent field names and data types across all items.

If you have any questions or need help, feel free to reach out on the [Apify Discord channel](https://discord.com/invite/jyEM2PRvMU).
If you have questions or need help, reach out on the [Apify developer community on Discord](https://discord.com/invite/jyEM2PRvMU).
Loading