Code Monkey home page Code Monkey logo

activepieces / activepieces Goto Github PK

View Code? Open in Web Editor NEW
7.2K 45.0 783.0 134.17 MB

Your friendliest open source all-in-one automation tool ✨ Workflow automation tool 100+ integration / Enterprise automation tool / Zapier Alternative

Home Page: https://www.activepieces.com

License: Other

Dockerfile 0.05% JavaScript 0.29% TypeScript 90.65% HTML 7.87% SCSS 0.98% CSS 0.02% Shell 0.05% MDX 0.10%
no-code business-automation zapier low-code automation integrations typescript self-hosted workflow n8n

activepieces's Introduction

  

An open source replacement for Zapier

Documentation   🌪️    Contribute   🖉    Try Now   🔥    Join Discord



🤯 Welcome to Activepieces

Your friendliest open source all-in-one automation tool, designed to be extensible through a type-safe pieces framework written in Typescript.



🎨 Flow Builder

User-friendly Workflow Builder! Enjoy building fun and interactive flows with support for Branches, Loops, and Drag and Drop.

build

🔌 Pieces

Activepieces integrates Google Sheets, OpenAI, Discord, and RSS, along with 80+ other integrations. The list of supported integrations continues to grow rapidly, thanks to valuable contributions from the community.

Activepieces is an open ecosystem; all piece source code is available in the repository, and they are versioned and published directly to npmjs.com upon contributions.

If you cannot find a specific piece on the pieces roadmap, please submit a request by visiting the following link: Request Piece

Alternatively, if you are a developer, you can quickly build your own piece using our TypeScript framework. For guidance, please refer to the following guide: Contributor's Guide





💡 Infinite Use Cases

Community templates provide inspiration and enable you to effortlessly build automation in no time.

templates



License

Activepieces' Community Edition is released as open source under the MIT license and enterprise features are released under Commercial License

Read more about the feature comparison here https://www.activepieces.com/docs/about/editions

💭 Join Our Community



🌐 Contributions

We welcome contributions big or small and in different directions. The best way to do this is to check this document and we are always up to talk on our Discord Server.

📚 Translations

Not into coding but still interested in contributing? Come join our Discord and visit https://www.activepieces.com/docs/about/i18n for more information.

fr translation

it translation

de translation

ja translation

pt-BR translation

🦫 Contributors

ShahedAlMashni
ShahedAlMashni

🔌
AbdulTheActivePiecer
AbdulTheActivePiecer

🚧
Khaled Mashaly
Khaled Mashaly

🚧
Mohammed Abu Aboud
Mohammed Abu Aboud

🚧
Abdulrahman Zeineddin
Abdulrahman Zeineddin

🔌
ahmad jaber
ahmad jaber

🔌
ashrafsamhouri
ashrafsamhouri

🔌
Mohammad Abu Musa
Mohammad Abu Musa

📆
Mukewa Wekalao
Mukewa Wekalao

🔌
Osama Abdallah Essa Haikal
Osama Abdallah Essa Haikal

🔌
Arman
Arman

🛡️
Oskar Krämer
Oskar Krämer

📖
Thibaut Patel
Thibaut Patel

🤔 🔌
Applesaucesomer
Applesaucesomer

🤔
crazyTweek
crazyTweek

🤔
Muhammad Tabaza
Muhammad Tabaza

🔌
Shay Punter
Shay Punter

📖 🔌
abaza738
abaza738

🔌
Jona Boeddinghaus
Jona Boeddinghaus

🔌
fomojola
fomojola

💻
Alexander Storozhevsky
Alexander Storozhevsky

💻
J0LGER
J0LGER

🛡️
Patrick Veverka
Patrick Veverka

🐛
Berk Sümbül
Berk Sümbül

📖
Willian Guedes
Willian Guedes

🔌
Abdullah Ranginwala
Abdullah Ranginwala

💻
Dennis Tychsen
Dennis Tychsen

🔌
MyWay
MyWay

🔌
Bibhuti Bhusan Panda
Bibhuti Bhusan Panda

🔌
Tarun Samanta
Tarun Samanta

🐛
Herman Kudria
Herman Kudria

🔌
[NULL] Dev
[NULL] Dev

🔌
Jan Bebendorf
Jan Bebendorf

🔌
Nilesh
Nilesh

🔌
Vraj Gohil
Vraj Gohil

🔌
BastienMe
BastienMe

🔌
Stephen Foskett
Stephen Foskett

📖
Nathan
Nathan

📖
Marcin Natanek
Marcin Natanek

🔌
Mark van Bellen
Mark van Bellen

🔌
Olivier Guzzi
Olivier Guzzi

🔌
Osama Zakarneh
Osama Zakarneh

🔌
phestvik
phestvik

🤔
Rajdeep Pal
Rajdeep Pal

📖
Camilo Usuga
Camilo Usuga

🔌
Kishan Parmar
Kishan Parmar

📖 🔌
BBND
BBND

🔌
Haseeb Rehman
Haseeb Rehman

🔌
Rita Gorokhod
Rita Gorokhod

🔌
Fábio Ferreira
Fábio Ferreira

🔌
Florin Buffet
Florin Buffet

📖
Drew Lewis
Drew Lewis

🔌
Benjamin André-Micolon
Benjamin André-Micolon

🔌
Denis Gurskij
Denis Gurskij

🔌
Nefer Lopez
Nefer Lopez

📖
fardeenpanjwani-codeglo
fardeenpanjwani-codeglo

📖
Landon Moir
Landon Moir

🔌
Diego Nijboer
Diego Nijboer

🔌
Tân Một Nắng
Tân Một Nắng

🔌
Gavin Foley
Gavin Foley

📖
Dennis Trautwein
Dennis Trautwein

🐛
Andrew Rosenblatt
Andrew Rosenblatt

🐛
rika
rika

🔌
Cyril Selasi
Cyril Selasi

🔌
Franck Nijimbere
Franck Nijimbere

🔌
Aleksandr Denisov
Aleksandr Denisov

🔌
Reuben Swartz
Reuben Swartz

📖
joselupianez
joselupianez

🔌
Awais Manzoor
Awais Manzoor

🐛 💻
Andrei
Andrei

🐛
derbbre
derbbre

📖
Maor Rozenfeld
Maor Rozenfeld

💻
Michael Huynh
Michael Huynh

📖
Filip Dunđer
Filip Dunđer

💻
Don Thorp
Don Thorp

📖
Joe Workman
Joe Workman

🔌
Aykut Akgün
Aykut Akgün

💻
Yann Petitjean
Yann Petitjean

🔌 🐛
pfernandez98
pfernandez98

🔌
Daniel O.
Daniel O.

🔌
Meng-Yuan Huang
Meng-Yuan Huang

📖
Leyla
Leyla

🐛
i-nithin
i-nithin

🔌
la3rence
la3rence

🔌
Dennis Rongo
Dennis Rongo

🐛 🔌
Kartik Mehta
Kartik Mehta

📖 💻
Zakher Masri
Zakher Masri

📖 💻
AbdullahBitar
AbdullahBitar

🔌
Mario Meyer
Mario Meyer

🔌
Karim Khaleel
Karim Khaleel

🔌
CPonchet
CPonchet

🐛
Olivier Sambourg
Olivier Sambourg

🔌
Ahmad(Ed)
Ahmad(Ed)

🔌
leenmashni
leenmashni

🔌
M Abdul Rauf
M Abdul Rauf

📖
Vincent Barrier
Vincent Barrier

🔌
John
John

💻
Joost de Valk
Joost de Valk

🔌
MJ
MJ

🔌
ShravanShenoy
ShravanShenoy

💻
Jon Kristian
Jon Kristian

📖
cr0fters
cr0fters

🐛
Bibek Timsina
Bibek Timsina

🐛
Viktor Szépe
Viktor Szépe

💻
Rendy Tan
Rendy Tan

📖 🔌
Islam Abdelfattah
Islam Abdelfattah

🐛
Yoonjae Choi
Yoonjae Choi

💻

This project follows the all-contributors specification. Contributions of any kind are welcome!

activepieces's People

Contributors

abaza738 avatar abdallah-alwarawreh avatar abdullahbitar avatar abdultheactivepiecer avatar abuaboud avatar adamselene avatar allcontributors[bot] avatar ashrafsamhouri avatar bastienme avatar bibhuty-did-this avatar buttonsbond avatar cyrilselasi avatar dependabot[bot] avatar doskyft avatar gunther-schulz avatar hkudria avatar janholger avatar joeworkman avatar kanarelo avatar khaledmashaly avatar kishanprmr avatar landonmoir avatar moshizzle avatar pfernandez98 avatar salem-alaa avatar shaypunter avatar snyk-bot avatar taskmagickyle avatar vitalini avatar willianwg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

activepieces's Issues

Change Webhook Trigger

The Webhook Trigger should static link on the interface (Currently it's showing that there is dynamic link that will be generated), with the following format api_url/flows/FLOW_ID/webhook

Please add a note this link will only works for deployed collections.

[Backend][Typescript] Instance

For the following instance entity, we should support the following action.

  1. List by project Id (Endpoint)
  2. Get by Id (Endpoint)
  3. Delete
  4. Create / Update Instance (Endpoint).
    This action happens when user press Publish inside collection builder when the user want to run latest collection / flows.

This endpoint should update flow versions and collection version inside the instance entity, after we need to handle creation / destroy of triggers like schedule.

I suggest this service should emit events on create / update / delete of instance, and there would be a different listeners that handle triggers using pub sub pattern.

Listeners would the following

  1. Schedule Trigger: create / destroy previous one
  2. Component Trigger (Polling): Create Scheduling Job Every 15 minutes that's call run
  3. Component Trigger (Webhook): This should call onEnable / onDisable

I suggest to use BullMQ to create repeatable jobs, Redis is installed.

Checkout Publisher / Subscriber Implementation in this comment.

Github New Issue Trigger

Triggers:

  • New Issue is created.

Property:

  • Github OAuth2

Acceptance Criteria:

  • Prefer Webhooks over Polling
  • Sample Data is provided in the trigger.

Triggers: Polling

Check if any of the triggers in the first connectors will need polling, and implement polling if it's needed now. Otherwise, keep the issue for later.

Document Discord

We should add discord to our documentation, and how the user should create an application (client and secret) and obtain the bot token.

[Backend][Typescript] Instance Runs

For the following instance run entity, we should support the following action.

  1. List by project Id (Endpoint)
  2. Get by Id (Endpoint)
  3. Create / Update Run ( Service layer only)

[Webhooks] Clickup Webhooks Triggers

Trigger:

  • TaskCreated
  • Task Updated
  • Task Deleted
  • Task Comment Posted
  • Task Comment Updated

Property:

  • Clickup OAuth2

Acceptance Criteria:

  • Prefer Webhooks over Polling
  • Sample Data is provided in the trigger.

Google Calendar New Event or Updated Trigger

Trigger on Google Calendar when new event or updated (except deleted) is created.

Property:

  • Google OAuth2

Acceptance Criteria:

  • Prefer Webhooks over Polling
  • Sample Data is provided.

Backend Adjustments for Demo

We need the following fixes to the backend to be able to have a demo instance:
1)Instead of sending back bad request when a token has expired or is invalid, please send back unauthorized.
2)Add a flag who's value is the text which will be shown as a warning in the front-end (WARNING_TEXT).
3)The user object returned in a sign up/sign in response, doesn't container (trackEvents) property, it should.
4)Sign up endpoint returns an internal server error when someone tries to sign up with an already existing email.

Usage Analytics

We'll ask for permission to track users behavior anonmyously to improve the product, and then send data to our PostHog server.

Sample Data and Testing Triggers

Today as User I have no idea what app trigger payload looks like, for example "New Github Star".

I suggest we should add Sample Payload for each trigger and use it for testing and development.

Implement Component Triggers

The frontend should parse the components metadata endpoint and show the triggers in the interface with their configs.

New pipeline for saving code piece

With the new backend, a new way for handling the code piece emerged:

Before:
1)On adding a code step, we put a boiler plate artifact (package.json + index.js) in a zip file and upload it to a separated endpoint from the update flow endpoint.
2)On retrieval, we download a zip file containing the artifact, and unzip it and pass its content to the code controller.
3)On update, we upload a zip file to the server containing the artifact to a separated endpoint from the update flow endpoint.

Now:
1)On adding a code step, we put a boiler plate artifact in the settings of the the code step as a json object that is base64 encoded and send it to the server.
2)On retrieval, we download the artifact as a zip file containing both index.js and package.json, then we pass them to the code form control as a JSON object.
3)On update or execute, we upload the artifact as a base64 string after zipping the artifact JSON object.

Self-hosting on Server doesn't work

The issue is in the frontend variables (environment.prod.ts) the api url is using localhost and when visiting from another device, frontend will try to call localhost instead of server ip.

Steps to Reproduce:

  • Enter a Server (Not localhost)
  • Follow installation instruction
  • Go to IP:8080 and try to login

Implement Dynamic Lists in Components

Components Like Slack, have an option to select channel, such dropdown need to be refreshed.

The frontend should call backend to fetch the new options.

Steps to Reproduce:

  • Create New Collection
  • Create New Flow
  • Add Slack Action
  • The channel list should be dynamic depends on authentication.

Front-end Adjustments

1)Add an (all) tab for the step list (all, core, apps) for both triggers and steps.
2)On empty trigger, make display name "Select Trigger" and don't open right side panel unless it is clicked.
3)Add link to connectors documentation at the top of the input form (https://activepieces.com/docs/pieces/apps/{{connectorName}})
4)Name the right side panel title as "Select Triggers/Select Steps" instead of just "Triggers/Steps".
5)Increase the add button size and make it look darker to look actionable.
6)Replace "replace trigger" icon, it looks like refresh.
7)Remove "Versions" from the dropdown next to the collection name.
8)If there are no authentications, in the shown dropdown insert an add button.
9)Add delete flow validation for the last flow in a collection.
10)Show correct browser tab title when the flow builder is entered and when a collection is renamed.

Test Code doesn't work

When running the code action through the full code editor, It won't work.

Steps to Reproduce

  • Create New Collection
  • Create New Flow
  • Add Code Action
  • Open full code editor
  • Click Test Code

OAuth Management

1)After our team created a server to manage authentication of our own apps for connectors, now comes the need to add a toggle button in the dialog shown when a user clicks "new authentication", the job of the toggle button is to give the user the choice of either using the activepieces app credentials to get an access token, or use their own app credentials.

2)Use appName to filter the authentication dropdown for app steps.

Pieces HTTP Library

The HTTP Library lacks the following

  1. Send Request only returns the body (no status).
  2. appending query params to the url ?limit=10 doesn't work, it has to be done through the queryparams

Note: We should update the documentation after doing any changes.

Digital Ocean 1-click setup

This task should provide templates and documentation for how to host activepieces on the following platforms

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.