UNPKG

n8n-nodes-outseta

Version:

n8n community node for Outseta CRM integration - manage people, accounts, and deals

866 lines 35.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Outseta = void 0; class Outseta { constructor() { this.description = { displayName: 'Outseta', name: 'outseta', icon: { light: 'file:outseta.svg', dark: 'file:outseta.svg' }, group: ['transform'], version: 1, subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}', description: 'Interact with Outseta CRM API to manage people, accounts, and deals', defaults: { name: 'Outseta', }, inputs: ["main"], outputs: ["main"], credentials: [ { name: 'outsetaApi', required: true, }, ], requestDefaults: { baseURL: '=https://{{$credentials.domain}}/api/v1', headers: { Accept: 'application/json', 'Content-Type': 'application/json', }, }, properties: [ { displayName: 'Resource', name: 'resource', type: 'options', noDataExpression: true, options: [ { name: 'Person', value: 'people', }, { name: 'Account', value: 'accounts', }, { name: 'Deal', value: 'deals', }, ], default: 'people', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['people'], }, }, options: [ { name: 'Create', value: 'create', action: 'Create a person', description: 'Add a new person to your CRM', routing: { request: { method: 'POST', url: '/crm/people', }, }, }, { name: 'Delete', value: 'delete', action: 'Delete a person', description: 'Remove a person from your CRM', routing: { request: { method: 'DELETE', url: '=/crm/people/{{$parameter["personUid"]}}', }, }, }, { name: 'Get', value: 'get', action: 'Get a person', description: 'Retrieve a specific person by UID', routing: { request: { method: 'GET', url: '=/crm/people/{{$parameter["personUid"]}}', }, }, }, { name: 'Get Many', value: 'getAll', action: 'Get many people', description: 'Retrieve many people from your CRM', routing: { request: { method: 'GET', url: '/crm/people', }, }, }, { name: 'Update', value: 'update', action: 'Update a person', description: 'Update an existing person', routing: { request: { method: 'PUT', url: '=/crm/people/{{$parameter["personUid"]}}', }, }, }, ], default: 'getAll', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['accounts'], }, }, options: [ { name: 'Create', value: 'create', action: 'Create an account', description: 'Add a new account to your CRM', routing: { request: { method: 'POST', url: '/crm/accounts', }, }, }, { name: 'Delete', value: 'delete', action: 'Delete an account', description: 'Remove an account from your CRM', routing: { request: { method: 'DELETE', url: '=/crm/accounts/{{$parameter["accountUid"]}}', }, }, }, { name: 'Get', value: 'get', action: 'Get an account', description: 'Retrieve a specific account by UID', routing: { request: { method: 'GET', url: '=/crm/accounts/{{$parameter["accountUid"]}}', }, }, }, { name: 'Get Many', value: 'getAll', action: 'Get many accounts', description: 'Retrieve many accounts from your CRM', routing: { request: { method: 'GET', url: '/crm/accounts', }, }, }, { name: 'Send Confirmation', value: 'sendConfirmation', action: 'Send confirmation email', description: 'Send confirmation emails to account members', routing: { request: { method: 'PUT', url: '=/crm/accounts/{{$parameter["accountUid"]}}/send-confirmation-email', }, }, }, { name: 'Update', value: 'update', action: 'Update an account', description: 'Update an existing account', routing: { request: { method: 'PUT', url: '=/crm/accounts/{{$parameter["accountUid"]}}', }, }, }, ], default: 'getAll', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['deals'], }, }, options: [ { name: 'Create', value: 'create', action: 'Create a deal', description: 'Add a new deal to your CRM', routing: { request: { method: 'POST', url: '/crm/deals', }, }, }, { name: 'Delete', value: 'delete', action: 'Delete a deal', description: 'Remove a deal from your CRM', routing: { request: { method: 'DELETE', url: '=/crm/deals/{{$parameter["dealUid"]}}', }, }, }, { name: 'Get', value: 'get', action: 'Get a deal', description: 'Retrieve a specific deal by UID', routing: { request: { method: 'GET', url: '=/crm/deals/{{$parameter["dealUid"]}}', }, }, }, { name: 'Get Many', value: 'getAll', action: 'Get many deals', description: 'Retrieve many deals from your CRM', routing: { request: { method: 'GET', url: '/crm/deals', }, }, }, { name: 'Update', value: 'update', action: 'Update a deal', description: 'Update an existing deal', routing: { request: { method: 'PUT', url: '=/crm/deals/{{$parameter["dealUid"]}}', }, }, }, ], default: 'getAll', }, { displayName: 'Person UID', name: 'personUid', type: 'string', required: true, displayOptions: { show: { resource: ['people'], operation: ['get', 'update', 'delete'], }, }, default: '', description: 'The unique identifier of the person', }, { displayName: 'Account UID', name: 'accountUid', type: 'string', required: true, displayOptions: { show: { resource: ['accounts'], operation: ['get', 'update', 'delete', 'sendConfirmation'], }, }, default: '', description: 'The unique identifier of the account', }, { displayName: 'Deal UID', name: 'dealUid', type: 'string', required: true, displayOptions: { show: { resource: ['deals'], operation: ['get', 'update', 'delete'], }, }, default: '', description: 'The unique identifier of the deal', }, { displayName: 'Additional Options', name: 'additionalOptions', type: 'collection', placeholder: 'Add Option', default: {}, displayOptions: { show: { operation: ['getAll'], }, }, options: [ { displayName: 'Fields', name: 'fields', type: 'string', default: '', placeholder: 'Uid,Email,FirstName,LastName', description: 'Comma-separated list of fields to return', routing: { request: { qs: { fields: '={{$value}}', }, }, }, }, { displayName: 'Filter by Account Name', name: 'filterByAccountName', type: 'string', default: '', placeholder: 'Acme Corp', description: 'Filter accounts by name', displayOptions: { show: { '/resource': ['accounts'], }, }, routing: { request: { qs: { Name: '={{$value}}', }, }, }, }, { displayName: 'Filter by Account Stage', name: 'filterByAccountStage', type: 'options', options: [ { name: 'Demo', value: 1 }, { name: 'Trialing', value: 2 }, { name: 'Subscribing', value: 3 }, { name: 'Cancelling', value: 4 }, { name: 'Expired', value: 5 }, { name: 'Trial Expired', value: 6 }, { name: 'Past Due', value: 7 }, ], default: 1, description: 'Filter accounts by their stage', displayOptions: { show: { '/resource': ['accounts'], }, }, routing: { request: { qs: { AccountStage: '={{$value}}', }, }, }, }, { displayName: 'Filter by Deal Name', name: 'filterByDealName', type: 'string', default: '', placeholder: 'Enterprise Contract', description: 'Filter deals by name', displayOptions: { show: { '/resource': ['deals'], }, }, routing: { request: { qs: { Name: '={{$value}}', }, }, }, }, { displayName: 'Filter by Email', name: 'filterByEmail', type: 'string', default: '', placeholder: 'john@example.com', description: 'Filter people by email address', displayOptions: { show: { '/resource': ['people'], }, }, routing: { request: { qs: { Email: '={{$value}}', }, }, }, }, { displayName: 'Filter by First Name', name: 'filterByFirstName', type: 'string', default: '', placeholder: 'John', description: 'Filter people by first name', displayOptions: { show: { '/resource': ['people'], }, }, routing: { request: { qs: { FirstName: '={{$value}}', }, }, }, }, { displayName: 'Filter by Last Name', name: 'filterByLastName', type: 'string', default: '', placeholder: 'Doe', description: 'Filter people by last name', displayOptions: { show: { '/resource': ['people'], }, }, routing: { request: { qs: { LastName: '={{$value}}', }, }, }, }, { displayName: 'Filter by Person Email', name: 'filterByPersonEmail', type: 'string', default: '', placeholder: 'john@example.com', description: 'Filter accounts by associated person email', displayOptions: { show: { '/resource': ['accounts'], }, }, routing: { request: { qs: { 'PersonAccount.Person.Email': '={{$value}}', }, }, }, }, { displayName: 'Filter by Person UID', name: 'filterByPersonUid', type: 'string', default: '', placeholder: 'abc123', description: 'Filter accounts by associated person UID', displayOptions: { show: { '/resource': ['accounts'], }, }, routing: { request: { qs: { 'PersonAccount.Person.Uid': '={{$value}}', }, }, }, }, { displayName: 'Limit', name: 'limit', type: 'number', default: 50, description: 'Max number of results to return', typeOptions: { minValue: 1, }, routing: { request: { qs: { limit: '={{$value}}', }, }, }, }, { displayName: 'Offset', name: 'offset', type: 'number', default: 0, description: 'Number of results to skip', typeOptions: { minValue: 0, }, routing: { request: { qs: { offset: '={{$value}}', }, }, }, }, ], }, { displayName: 'Email', name: 'email', type: 'string', placeholder: 'name@email.com', required: true, displayOptions: { show: { resource: ['people'], operation: ['create'], }, }, default: '', description: 'Email address of the person', routing: { send: { type: 'body', property: 'Email', }, }, }, { displayName: 'Email', name: 'email', type: 'string', placeholder: 'name@email.com', displayOptions: { show: { resource: ['people'], operation: ['update'], }, }, default: '', description: 'Email address of the person', routing: { send: { type: 'body', property: 'Email', }, }, }, { displayName: 'First Name', name: 'firstName', type: 'string', displayOptions: { show: { resource: ['people'], operation: ['create', 'update'], }, }, default: '', description: 'First name of the person', routing: { send: { type: 'body', property: 'FirstName', }, }, }, { displayName: 'Last Name', name: 'lastName', type: 'string', displayOptions: { show: { resource: ['people'], operation: ['create', 'update'], }, }, default: '', description: 'Last name of the person', routing: { send: { type: 'body', property: 'LastName', }, }, }, { displayName: 'Additional Fields', name: 'additionalFields', type: 'collection', placeholder: 'Add Field', default: {}, displayOptions: { show: { resource: ['people'], operation: ['create', 'update'], }, }, options: [ { displayName: 'Mobile Phone', name: 'phoneMobile', type: 'string', default: '', routing: { send: { type: 'body', property: 'PhoneMobile', }, }, }, { displayName: 'Work Phone', name: 'phoneWork', type: 'string', default: '', routing: { send: { type: 'body', property: 'PhoneWork', }, }, }, { displayName: 'Timezone', name: 'timezone', type: 'string', default: '', routing: { send: { type: 'body', property: 'Timezone', }, }, }, ], }, { displayName: 'Account Name', name: 'accountName', type: 'string', required: true, displayOptions: { show: { resource: ['accounts'], operation: ['create'], }, }, default: '', description: 'Name of the account', routing: { send: { type: 'body', property: 'Name', }, }, }, { displayName: 'Account Name', name: 'accountName', type: 'string', displayOptions: { show: { resource: ['accounts'], operation: ['update'], }, }, default: '', description: 'Name of the account', routing: { send: { type: 'body', property: 'Name', }, }, }, { displayName: 'Additional Fields', name: 'additionalFields', type: 'collection', placeholder: 'Add Field', default: {}, displayOptions: { show: { resource: ['accounts'], operation: ['create', 'update'], }, }, options: [ { displayName: 'Account Stage', name: 'accountStage', type: 'options', options: [ { name: 'Demo', value: 1 }, { name: 'Trialing', value: 2 }, { name: 'Subscribing', value: 3 }, { name: 'Cancelling', value: 4 }, { name: 'Expired', value: 5 }, { name: 'Trial Expired', value: 6 }, { name: 'Past Due', value: 7 }, ], default: 1, routing: { send: { type: 'body', property: 'AccountStage', }, }, }, ], }, { displayName: 'Deal Name', name: 'dealName', type: 'string', required: true, displayOptions: { show: { resource: ['deals'], operation: ['create'], }, }, default: '', description: 'Name of the deal', routing: { send: { type: 'body', property: 'Name', }, }, }, { displayName: 'Deal Name', name: 'dealName', type: 'string', displayOptions: { show: { resource: ['deals'], operation: ['update'], }, }, default: '', description: 'Name of the deal', routing: { send: { type: 'body', property: 'Name', }, }, }, { displayName: 'Additional Fields', name: 'additionalFields', type: 'collection', placeholder: 'Add Field', default: {}, displayOptions: { show: { resource: ['deals'], operation: ['create', 'update'], }, }, options: [ { displayName: 'Amount', name: 'amount', type: 'number', default: 0, description: 'Deal amount in dollars', routing: { send: { type: 'body', property: 'Amount', }, }, }, { displayName: 'Deal Pipeline Stage UID', name: 'dealPipelineStageUid', type: 'string', default: '', description: 'UID of the deal pipeline stage', routing: { send: { type: 'body', property: 'DealPipelineStage', value: '={{ { Uid: $value } }}', }, }, }, { displayName: 'Account UID', name: 'accountUid', type: 'string', default: '', description: 'UID of the associated account', routing: { send: { type: 'body', property: 'Account', value: '={{ { Uid: $value } }}', }, }, }, ], }, ], }; } } exports.Outseta = Outseta; //# sourceMappingURL=Outseta.node.js.map