Files
poduck 3aa7199503 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>
2025-12-18 22:59:37 -05:00

79 lines
2.6 KiB
TypeScript

import { createPiece, PieceAuth, Property } from '@activepieces/pieces-framework';
import { PieceCategory } from '@activepieces/shared';
import { createCustomApiCallAction, httpClient, HttpMethod } from '@activepieces/pieces-common';
import { createRecord } from './lib/actions/create-record';
import { updateRecord } from './lib/actions/update-record';
import { deleteRecord } from './lib/actions/delete-record';
import { findRecord } from './lib/actions/find-record';
import { findOrCreateRecord } from './lib/actions/find-or-create-record';
import { createUpdateRecordsBulk } from './lib/actions/create-update-records-bulk';
import { newRecord } from './lib/triggers/new-record';
import { newOrUpdatedRecord } from './lib/triggers/new-or-updated-record';
const markdown = `
## Quickbase Authentication Setup
### 1. Get Your User Token
- Log in to your Quickbase account
- Go to **My Preferences** → **My User Information**
- Click on **Manage User Tokens**
- Click **New User Token**
- Enter a name for your token and click **Create**
- Copy the generated token (it will only be shown once)
### 2. Required Permissions
Your user token needs access to:
- Read/write permissions for the apps and tables you want to use
- Admin permissions for creating/deleting records (if needed)
**Security Note:** Keep your user token secure - it provides access to your Quickbase data.
`;
export const quickbaseAuth = PieceAuth.CustomAuth({
description: markdown,
required: true,
props: {
realmHostname: Property.ShortText({
displayName: 'Realm Hostname',
description: 'Enter your Quickbase Realm Hostname (e.g., yourrealm.quickbase.com)',
required: true,
}),
userToken: Property.ShortText({
displayName: 'User Token',
description: 'Enter your Quickbase User Token',
required: true,
}),
},
});
export const quickbase = createPiece({
displayName: 'Quickbase',
auth: quickbaseAuth,
minimumSupportedRelease: '0.36.1',
logoUrl: 'https://cdn.activepieces.com/pieces/quickbase.png',
categories: [PieceCategory.PRODUCTIVITY],
authors: ['sparkybug','sanket-a11y'],
actions: [
createRecord,
updateRecord,
deleteRecord,
findRecord,
findOrCreateRecord,
createUpdateRecordsBulk,
createCustomApiCallAction({
auth: quickbaseAuth,
baseUrl: (auth) => {
return `https://api.quickbase.com/v1`;
},
authMapping: async (auth) => {
return {
'QB-Realm-Hostname': (auth).props.realmHostname,
'Authorization': `QB-USER-TOKEN ${(auth).props.userToken}`,
'Content-Type': 'application/json',
};
},
})
],
triggers: [newRecord, newOrUpdatedRecord],
});