- 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>
79 lines
2.6 KiB
TypeScript
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],
|
|
});
|