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:
@@ -0,0 +1,98 @@
|
||||
---
|
||||
title: Handling Downtime
|
||||
icon: turn-down
|
||||
---
|
||||
|
||||

|
||||
|
||||
## 📋 What You Need Before Starting
|
||||
|
||||
Make sure these are ready:
|
||||
- **[Incident.io Setup](../playbooks/setup-incident-io)**: For managing incidents.
|
||||
- **ClickStack**: For checking logs and errors.
|
||||
- **Checkly Debugging**: For testing and monitoring.
|
||||
|
||||
---
|
||||
|
||||
## 🚨 Stay Calm and Take Action
|
||||
|
||||
<Warning>
|
||||
Don’t panic! Follow these steps to fix the issue.
|
||||
</Warning>
|
||||
|
||||
1. **Tell Your Users**:
|
||||
- Let your users know there’s an issue. Post on [Community](https://community.activepieces.com) and Discord.
|
||||
- Example message: *“We’re looking into a problem with our services. Thanks for your patience!”*
|
||||
|
||||
2. **Find Out What’s Wrong**:
|
||||
- Gather details. What’s not working? When did it start?
|
||||
|
||||
3. **Update the Status Page**:
|
||||
- Use [Incident.io](https://incident.io) to update the status page. Set it to *“Investigating”* or *“Partial Outage”*.
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Check for Infrastructure Problems
|
||||
|
||||
1. **Look at DigitalOcean**:
|
||||
- Check if the CPU, memory, or disk usage is too high.
|
||||
- If it is:
|
||||
- **Increase the machine size** temporarily to fix the issue.
|
||||
- Keep looking for the root cause.
|
||||
|
||||
---
|
||||
|
||||
## 📜 Check Logs and Errors
|
||||
|
||||
1. **Use Clickstack**:
|
||||
- Go to [https://watch.activepieces.com](https://watch.activepieces.com).
|
||||
- Search for recent errors in the logs.
|
||||
- Credentials are in the [Master Playbook](https://docs.google.com/document/d/15OwWnRwkhlx9l-EN5dXFoysw0OoxC0lVvnjbdbId4BE/edit?pli=1&tab=t.4lk480a2s8yh#heading=h.1qegnmb1w65k).
|
||||
|
||||
2. **Check Sentry**:
|
||||
- Look for grouped errors (errors that happen a lot).
|
||||
- Try to **reproduce the error** and fix it if possible.
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Debugging with Checkly
|
||||
|
||||
1. **Check Checkly Logs**:
|
||||
- Watch the **video recordings** of failed checks to see what went wrong.
|
||||
- If the issue is a **timeout**, it might mean there’s a bigger performance problem.
|
||||
- If it's an E2E test failure due to UI changes, it's likely not urgent.
|
||||
- Fix the test and the issue will go away.
|
||||
|
||||
---
|
||||
|
||||
## 🚨 When Should You Ask for Help?
|
||||
|
||||
Ask for help right away if:
|
||||
- Flows are failing.
|
||||
- The whole platform is down.
|
||||
- There's a lot of data loss or corruption.
|
||||
- You're not sure what is causing the issue.
|
||||
- You've spent **more than 5 minutes** and still don't know what's wrong.
|
||||
|
||||
💡 **How to Ask for Help**:
|
||||
- Use **Incident.io** to create a **critical alert**.
|
||||
- Go to the **Slack incident channel** and escalate the issue to the engineering team.
|
||||
|
||||
<Warning>
|
||||
If you’re unsure, **ask for help!** It’s better to be safe than sorry.
|
||||
</Warning>
|
||||
|
||||
---
|
||||
|
||||
## 💡 Helpful Tips
|
||||
|
||||
1. **Stay Organized**:
|
||||
- Keep a list of steps to follow during downtime.
|
||||
- Write down everything you do so you can refer to it later.
|
||||
|
||||
2. **Communicate Clearly**:
|
||||
- Keep your team and users updated.
|
||||
- Use simple language in your updates.
|
||||
|
||||
3. **Take Care of Yourself**:
|
||||
- If you feel stressed, take a short break. Grab a coffee ☕, take a deep breath, and tackle the problem step by step.
|
||||
@@ -0,0 +1,31 @@
|
||||
---
|
||||
title: "Engineering Workflow"
|
||||
icon: 'lightbulb'
|
||||
---
|
||||
|
||||
Activepieces work is based on one-week sprints, as priorities change fast, the sprint has to be short to adapt.
|
||||
|
||||
## Sprints
|
||||
|
||||
Sprints are shared publicly on our GitHub account. This would give everyone visibility into what we are working on.
|
||||
|
||||
* There should be a GitHub issue for the sprint set up in advance that outlines the changes.
|
||||
* Each _individual_ should come prepared with specific suggestions for what they will work on over the next sprint. **if you're in an engineering role, no one will dictate to you what to build – it is up to you to drive this.**
|
||||
* Teams generally meet once a week to pick the **priorities** together.
|
||||
* Everyone in the team should attend the sprint planning.
|
||||
* Anyone can comment on the sprint issue before or after the sprint.
|
||||
|
||||
## Pull Requests
|
||||
|
||||
When it comes to code review, we have a few guidelines to ensure efficiency:
|
||||
|
||||
- Create a pull request in draft state as soon as possible.
|
||||
- Be proactive and review other people’s pull requests. Don’t wait for someone to ask for your review; it’s your responsibility.
|
||||
- Assign only one reviewer to your pull request.
|
||||
- Add the PR to the current project (sprint) so we can keep track of unmerged PRs at the end of each sprint.
|
||||
- It is the **responsibility** of the **PR owner** to draft the test scenarios within the PR description. Upon review, the reviewer may assume that these scenarios have been tested and provide additional suggestions for scenarios.
|
||||
- Large, incomplete features should be broken down into smaller tasks and continuously merged into the main branch.
|
||||
|
||||
## Planning is everyone's job.
|
||||
|
||||
Every engineer is responsible for discovering bugs/opportunities and bringing them up in the sprint to convert them into actionable tasks.
|
||||
@@ -0,0 +1,64 @@
|
||||
---
|
||||
title: 'On-Call'
|
||||
icon: 'phone'
|
||||
---
|
||||
|
||||
## Prerequisites:
|
||||
- [Setup Incident IO](../playbooks/setup-incident-io)
|
||||
|
||||
## Why On-Call?
|
||||
|
||||
We need to ensure there is **exactly one person** at the same time who is the main point of contact for the users and the **first responder** for the issues. It's also a great way to learn about the product and the users and have some fun.
|
||||
|
||||
<Tip>
|
||||
You can listen to [Queen - Under Pressure](https://www.youtube.com/watch?v=a01QQZyl-_I) while on-call, it's fun and motivating.
|
||||
</Tip>
|
||||
|
||||
<Tip>
|
||||
If you ever feel burn out in middle of your rotation, please reach out to the team and we will help you with the rotation or take over the responsibility.
|
||||
</Tip>
|
||||
|
||||
## On-Call Schedule
|
||||
|
||||
The on-call rotation is managed through Incident.io, with each engineer taking a one-week shift. You can:
|
||||
- View the current schedule and upcoming rotations on [Incident.io On-Call Schedule](https://app.incident.io/activepieces/on-call/schedules)
|
||||
- Add the schedule to your Google Calendar using [this link](https://calendar.google.com/calendar/r?cid=webcal://app.incident.io/api/schedule_feeds/cc024d13704b618cbec9e2c4b2415666dfc8b1efdc190659ebc5886dfe2a1e4b)
|
||||
|
||||
<Warning>
|
||||
Make sure to update the on-call schedule in Incident.io if you cannot be available during your assigned rotation. This ensures alerts are routed to the correct person and maintains our incident response coverage.
|
||||
|
||||
To modify the schedule:
|
||||
1. Go to [Incident.io On-Call Schedule](https://app.incident.io/activepieces/on-call/schedules)
|
||||
2. Find your rotation slot
|
||||
3. Click "Override schedule" to mark your unavailability
|
||||
4. Coordinate with the team to find coverage for your slot
|
||||
</Warning>
|
||||
|
||||
|
||||
## What it means to be on-call
|
||||
|
||||
The primary objective of being on-call is to triage issues and assist users. It is not about fixing the issues or coding missing features. Delegation is key whenever possible.
|
||||
|
||||
You are responsible for the following:
|
||||
|
||||
* Respond to Slack messages as soon as possible, referring to the [customer support guidelines](/handbook/customer-support/overview).
|
||||
|
||||
* Check [community.activepieces.com](https://community.activepieces.com) for any new issues or to learn about existing issues.
|
||||
|
||||
* Monitor your Incident.io notifications and respond promptly when paged.
|
||||
|
||||
<Tip>
|
||||
**Friendly Tip #1**: always escalate to the team if you are unsure what to do.
|
||||
</Tip>
|
||||
|
||||
## How do you get paged?
|
||||
|
||||
Monitor and respond to incidents that come through these channels:
|
||||
|
||||
#### Slack Fire Emoji (🔥)
|
||||
When a customer reports an issue in Slack and someone reacts with 🔥, you'll be automatically paged and a dedicated incident channel will be created.
|
||||
|
||||
#### Automated Alerts
|
||||
Watch for notifications from:
|
||||
- Digital Ocean about CPU, Memory, or Disk outages
|
||||
- Checkly about e2e test failures or website downtime
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
title: "Onboarding Check List"
|
||||
icon: 'lightbulb'
|
||||
---
|
||||
|
||||
🎉 Welcome to Activepieces!
|
||||
|
||||
This guide provides a checklist for the new hire onboarding process.
|
||||
|
||||
---
|
||||
|
||||
## 📧 Essentials
|
||||
|
||||
- [ ] Set up your @activepieces.com email account and setup 2FA
|
||||
- [ ] Confirm access to out private Discord server.
|
||||
- [ ] Get Invited to the Activepieces Github Organization and Setup 2FA
|
||||
- [ ] Get Assigned to a buddy who will be your onboarding buddy.
|
||||
|
||||
|
||||
<Tip>
|
||||
During your first two months, we'll schedule 1:1 meetings every two weeks to ensure you're progressing well and to maintain open communication in both directions.
|
||||
After two months, we will decrease the frequency of the 1:1 to once a month.
|
||||
</Tip>
|
||||
|
||||
|
||||
<Tip>
|
||||
If you don't setup the 2FA, We will be alerted from security perspective.
|
||||
</Tip>
|
||||
|
||||
---
|
||||
|
||||
|
||||
### Engineering Checklist
|
||||
|
||||
- [ ] Setup your development environment using our setup guide
|
||||
- [ ] Learn the repository structure and our tech stack (Fastify, React, PostgreSQL, SQLite, Redis)
|
||||
- [ ] Understand the key database tables (Platform, Projects, Flows, Connections, Users)
|
||||
- [ ] Complete your first "warmup" task within your first day (it's our tradition!)
|
||||
|
||||
|
||||
---
|
||||
## 🌟 Tips for Success
|
||||
|
||||
- Don't hesitate to ask questions—the team is especially helpful during your first days
|
||||
- Take time to understand the product from a business perspective
|
||||
- Work closely with your onboarding buddy to get up to speed quickly
|
||||
- Review our documentation, explore the codebase, and check out community resources, outside your scope.
|
||||
- Provide your ideas and feedback regularly
|
||||
|
||||
---
|
||||
|
||||
Welcome again to the team. We can't wait to see the impact you'll make at Activepieces! 😉
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
title: "Stack & Tools"
|
||||
icon: "hammer"
|
||||
---
|
||||
|
||||
## Language
|
||||
|
||||
Activepieces uses **Typescript** as its one and only language.
|
||||
The reason behind unifying the language is the ability for it to break data models and features into packages, which can be shared across its components (worker / frontend / backend).
|
||||
|
||||
This enables it to focus on learning fewer tooling options and perfect them across all its packages.
|
||||
|
||||
## Frontend
|
||||
|
||||
- Web framework/library: [React](https://reactjs.org/)
|
||||
- Layout/components: [shadcn](https://shadcn.com/) / Tailwind
|
||||
|
||||
## Backend
|
||||
|
||||
- Framework: [Fastify](https://www.fastify.io/)
|
||||
- Database: [PostgreSQL](https://www.postgresql.org/)
|
||||
- Task Queuing: [Redis](https://redis.io/)
|
||||
- Task Worker: [BullMQ](https://github.com/taskforcesh/bullmq)
|
||||
|
||||
## Testing
|
||||
|
||||
- Unit & Integration Tests: [Jest](https://jestjs.io/)
|
||||
- E2E Test: [Playwright](https://playwright.dev/)
|
||||
|
||||
## Additional Tools
|
||||
|
||||
- Application monitoring: [Sentry](https://sentry.io/welcome/)
|
||||
- CI/CD: [GitHub Actions](https://github.com/features/actions) / [Depot](https://depot.dev/) / [Kamal](https://kamal-deploy.org/)
|
||||
- Containerization: [Docker](https://www.docker.com/)
|
||||
- Linter: [ESLint](https://eslint.org/)
|
||||
- Logging: [OpenTelemetry](https://opentelemetry.io/)
|
||||
- Building: [NX Monorepo](https://nx.dev/)
|
||||
|
||||
## Adding New Tool
|
||||
|
||||
Adding a new tool isn't a simple choice. A simple choice is one that's easy to do or undo, or one that only affects your work and not others'.
|
||||
|
||||
We avoid adding new stuff to increase the ease of setup, which increases adoption. Having more dependencies means more moving parts and support.
|
||||
|
||||
If you're thinking about a new tool, ask yourself these:
|
||||
|
||||
- Is this tool open source? How can we give it to customers who use their own servers?
|
||||
- What does it fix, and why do we need it now?
|
||||
- Can we use what we already have instead?
|
||||
|
||||
These questions only apply to required services for everyone. If this tool speeds up your own work, we don't need to think so hard.
|
||||
Reference in New Issue
Block a user