You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-
131
131
1. Click `Add an action` → `Plugins` → choose one of the Apify actions:
132
-
- For example `Run Actor` (run a specific Actor by ID)
133
-
-
132
+
- For example `Run Actor` (run a specific Actor by ID)
133
+
-
134
134
1. Configure the action:
135
-
-**API token**: set to `Current User's apify_api_token` (check out the Step 2.3)
136
-
-**Actor or Task**: paste an Actor ID
137
-
-**Input overrides**: provide JSON and use dynamic expressions from page elements or things
138
-
-**Timeout**: set in seconds (0 means no limit). Due to Bubble workflow time limits, set this explicitly. If you do not want to restrict the call duration, set it to 0.
135
+
-**API token**: set to `Current User's apify_api_token` ([Point Apify actions to the saved token](#point-apify-actions-to-the-saved-token))
136
+
-**Actor or Task**: paste an Actor ID
137
+
-**Input overrides**: provide JSON and use dynamic expressions from page elements or things
138
+
-**Timeout**: set in seconds (0 means no limit). Due to Bubble workflow time limits, set this explicitly. If you do not want to restrict the call duration, set it to 0.
139
139
140
140
### Where to find your IDs
141
141
@@ -176,11 +176,11 @@ There are two common approaches:
176
176
- This example lists the current user's datasets and displays them in a repeating group.
177
177
- Add a **Repeating group** to the page.
178
178
1. Add data to a variable: create a custom state (for example, on the page) that will hold the list of datasets, and set it to the plugin's **List User Datasets** data call.
179
-
-
179
+
-
180
180
1. Set the type: in the repeating group's settings, set **Type of content** to match the dataset object your variable returns.
181
-
-
181
+
-
182
182
1. Bind the variable: set the repeating group's **Data source** to the variable from Step 1.
183
-
-
183
+
-
184
184
- Inside the repeating group cell, bind dataset fields (for example, `Current cell's item name`, `id`, `createdAt`).
185
185
-
186
186
@@ -198,32 +198,31 @@ To receive webhooks from Apify, enable Bubble's public API workflows and copy yo
198
198
199
199
Use this URL as the Apify webhook target. Configure the webhook's authentication as needed (e.g., a shared secret or query string token) and verify it inside your Bubble workflow before processing.
200
200
201
-
202
201
1. Trigger the scrape without waiting
203
-
- In a workflow, add **Run Actor** (or **Run Actor Task**) and set **timeout** to 0.
204
-
- Actor ID: `aYG0l9s7dbB7j3gbS` (`apify/website-content-crawler`).
205
-
- Input: copy the Actor's input from the Actor's Input page, and map `crawlerType` and `url` to values from your UI.
- Create an Apify **Webhook** with event `ACTOR.RUN.SUCCEEDED`.
209
-
- Set `actorId` from the Step 1 result.
210
-
- Set `databaseId` from the Step 1 result, where actor will store the result.
211
-
- Set `idempotencyKey` to random value.
212
-
- Set `requestUrl` to your Bubble backend workflow URL, for example: `https://your-app.bubbleapps.io/version-test/api/1.1/wf/webhook`.
213
-
-
207
+
- Create an Apify **Webhook** with event `ACTOR.RUN.SUCCEEDED`.
208
+
- Set `actorId` from the Step 1 result.
209
+
- Set `databaseId` from the Step 1 result, where actor will store the result.
210
+
- Set `idempotencyKey` to random value.
211
+
- Set `requestUrl` to your Bubble backend workflow URL, for example: `https://your-app.bubbleapps.io/version-test/api/1.1/wf/webhook`.
212
+
-
214
213
1. Receive the webhook in Bubble and store the dataset ID
215
-
- Create a public data type, for example, `ScrapingResults`.
216
-
- Add a text field, for example, `result`, to store the dataset ID from the webhook.
217
-
-
218
-
- Create the backend workflow (`webhook`) that Bubble exposes at `/api/1.1/wf/webhook`. The workflow name defines the API route.
219
-
-
220
-
- In that workflow, for each received webhook call, create a new thing in `ScrapingResults` and set `result` to the dataset ID from the request body. This stores one `datasetId` per call for later processing.
221
-
-
214
+
- Create a public data type, for example, `ScrapingResults`.
215
+
- Add a text field, for example, `result`, to store the dataset ID from the webhook.
216
+
-
217
+
- Create the backend workflow (`webhook`) that Bubble exposes at `/api/1.1/wf/webhook`. The workflow name defines the API route.
218
+
-
219
+
- In that workflow, for each received webhook call, create a new thing in `ScrapingResults` and set `result` to the dataset ID from the request body. This stores one `datasetId` per call for later processing.
220
+
-
222
221
1. Pick up the results asynchronously
223
-
- In a (periodic) backend workflow, search `ScrapingResults` for pending entries (or for the expected `datasetId`).
224
-
- If found, read its `result` (the `datasetId`), fetch items via the appropriate action (for example, **Fetch Data From Dataset JSON As Action**), update the UI or save to your DB, and then delete that `ScrapingResults` entry to avoid reprocessing.
225
-
- If not found yet, do nothing and check again later.
226
-
-
222
+
- In a (periodic) backend workflow, search `ScrapingResults` for pending entries (or for the expected `datasetId`).
223
+
- If found, read its `result` (the `datasetId`), fetch items via the appropriate action (for example, **Fetch Data From Dataset JSON As Action**), update the UI or save to your DB, and then delete that `ScrapingResults` entry to avoid reprocessing.
224
+
- If not found yet, do nothing and check again later.
225
+
-
227
226
228
227
This approach avoids Bubble timeouts, keeps the UI responsive, and scales to larger scrapes.
229
228
@@ -235,7 +234,7 @@ This approach avoids Bubble timeouts, keeps the UI responsive, and scales to lar
235
234
236
235
## Available Apify actions and data sources
237
236
238
-
tip::: Check out the documentation
237
+
::: tip Check out the documentation
239
238
240
239
Each API call links to the Apify documentation. To learn more about any plugin action or data call, go to the **Plugins** page in your app, select the Apify plugin, and use the documentation links in the field descriptions.
241
240
@@ -273,6 +272,7 @@ The Apify plugin provides two main types of operations:
To stay up to date with new features, make sure you're using the latest version of the plugin. You can check this on the **Plugins** page by selecting the Apify plugin and choosing the latest version from the drop-down menu. You'll also see a brief note describing what's changed in that version.
0 commit comments