Skip to content
Open
Show file tree
Hide file tree
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
13 changes: 7 additions & 6 deletions docs/flows/building-flows.mdx
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
---
title: "Building Flows"
icon: 'hammer'
description: "Flow consists of two parts, trigger and actions"
description: "Each flow consists of two parts: a 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.
A flow begins with a trigger, which determines when and how often the flow runs. There are various triggers availablesuch as the Schedule Trigger, the Webhook Trigger, and the Event Trigger — as well as triggers for specific services.

## Action
## Actions

Actions come after the flow and control what occurs when the flow is activated, like running code or communicating with other services.
Actions come after the trigger and control what occurs when the flow is activated. For example, you can use an action step to run code or communicate with other services.

In real-life scenario:
Here's a real-life scenario with a trigger step and two action steps:

![Flow Parts](/resources/flow-parts.png)
![Flow Parts](/resources/flow-parts.png)
52 changes: 27 additions & 25 deletions docs/flows/passing-data.mdx
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
---
title: "Passing Data"
icon: 'wand-sparkles'
description: "Using data from previous steps in the current one"
description: "How to use data from a previous step in your current step"
---

## Data flow
## Data Flow

Any Activepieces flow is a vertical diagram that **starts with a trigger step** followed by **any number of action steps**.
An 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.
Steps are connected vertically. Data flows from parent steps to the child steps. Child steps have access to the output data of the parent steps.

## Example Steps
<video width="450"
Expand All @@ -19,17 +19,17 @@ Steps are connected vertically. Data flows from parent steps to the children. Ch
src="/resources/passing-data-3steps.mp4"
></video>

This flow has 3 steps, they can access data as follows:
This flow has three steps, each of which 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 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 a Schedule Trigger.

- **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.
- **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, that data can't be used by other steps.

## Data to Insert Panel
## The 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.
In order to use data from a previous step in your current step, place your cursor over any input, and the **Data to Insert** panel will pop up.

<video
autoPlay
Expand All @@ -39,11 +39,11 @@ In order to use data from a previous step in your current step, place your curso
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.
This panel shows the accessible steps and their data. You can expand data items to view their content, and 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.
If an item in this panel has a caret (⌄) to the right of it, that means you can click on the item to expand its child properties. You can select the parent item or its properties as needed.

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.
When you add data from this panel, it gets inserted at your cursor's position. This means you can combine static text and dynamic data in any field.

<video
autoPlay
Expand All @@ -53,25 +53,27 @@ When you insert data from this panel, it gets inserted at the cursor's position
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.
We recommend you expand the items before inserting them to understand the type of data they contain and whether they're the right fit for the input you're filling.

## Testing Steps to Generate Data
## Testing Data Generation Steps

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:
If you haven't tested a step and you try to access its data, you'll 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:
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.
- **Load Data:** Some triggers let you load data from your connected account without having to perform any action in that account.
- **Test Trigger:** Some triggers 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.
- **Test Action:** Action steps let you run the action 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.
Follow the **Generate Sample Data** instructions to learn how to test your step.

This is an example for generating sample data for a trigger using the **Load Data** button:
Some triggers also let you **Use Mock Data**, which, when selected, generates static sample data from the piece. However, we recommend you test the step instead of using mock data.

This example demonstrates how to generate sample data for a trigger using the **Load Data** button:

<video
autoPlay
Expand All @@ -85,7 +87,7 @@ This is an example for generating sample data for a trigger using the **Load Dat

### 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:
Dropdowns and some other input types don't let you select data from previous steps. If you'd like to bypass this constraint and use data from a previous step instead, use the **(*x*)** button to switch the input to a **Dynamic Value**:

<video
autoPlay
Expand All @@ -95,12 +97,12 @@ Dropdowns and some other input types don't let you select data from previous ste
src="/resources/passing-data-dynamic-value.mp4"
></video>

### Accessing data by path
### 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.
If you can't find the data you're looking for in the **Data to Insert** panel, 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.
To find the `step_slug`, move your cursor over the desired flow step, and the slug will appear to the right of the step.
21 changes: 11 additions & 10 deletions docs/overview/welcome.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
sidebarTitle: "Welcome"
title: "Welcome"
title: "Welcome"
icon: 'hand-wave'
description: "Your friendliest open source all-in-one automation tool, designed to be extensible."
---
Expand Down Expand Up @@ -38,29 +38,30 @@ description: "Your friendliest open source all-in-one automation tool, designed
icon="code"
color="#8143E3"
>
How to Build Pieces and Contribute
Learn to build pieces and contribute
</Card>
</CardGroup>


# 🔥 Why Activepieces is Different:
# 🔥 Why Activepieces Is Different

- **💖 Loved by Everyone**: Intuitive interface and great experience for both technical and non-technical users with a quick learning curve.
- **💖 Loved by Everyone:** Our intuitive interface and quick learning curve make Activepieces a great experience for both technical and non-technical users.


![](/resources/templates.gif)
- **🌐 Open Ecosystem:** All pieces are open source and available on npmjs.com, **60% of the pieces are contributed by the community**.

- **🛠️ Pieces are written in Typescript**: Pieces are npm packages in TypeScript, offering full customization with the best developer experience, including **hot reloading** for **local** piece development on your machine. 😎
- **🌐 Open Ecosystem:** All pieces are open source and available on npmjs.com, with **the community contributing 60% of pieces**.

- **🛠️ Pieces Are Written in TypeScript:** Pieces are npm packages in TypeScript, offering full customization with the best developer experience, including **hot reloading** for **local** piece development on your machine. 😎


![](/resources/create-action.png)


- **🤖 AI-Ready**: Native AI pieces and agents are built into Activepieces. Integrating AI into your flows is seamless and simpleexperiment with popular providers, or quickly create custom agents using our easy-to-use AI SDK.
- **🤖 AI-Ready:** Activepieces includes native AI pieces and agents. Integrating AI into your flows is seamless and simpleexperiment with popular providers or quickly create custom agents using our easy-to-use AI SDK.

- **🏢 Enterprise-Ready**: Developers set up the tools, and anyone in the organization can use the no-code builder. Full customization from branding to control.
- **🏢 Enterprise-Ready:** Developers set up the tools, and anyone in the organization can use the no-code builder. Activepieces gives you full customization, from branding to control.

- **🔒 Secure by Design**: Self-hosted and network-gapped for maximum security and control over your data.
- **🔒 Secure by Design:** Activepieces is self-hosted and network-gapped to provide you with maximum security and control over your data.

- **🧠 Human in Loop**: Delay execution for a period of time or require approval. These are just pieces built on top of the piece framework, and you can build many pieces like that. 🎨
- **🧠 Human-in-the-Loop:** Build pieces on top of the piece framework to delay execution for a period of time or to require user approval. 🎨