Activepieces Plugin
Open-source automation alternative to Zapier and Make with bidirectional integration โ Gauzy manages Activepieces resources, and the ever-gauzy-piece on Activepieces authenticates back into Gauzy via OAuth 2.0.
Overviewโ
| Property | Value |
|---|---|
| Package | @ever-co/gauzy-plugin-integration-activepieces |
| Source | packages/plugins/integration-activepieces |
| UI Package | packages/plugins/integration-activepieces-ui |
Why Activepieces?โ
| Feature | Activepieces | Zapier | Make |
|---|---|---|---|
| Open Source | โ | โ | โ |
| Self-Hosted | โ | โ | โ |
| Free Tier | Unlimited | Limited | Limited |
| Visual Builder | โ | โ | โ |
| Custom Pieces | โ | โ | โ |
Architectureโ
The integration is bidirectional:
| Direction | Purpose | Authentication | Isolation |
|---|---|---|---|
| Gauzy โ Activepieces | Manage AP connections & MCP servers from Gauzy UI | API Key (Bearer token) | Multi-tenant; per-tenant keys or global fallback |
| Activepieces โ Gauzy | ever-gauzy-piece calls Gauzy APIs securely | OAuth 2.0 Authorization Code Grant (RFC 6749) | HMAC-signed codes, single-use enforcement, JWT access tokens |
Part 1: Gauzy โ Activepieces (Plugin Integration)โ
Setup Flowโ
- Obtain API Key โ get a key from Activepieces (via
sales@activepieces.comor the platform dashboard). - Plugin Setup โ navigate to
/pages/integrations/activepiecesand submit the API key viaPOST /api/integration/activepieces/setup. The backend creates/updates anIntegrationTenantrecord for the current Gauzy tenant, storing the API key in the settings. - Tenant Isolation โ all queries include
tenantIdfiltering derived from the authenticated user's JWT.TenantPermissionGuardensures only authorized users can modify settings.
Connection Managementโ
| Operation | Endpoint | Notes |
|---|---|---|
| Create/Upsert | POST /api/v1/app-connections (on AP via Gauzy backend) | Auto-adds tenantId, organizationId, gauzyVersion; type is SECRET_TEXT |
| List | GET /api/v1/app-connections | Filter by pieceName, displayName, and Gauzy tenantId |
| Delete | DELETE /api/v1/app-connections/:id | โ |
MCP Server Managementโ
Gauzy manages Model Context Protocol (MCP) servers on the Activepieces platform:
- List servers by project
- Rotate authentication tokens
- Update server tool configurations
tip
Response tokens are sanitized before being sent to the frontend for security.
Backend API Endpointsโ
All endpoints are prefixed with /api/integration/activepieces.
| Method | Path | Description |
|---|---|---|
POST | /setup | Set up Activepieces integration with API key |
POST | /connection | Create or update an Activepieces connection |
GET | /connections/:integrationId | List available connections for a specific project |
GET | /connection/:integrationId | Get specific connection details |
DELETE | /connection/:integrationId | Remove a connection |
Part 2: Activepieces โ Gauzy (OAuth App)โ
OAuth 2.0 Authorization Code Flowโ
Step-by-step:
- Authorize Request โ
GET /authorizewithclient_id,redirect_uri,scope,state. - User Consent โ backend validates the request and redirects to
/pages/auth/oauth/authorize. - Approval โ user clicks "Authorize"; frontend calls
POST /authorize(requires a Gauzy JWT). - Code Generation โ backend generates an HMAC-signed, single-use authorization code:
v1.{payload}.{signature}. - Redirect โ user is redirected back to Activepieces with the code.
- Token Exchange โ Activepieces calls
POST /token; backend validates code, signature, and single-use marker in cache. - Response โ returns a Gauzy Access Token (JWT) and expiration.
Security Detailsโ
| Mechanism | Description |
|---|---|
| Single-Use Codes | Authorization codes are stored in cache (Redis) and deleted atomically via GETDEL on first use |
| HMAC Signature | Codes are signed with GAUZY_OAUTH_APP_CODE_SECRET to prevent tampering |
| Authorization TTL | Pending authorization requests expire after 10 minutes |
| Code TTL | Authorization codes expire after 1 minute |
| Redirect URI Validation | Enforced at both authorize and token exchange phases against an allowlist |
Configurationโ
Activepieces Plugin (Gauzy โ Activepieces)โ
# Activepieces platform base URL (default: https://cloud.activepieces.com)
ACTIVEPIECES_BASE_URL=https://cloud.activepieces.com
# Activepieces API endpoint (default: https://api.activepieces.com/v1)
GAUZY_ACTIVEPIECES_API_URL=https://api.activepieces.com/v1
# Global API key โ fallback if no per-tenant key is configured
GAUZY_ACTIVEPIECES_API_KEY=
OAuth App (Activepieces โ Gauzy)โ
# OAuth client identifier
GAUZY_OAUTH_APP_CLIENT_ID=8012eaea-b166-...
# Client authentication secret
GAUZY_OAUTH_APP_CLIENT_SECRET=5b9d261d96b5...
# HMAC secret for signing authorization codes
GAUZY_OAUTH_APP_CODE_SECRET=TECP70oa2WN...
# Comma-separated redirect URI allowlist
GAUZY_OAUTH_APP_REDIRECT_URIS=https://cloud.activepieces.com/redirect
tip
For multi-instance deployments, enable Redis for cache-based state management:
REDIS_ENABLED=true
REDIS_URL=redis://localhost:6379 # or REDIS_HOST / REDIS_PORT
REDIS_TLS=true # for TLS connections (rediss://)
Featuresโ
- Self-Hosted Automation โ run workflows on your own infrastructure
- Data Privacy โ no data leaves your servers
- Unlimited Flows โ no per-flow pricing
- Custom Pieces โ build Gauzy-specific automation blocks
- Webhooks โ trigger flows from Gauzy events
Supported Piecesโ
Triggersโ
- Employee created/updated
- Time log recorded
- Task status changed
- Invoice generated
Actionsโ
- Create/update employee
- Log time entry
- Create/update task
- Generate invoice
- Send notification