- 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>
135 lines
4.8 KiB
TypeScript
135 lines
4.8 KiB
TypeScript
import {
|
|
PieceAuth,
|
|
Property,
|
|
createPiece,
|
|
OAuth2PropertyValue,
|
|
} from '@activepieces/pieces-framework';
|
|
import { PieceCategory } from '@activepieces/shared';
|
|
import { createCustomApiCallAction } from '@activepieces/pieces-common';
|
|
|
|
|
|
import { addContactToCampaign } from './lib/action/add-contact-to-campaign';
|
|
import { addFileToRecord } from './lib/action/add-file-to-record';
|
|
import { addLeadToCampaign } from './lib/action/add-lead-to-campaign';
|
|
import { createAttachment } from './lib/action/create-attachment';
|
|
import { createCase } from './lib/action/create-case';
|
|
import { createContact } from './lib/action/create-contact';
|
|
import { createLead } from './lib/action/create-lead';
|
|
import { createNote } from './lib/action/create-note';
|
|
import { createOpportunity } from './lib/action/create-opportunity';
|
|
import { createRecord } from './lib/action/create-record';
|
|
import { createTask } from './lib/action/create-task';
|
|
import { deleteOpportunity } from './lib/action/delete-opportunity';
|
|
import { deleteRecord } from './lib/action/delete-record';
|
|
import { findChildRecords } from './lib/action/find-child-records';
|
|
import { findRecord } from './lib/action/find-record';
|
|
import { findRecordsByQuery } from './lib/action/find-records-by-query';
|
|
import { getRecordAttachments } from './lib/action/get-record-attachments';
|
|
import { runQuery } from './lib/action/run-sf-query';
|
|
import { runReport } from './lib/action/run-report';
|
|
import { sendEmail } from './lib/action/send-email';
|
|
import { updateContact } from './lib/action/update-contact';
|
|
import { updateLead } from './lib/action/update-lead';
|
|
import { updateRecord } from './lib/action/update-record';
|
|
import { upsertByExternalId } from './lib/action/upsert-by-external-id';
|
|
import { upsertByExternalIdBulk } from './lib/action/upsert-by-external-id-bulk';
|
|
|
|
|
|
import { newCaseAttachment } from './lib/trigger/new-case-attachment';
|
|
import { newContact } from './lib/trigger/new-contact';
|
|
import { newFieldHistoryEvent } from './lib/trigger/new-field-history-event';
|
|
import { newLead } from './lib/trigger/new-lead';
|
|
import { newOrUpdatedRecord } from './lib/trigger/new-updated-record';
|
|
import { newOutboundMessage } from './lib/trigger/new-outbound-message';
|
|
import { newRecord } from './lib/trigger/new-record';
|
|
import { newUpdatedFile } from './lib/trigger/new-updated-file';
|
|
|
|
export const salesforceAuth = PieceAuth.OAuth2({
|
|
props: {
|
|
environment: Property.StaticDropdown({
|
|
displayName: 'Environment',
|
|
description: 'Choose environment',
|
|
required: true,
|
|
options: {
|
|
options: [
|
|
{
|
|
label: 'Production',
|
|
value: 'login',
|
|
},
|
|
{
|
|
label: 'Development',
|
|
value: 'test',
|
|
},
|
|
],
|
|
},
|
|
defaultValue: 'login',
|
|
}),
|
|
},
|
|
required: true,
|
|
description: 'Authenticate with Salesforce Production',
|
|
authUrl: 'https://{environment}.salesforce.com/services/oauth2/authorize',
|
|
tokenUrl: 'https://{environment}.salesforce.com/services/oauth2/token',
|
|
scope: ['refresh_token', 'full' ,'api'],
|
|
});
|
|
|
|
export const salesforce = createPiece({
|
|
displayName: 'Salesforce',
|
|
description: 'CRM software solutions and enterprise cloud computing',
|
|
minimumSupportedRelease: '0.30.0',
|
|
logoUrl: 'https://cdn.activepieces.com/pieces/salesforce.png',
|
|
authors: [
|
|
'HKudria',
|
|
'tanoggy',
|
|
'landonmoir',
|
|
'kishanprmr',
|
|
'khaledmashaly',
|
|
'abuaboud',
|
|
'Pranith124',
|
|
],
|
|
categories: [PieceCategory.SALES_AND_CRM],
|
|
auth: salesforceAuth,
|
|
actions: [
|
|
addContactToCampaign,
|
|
addFileToRecord,
|
|
addLeadToCampaign,
|
|
createAttachment,
|
|
createCase,
|
|
createContact,
|
|
createLead,
|
|
createNote,
|
|
createOpportunity,
|
|
createRecord,
|
|
createTask,
|
|
deleteOpportunity,
|
|
deleteRecord,
|
|
findChildRecords,
|
|
findRecord,
|
|
findRecordsByQuery,
|
|
getRecordAttachments,
|
|
runQuery,
|
|
runReport,
|
|
sendEmail,
|
|
updateContact,
|
|
updateLead,
|
|
updateRecord,
|
|
upsertByExternalId,
|
|
upsertByExternalIdBulk,
|
|
createCustomApiCallAction({
|
|
baseUrl: (auth) => (auth as OAuth2PropertyValue).data['instance_url'],
|
|
auth: salesforceAuth,
|
|
authMapping: async (auth) => ({
|
|
Authorization: `Bearer ${(auth as OAuth2PropertyValue).access_token}`,
|
|
}),
|
|
}),
|
|
],
|
|
triggers: [
|
|
newCaseAttachment,
|
|
newContact,
|
|
newFieldHistoryEvent,
|
|
newLead,
|
|
newOrUpdatedRecord,
|
|
newOutboundMessage,
|
|
newRecord,
|
|
newUpdatedFile,
|
|
],
|
|
}); |