Add Activepieces integration for workflow automation

- Add Activepieces fork with SmoothSchedule custom piece
- Create integrations app with Activepieces service layer
- Add embed token endpoint for iframe integration
- Create Automations page with embedded workflow builder
- Add sidebar visibility fix for embed mode
- Add list inactive customers endpoint to Public API
- Include SmoothSchedule triggers: event created/updated/cancelled
- Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
poduck
2025-12-18 22:59:37 -05:00
parent 9848268d34
commit 3aa7199503
16292 changed files with 1284892 additions and 4708 deletions

View File

@@ -0,0 +1,16 @@
---
title: "Building Flows"
icon: 'hammer'
description: "Flow consists of two parts, trigger and actions"
---
## Trigger
The flow's starting point determines its frequency of execution. There are various types of triggers available, such as Schedule Trigger, Webhook Trigger, or Event Trigger based on specific service.
## Action
Actions come after the flow and control what occurs when the flow is activated, like running code or communicating with other services.
In real-life scenario:
![Flow Parts](/resources/flow-parts.png)

View File

@@ -0,0 +1,15 @@
---
title: "Debugging Runs"
icon: 'bug'
description: "Ensuring your business automations are running properly"
---
You can monitor each run that results from an enabled flow:
1. Go to the Dashboard, click on **Runs**.
2. Find the run that you're looking for, and click on it.
3. You will see the builder in a view-only mode, each step will show a ✅ or a ❌ to indicate its execution status.
4. Click on any of these steps, you will see the **input** and **output** in the **Run Details** panel.
The debugging experience looks like this:
![Debugging Business Automations](/resources/screenshots/using-activepieces-debugging.png)

View File

@@ -0,0 +1,51 @@
---
title: "Technical Limits"
icon: "ban"
description: "Technical limits for Activepieces execution"
---
### Execution Limits
- **Flow Execution Time**
Maximum: **600 seconds (10 minutes)**
Flows exceeding this limit will be marked as timed out.
- **Memory Usage**
Maximum: **1 GB RAM**
(Self hosted can be configured via `AP_SANDBOX_MEMORY_LIMIT`)
<Note>
The memory usage is measured for the entire Node.js process running the flow. There is approximately 300 MB of overhead for a warm process with pieces already loaded.
</Note>
<Tip>
**Note 1:** Flows paused by steps like **Wait for Approval** or **Delay** do **not** count toward the 600-second limit.
</Tip>
<Tip>
**Note 2:** To handle longer processes, split them into multiple flows.
For example:
- Have one flow call another via **webhook**.
- Process smaller **batches of items** in separate flows.
</Tip>
---
### File Storage Limits
<Info>
Files from actions or triggers are stored in the database/S3 to support retries for certain steps.
</Info>
- **Maximum File Size**: **10 MB**
(Configurable via `AP_MAX_FILE_SIZE_MB`, default: **4 MB**)
---
### Key / Value Storage Limits
Some pieces use the built-in Activepieces key store (e.g., **Store Piece**, **Queue Piece**).
- **Maximum Key Length**: **128 characters**
- **Maximum Value Size**: **512 KB**

View File

@@ -0,0 +1,106 @@
---
title: "Passing Data"
icon: 'wand-sparkles'
description: "Using data from previous steps in the current one"
---
## Data flow
Any Activepieces flow is a vertical diagram that **starts with a trigger step** followed by **any number of action steps**.
Steps are connected vertically. Data flows from parent steps to the children. Children steps have access to the output data of the parent steps.
## Example Steps
<video width="450"
autoPlay
muted
loop
playsinline
src="/resources/passing-data-3steps.mp4"
></video>
This flow has 3 steps, they can access data as follows:
- **Step 1** is the main data producer to be used in the next steps. Data produced by Step 1 will be accessible in Steps 2 and 3. Some triggers don't produce data though, like Schedules.
- **Step 2** can access data produced by Step 1. After execution, this step will also produce data to be used in the next step(s).
- **Step 3** can access data produced by Steps 1 and 2 as they're its parent steps. This step can produce data but since it's the last step in the flow, it can't be used by other ones.
## Data to Insert Panel
In order to use data from a previous step in your current step, place your cursor in any input, the **Data to Insert** panel will pop up.
<video
autoPlay
muted
loop
playsinline
src="/resources/passing-data-data-to-insert-panel.mp4"
></video>
This panel shows the accessible steps and their data. You can expand the data items to view their content, and you can click the items to insert them in your current settings input.
If an item in this panel has a caret (⌄) to the right, it means you can click on the item to expand its child properties. You can select the parent item or its properties as you need.
When you insert data from this panel, it gets inserted at the cursor's position in the input. This means you can combine static text and dynamic data in any field.
<video
autoPlay
muted
loop
playsinline
src="/resources/passing-data-main-insert-data-example.mp4"
></video>
We generally recommend that you expand the items before inserting them to understand the type of data they contain and whether they're the right fit to the input you're filling.
## Testing Steps to Generate Data
We require you to test steps before accessing their data. This approach protects you from selecting the wrong data and breaking your flows after publishing them.
If a step is not tested and you try to access its data, you will see the following message:
<img width="350" src="/resources/passing-data-test-step-first.png" alt="Test your automation step first" />
To fix this, go to the step and use the Generate Sample Data panel to test it. Steps use different approaches for testing. These are the common ones:
- **Load Data:** Some triggers will let you load data from your connected account without having to perform any action in that account.
- **Test Trigger:** Some triggers will require you to head to your connected account and fire the trigger in order to generate sample data.
- **Send Data:** Webhooks require you to send a sample request to the webhook URL to generate sample data.
- **Test Action:** Action steps will let you run the action in order to generate sample data.
Follow the instructions in the Generate Sample Data panel to know how your step should be tested. Some triggers will also let you Use Mock Data, which will generate static sample data from the piece. We recommend that you test the step instead of using mock data.
This is an example for generating sample data for a trigger using the **Load Data** button:
<video
autoPlay
muted
loop
playsinline
src="/resources/passing-data-load-data.mp4"
></video>
## Advanced Tips
### Switching to Dynamic Values
Dropdowns and some other input types don't let you select data from previous steps. If you'd like to bypass this and use data from previous steps instead, switch the input into a dynamic one using this button:
<video
autoPlay
muted
loop
playsinline
src="/resources/passing-data-dynamic-value.mp4"
></video>
### Accessing data by path
If you can't find the data you're looking for in the **Data to Insert** panel but you'd like to use it, you can write a JSON path instead.
Use the following syntax to write JSON paths:
`{{step_slug.path.to.property}}`
The `step_slug` can be found by moving your cursor over any of your flow steps, it will show to the right of the step.

View File

@@ -0,0 +1,9 @@
---
title: "Publishing Flows"
icon: 'bolt'
description: "Make your flow work by publishing your updates"
---
The changes you make won't work right away to avoid disrupting the flow that's already published. To enable your changes, simply click on the publish button once you're done with your changes.
![Flow Parts](/resources/publish-flow.png)

View File

@@ -0,0 +1,18 @@
---
title: "Version History"
icon: 'clock'
description: "Learn how flow versioning works in Activepieces"
---
Activepieces keeps track of all published flows and their versions. Heres how it works:
1. You can edit a flow as many times as you want in **draft** mode.
2. Once you're done with your changes, you can publish it.
3. The published flow will be **immutable** and cannot be edited.
4. If you try to edit a published flow, Activepieces will create a new **draft** if there is none and copy the **published** version to the new version.
This means you can always go back to a previous version and edit the flow in draft mode without affecting the published version.
![Flow History](/resources/flow-history.png)
As you can see in the following screenshot, the yellow dot refers to DRAFT and the green dot refers to PUBLISHED.