n8n-nodes-close-crm
Version:
N8N community node for Close CRM integration with comprehensive lead, opportunity, task, note, call management, and enhanced triggers for workflow automation
398 lines (397 loc) • 11.8 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.sequenceFields = exports.sequenceOperations = void 0;
exports.sequenceOperations = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['sequence'],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create a new sequence',
action: 'Create a sequence',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete a sequence',
action: 'Delete a sequence',
},
{
name: 'Find',
value: 'find',
description: 'List sequences in the organization',
action: 'List sequences',
},
{
name: 'Get',
value: 'get',
description: 'Fetch a single sequence',
action: 'Get a sequence',
},
{
name: 'Get Subscription',
value: 'getSubscription',
description: 'Fetch a single sequence subscription',
action: 'Get a sequence subscription',
},
{
name: 'List Subscriptions',
value: 'findSubscriptions',
description: 'List sequence subscriptions',
action: 'List sequence subscriptions',
},
{
name: 'Subscribe Contact',
value: 'subscribe',
description: 'Subscribe a contact to a sequence',
action: 'Subscribe a contact to a sequence',
},
{
name: 'Update',
value: 'update',
description: 'Update a sequence',
action: 'Update a sequence',
},
{
name: 'Update Subscription',
value: 'updateSubscription',
description: 'Update a sequence subscription (e.g. pause/resume)',
action: 'Update a sequence subscription',
},
],
default: 'find',
},
];
exports.sequenceFields = [
// ----- Create / Update Sequence -----
{
displayName: 'Sequence ID',
name: 'sequenceId',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: ['sequence'],
operation: ['get', 'update', 'delete'],
},
},
description: 'The ID of the sequence',
},
{
displayName: 'Name',
name: 'name',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: ['sequence'],
operation: ['create'],
},
},
description: 'The name of the sequence',
},
{
displayName: 'Timezone',
name: 'timezone',
type: 'string',
default: 'UTC',
displayOptions: {
show: {
resource: ['sequence'],
operation: ['create'],
},
},
description: 'IANA timezone for the sequence schedule (e.g. "America/Los_Angeles")',
},
{
displayName: 'Schedule (JSON)',
name: 'schedule',
type: 'json',
default: '{\n "ranges": [\n { "weekday": 1, "start": "09:00", "end": "17:00" }\n ]\n}',
displayOptions: {
show: {
resource: ['sequence'],
operation: ['create'],
},
},
description: 'Schedule object defining when the sequence may execute (weekday: 1=Mon..7=Sun)',
},
{
displayName: 'Steps (JSON)',
name: 'steps',
type: 'json',
default: '[\n {\n "step_type": "email",\n "delay": 0,\n "required": true,\n "email_template_id": "tmpl_xxx",\n "threading": "old_thread"\n }\n]',
displayOptions: {
show: {
resource: ['sequence'],
operation: ['create'],
},
},
description: 'Array of step objects (step_type: "email" or "call", delay in seconds, etc.)',
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['sequence'],
operation: ['update'],
},
},
options: [
{
displayName: 'Name',
name: 'name',
type: 'string',
default: '',
description: 'New name for the sequence',
},
{
displayName: 'Schedule (JSON)',
name: 'schedule',
type: 'json',
default: '',
description: 'New schedule object',
},
{
displayName: 'Steps (JSON)',
name: 'steps',
type: 'json',
default: '',
description: 'Array of step objects. WARNING: Excluding existing steps will remove them.',
},
{
displayName: 'Status',
name: 'status',
type: 'options',
options: [
{ name: 'Active', value: 'active' },
{ name: 'Paused', value: 'paused' },
],
default: 'active',
description: 'New status of the sequence',
},
],
},
// ----- Find Sequences -----
{
displayName: 'Return All',
name: 'returnAll',
type: 'boolean',
default: false,
displayOptions: {
show: {
resource: ['sequence'],
operation: ['find', 'findSubscriptions'],
},
},
description: 'Whether to return all results or only up to a given limit',
},
{
displayName: 'Limit',
name: 'limit',
type: 'number',
typeOptions: { minValue: 1 },
default: 50,
displayOptions: {
show: {
resource: ['sequence'],
operation: ['find', 'findSubscriptions'],
returnAll: [false],
},
},
description: 'Max number of results to return',
},
// ----- Subscribe Contact -----
{
displayName: 'Sequence ID',
name: 'sequenceId',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: ['sequence'],
operation: ['subscribe'],
},
},
description: 'The ID of the sequence to subscribe the contact to',
},
{
displayName: 'Contact ID',
name: 'contactId',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: ['sequence'],
operation: ['subscribe'],
},
},
description: 'The ID of the contact being subscribed',
},
{
displayName: 'Contact Email',
name: 'contactEmail',
type: 'string',
placeholder: 'name@example.com',
required: true,
default: '',
displayOptions: {
show: {
resource: ['sequence'],
operation: ['subscribe'],
},
},
description: 'Email address of the contact to use for the subscription',
},
{
displayName: 'Sender Account ID',
name: 'senderAccountId',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: ['sequence'],
operation: ['subscribe'],
},
},
description: 'Email account ID used as the sender (e.g. emailaccount_xxx)',
},
{
displayName: 'Sender Name',
name: 'senderName',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: ['sequence'],
operation: ['subscribe'],
},
},
description: 'Name displayed for the sender',
},
{
displayName: 'Sender Email',
name: 'senderEmail',
type: 'string',
placeholder: 'sender@example.com',
required: true,
default: '',
displayOptions: {
show: {
resource: ['sequence'],
operation: ['subscribe'],
},
},
description: 'Email address of the sender',
},
{
displayName: 'Additional Fields',
name: 'subscribeAdditionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['sequence'],
operation: ['subscribe'],
},
},
options: [
{
displayName: 'Calls Assigned To',
name: 'callsAssignedTo',
type: 'string',
default: '',
description: 'Comma-separated list of user IDs to whom calls should be assigned',
},
],
},
// ----- Subscription Get / Update / List -----
{
displayName: 'Subscription ID',
name: 'subscriptionId',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: ['sequence'],
operation: ['getSubscription', 'updateSubscription'],
},
},
description: 'The ID of the sequence subscription',
},
{
displayName: 'Status',
name: 'subscriptionStatus',
type: 'options',
options: [
{ name: 'Active', value: 'active' },
{ name: 'Paused', value: 'paused' },
],
default: 'paused',
displayOptions: {
show: {
resource: ['sequence'],
operation: ['updateSubscription'],
},
},
description: 'New status for the subscription',
},
{
displayName: 'Subscription Filters',
name: 'subscriptionFilters',
type: 'collection',
placeholder: 'Add Filter',
default: {},
displayOptions: {
show: {
resource: ['sequence'],
operation: ['findSubscriptions'],
},
},
description: 'At least one of sequence ID, contact ID, or lead ID must be provided',
options: [
{
displayName: 'Sequence ID',
name: 'sequenceId',
type: 'string',
default: '',
description: 'Filter subscriptions by sequence ID',
},
{
displayName: 'Contact ID',
name: 'contactId',
type: 'string',
default: '',
description: 'Filter subscriptions by contact ID',
},
{
displayName: 'Lead ID',
name: 'leadId',
type: 'string',
default: '',
description: 'Filter subscriptions by lead ID',
},
],
},
];