first commit
Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled

This commit is contained in:
2026-03-17 16:22:57 +03:30
commit 3d5eaf9445
15349 changed files with 2847338 additions and 0 deletions
@@ -0,0 +1,148 @@
import type { INodeProperties } from 'n8n-workflow';
export const accountContactOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['accountContact'],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create an association',
action: 'Create an account contact',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete an association',
action: 'Delete an account contact',
},
{
name: 'Update',
value: 'update',
description: 'Update an association',
action: 'Update an account contact',
},
],
default: 'create',
},
];
export const accountContactFields: INodeProperties[] = [
// ----------------------------------
// accountContact:create
// ----------------------------------
{
displayName: 'Account ID',
name: 'account',
type: 'number',
default: '',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['accountContact'],
},
},
},
{
displayName: 'Contact ID',
name: 'contact',
type: 'number',
default: '',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['accountContact'],
},
},
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: ['create'],
resource: ['accountContact'],
},
},
default: {},
options: [
{
displayName: 'Job Title',
name: 'jobTitle',
type: 'string',
default: '',
description: 'Job Title of the contact at the account',
},
],
},
// ----------------------------------
// accountContact:delete
// ----------------------------------
{
displayName: 'Account Contact ID',
name: 'accountContactId',
type: 'number',
displayOptions: {
show: {
operation: ['delete'],
resource: ['accountContact'],
},
},
default: 0,
required: true,
description: 'ID of the account contact to delete',
},
// ----------------------------------
// accountContact:update
// ----------------------------------
{
displayName: 'Account Contact ID',
name: 'accountContactId',
type: 'number',
default: '',
required: true,
displayOptions: {
show: {
operation: ['update'],
resource: ['accountContact'],
},
},
description: 'Account ID',
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
description: 'The fields to update',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: ['update'],
resource: ['accountContact'],
},
},
default: {},
options: [
{
displayName: 'Job Title',
name: 'jobTitle',
type: 'string',
default: '',
description: 'Job Title of the contact at the account',
},
],
},
];
@@ -0,0 +1,274 @@
import type { INodeProperties } from 'n8n-workflow';
import { activeCampaignDefaultGetAllProperties } from './GenericFunctions';
export const accountOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['account'],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create an account',
action: 'Create an account',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete an account',
action: 'Delete an account',
},
{
name: 'Get',
value: 'get',
description: 'Get data of an account',
action: 'Get an account',
},
{
name: 'Get Many',
value: 'getAll',
description: 'Get data of many accounts',
action: 'Get many accounts',
},
{
name: 'Update',
value: 'update',
description: 'Update an account',
action: 'Update an account',
},
],
default: 'create',
},
];
export const accountFields: INodeProperties[] = [
// ----------------------------------
// contact:create
// ----------------------------------
{
displayName: 'Name',
name: 'name',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['account'],
},
},
description: "Account's name",
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: ['create'],
resource: ['account'],
},
},
default: {},
options: [
{
displayName: 'Account URL',
name: 'accountUrl',
type: 'string',
default: '',
description: "Account's website",
},
{
displayName: 'Fields',
name: 'fields',
placeholder: 'Add Custom Fields',
description: 'Adds a custom fields to set also values which have not been predefined',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
default: {},
options: [
{
name: 'property',
displayName: 'Field',
values: [
{
displayName: 'Field Name or ID',
name: 'customFieldId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getAccountCustomFields',
},
default: '',
description:
'ID of the field to set. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Field Value',
name: 'fieldValue',
type: 'string',
default: '',
description: 'Value of the field to set',
},
],
},
],
},
],
},
// ----------------------------------
// contact:update
// ----------------------------------
{
displayName: 'Account ID',
name: 'accountId',
type: 'number',
displayOptions: {
show: {
operation: ['update'],
resource: ['account'],
},
},
default: 0,
required: true,
description: 'ID of the account to update',
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
description: 'The fields to update',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: ['update'],
resource: ['account'],
},
},
default: {},
options: [
{
displayName: 'Name',
name: 'name',
type: 'string',
default: '',
description: "Account's name",
},
{
displayName: 'Account URL',
name: 'accountUrl',
type: 'string',
default: '',
description: "Account's website",
},
{
displayName: 'Fields',
name: 'fields',
placeholder: 'Add Fields',
description: 'Adds a custom fields to set also values which have not been predefined',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
default: {},
options: [
{
name: 'property',
displayName: 'Field',
values: [
{
displayName: 'Field Name or ID',
name: 'customFieldId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getAccountCustomFields',
},
default: '',
description:
'ID of the field to set. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Field Value',
name: 'fieldValue',
type: 'string',
default: '',
description: 'Value of the field to set',
},
],
},
],
},
],
},
// ----------------------------------
// account:delete
// ----------------------------------
{
displayName: 'Account ID',
name: 'accountId',
type: 'number',
displayOptions: {
show: {
operation: ['delete'],
resource: ['account'],
},
},
default: 0,
required: true,
description: 'ID of the account to delete',
},
// ----------------------------------
// account:get
// ----------------------------------
{
displayName: 'Account ID',
name: 'accountId',
type: 'number',
displayOptions: {
show: {
operation: ['get'],
resource: ['account'],
},
},
default: 0,
required: true,
description: 'ID of the account to get',
},
// ----------------------------------
// account:getAll
// ----------------------------------
...activeCampaignDefaultGetAllProperties('account', 'getAll'),
{
displayName: 'Filters',
name: 'filters',
type: 'collection',
placeholder: 'Add Filter',
displayOptions: {
show: {
operation: ['getAll'],
resource: ['account'],
},
},
default: {},
options: [
{
displayName: 'Search',
name: 'search',
type: 'string',
default: '',
description: 'Search by name',
},
],
},
];
@@ -0,0 +1,19 @@
{
"node": "n8n-nodes-base.activeCampaign",
"nodeVersion": "1.0",
"codexVersion": "1.0",
"details": "ActiveCampaign is a cloud software platform that allows customer experience automation, which combines email marketing, marketing automation, sales automation, and CRM categories. Use this node when you want to interact with your ActiveCampaign account.",
"categories": ["Marketing"],
"resources": {
"credentialDocumentation": [
{
"url": "https://docs.n8n.io/integrations/builtin/credentials/activecampaign/"
}
],
"primaryDocumentation": [
{
"url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.activecampaign/"
}
]
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,18 @@
{
"node": "n8n-nodes-base.activeCampaignTrigger",
"nodeVersion": "1.0",
"codexVersion": "1.0",
"categories": ["Marketing"],
"resources": {
"credentialDocumentation": [
{
"url": "https://docs.n8n.io/integrations/builtin/credentials/activecampaign/"
}
],
"primaryDocumentation": [
{
"url": "https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.activecampaigntrigger/"
}
]
}
}
@@ -0,0 +1,174 @@
import type {
IHookFunctions,
IWebhookFunctions,
IDataObject,
ILoadOptionsFunctions,
INodePropertyOptions,
INodeType,
INodeTypeDescription,
IWebhookResponseData,
} from 'n8n-workflow';
import { NodeConnectionTypes } from 'n8n-workflow';
import { activeCampaignApiRequest, activeCampaignApiRequestAllItems } from './GenericFunctions';
export class ActiveCampaignTrigger implements INodeType {
description: INodeTypeDescription = {
displayName: 'ActiveCampaign Trigger',
name: 'activeCampaignTrigger',
icon: { light: 'file:activeCampaign.svg', dark: 'file:activeCampaign.dark.svg' },
group: ['trigger'],
version: 1,
description: 'Handle ActiveCampaign events via webhooks',
defaults: {
name: 'ActiveCampaign Trigger',
},
inputs: [],
outputs: [NodeConnectionTypes.Main],
credentials: [
{
name: 'activeCampaignApi',
required: true,
},
],
webhooks: [
{
name: 'default',
httpMethod: 'POST',
responseMode: 'onReceived',
path: 'webhook',
},
],
properties: [
{
displayName: 'Event Names or IDs',
name: 'events',
type: 'multiOptions',
description:
'Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
typeOptions: {
loadOptionsMethod: 'getEvents',
},
default: [],
options: [],
},
{
displayName: 'Source',
name: 'sources',
type: 'multiOptions',
options: [
{
name: 'Public',
value: 'public',
description: 'Run the hooks when a contact triggers the action',
},
{
name: 'Admin',
value: 'admin',
description: 'Run the hooks when an admin user triggers the action',
},
{
name: 'Api',
value: 'api',
description: 'Run the hooks when an API call triggers the action',
},
{
name: 'System',
value: 'system',
description: 'Run the hooks when automated systems triggers the action',
},
],
default: [],
},
],
};
methods = {
loadOptions: {
// Get all the events to display them to user so that they can
// select them easily
async getEvents(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {
const returnData: INodePropertyOptions[] = [];
const events = await activeCampaignApiRequestAllItems.call(
this,
'GET',
'/api/3/webhook/events',
{},
{},
'webhookEvents',
);
for (const event of events) {
const eventName = event;
const eventId = event;
returnData.push({
name: eventName,
value: eventId,
});
}
return returnData;
},
},
};
webhookMethods = {
default: {
async checkExists(this: IHookFunctions): Promise<boolean> {
const webhookData = this.getWorkflowStaticData('node');
if (webhookData.webhookId === undefined) {
return false;
}
const endpoint = `/api/3/webhooks/${webhookData.webhookId}`;
try {
await activeCampaignApiRequest.call(this, 'GET', endpoint, {});
} catch (error) {
return false;
}
return true;
},
async create(this: IHookFunctions): Promise<boolean> {
const webhookUrl = this.getNodeWebhookUrl('default') as string;
const webhookData = this.getWorkflowStaticData('node');
const events = this.getNodeParameter('events', []) as string[];
const sources = this.getNodeParameter('sources', '') as string[];
const body: IDataObject = {
webhook: {
name: `n8n-webhook:${webhookUrl}`,
url: webhookUrl,
events,
sources,
},
};
const { webhook } = await activeCampaignApiRequest.call(
this,
'POST',
'/api/3/webhooks',
body,
);
webhookData.webhookId = webhook.id;
return true;
},
async delete(this: IHookFunctions): Promise<boolean> {
const webhookData = this.getWorkflowStaticData('node');
try {
await activeCampaignApiRequest.call(
this,
'DELETE',
`/api/3/webhooks/${webhookData.webhookId}`,
{},
);
} catch (error) {
return false;
}
delete webhookData.webhookId;
return true;
},
},
};
async webhook(this: IWebhookFunctions): Promise<IWebhookResponseData> {
const req = this.getRequestObject();
return {
workflowData: [this.helpers.returnJsonArray(req.body as IDataObject[])],
};
}
}
@@ -0,0 +1,255 @@
import type { INodeProperties } from 'n8n-workflow';
import { activeCampaignDefaultGetAllProperties } from './GenericFunctions';
export const connectionOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['connection'],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create a connection',
action: 'Create a connection',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete a connection',
action: 'Delete a connection',
},
{
name: 'Get',
value: 'get',
description: 'Get data of a connection',
action: 'Get a connection',
},
{
name: 'Get Many',
value: 'getAll',
description: 'Get data of many connections',
action: 'Get many connections',
},
{
name: 'Update',
value: 'update',
description: 'Update a connection',
action: 'Update a connection',
},
],
default: 'create',
},
];
export const connectionFields: INodeProperties[] = [
// ----------------------------------
// connection:create
// ----------------------------------
{
displayName: 'Service',
name: 'service',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['connection'],
},
},
description: 'The name of the service',
},
{
displayName: 'External Account ID',
name: 'externalid',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['connection'],
},
},
description: 'The ID of the account in the external service',
},
{
displayName: 'Account Name',
name: 'name',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['connection'],
},
},
description:
'The name associated with the account in the external service. Often this will be a company name (e.g., "My Toystore, Inc.").',
},
{
displayName: 'Logo URL',
name: 'logoUrl',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['connection'],
},
},
description: 'The URL to a logo image for the external service',
},
{
displayName: 'Link URL',
name: 'linkUrl',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['connection'],
},
},
description:
"The URL to a page where the integration with the external service can be managed in the third-party's website",
},
// ----------------------------------
// connection:update
// ----------------------------------
{
displayName: 'Connection ID',
name: 'connectionId',
type: 'number',
displayOptions: {
show: {
operation: ['update'],
resource: ['connection'],
},
},
default: 0,
required: true,
description: 'ID of the connection to update',
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
description: 'The fields to update',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: ['update'],
resource: ['connection'],
},
},
default: {},
options: [
{
displayName: 'Service',
name: 'service',
type: 'string',
default: '',
description: 'The name of the service',
},
{
displayName: 'External Account ID',
name: 'externalid',
type: 'string',
default: '',
description: 'The ID of the account in the external service',
},
{
displayName: 'Account Name',
name: 'name',
type: 'string',
default: '',
description:
'The name associated with the account in the external service. Often this will be a company name (e.g., "My Toystore, Inc.").',
},
{
displayName: 'Logo URL',
name: 'logoUrl',
type: 'string',
default: '',
description: 'The URL to a logo image for the external service',
},
{
displayName: 'Link URL',
name: 'linkUrl',
type: 'string',
default: '',
description:
"The URL to a page where the integration with the external service can be managed in the third-party's website",
},
{
displayName: 'Status',
name: 'status',
type: 'number',
default: 1,
description: 'The status of the connection (0 = error; 1 = connected)',
},
{
displayName: 'Syncronisation Status',
name: 'syncStatus',
type: 'number',
default: 1,
description:
'The status of a sync triggered on the connection (0 = sync stopped; 1 = sync running)',
},
],
},
// ----------------------------------
// connection:delete
// ----------------------------------
{
displayName: 'Connection ID',
name: 'connectionId',
type: 'number',
displayOptions: {
show: {
operation: ['delete'],
resource: ['connection'],
},
},
default: 0,
required: true,
description: 'ID of the connection to delete',
},
// ----------------------------------
// connection:get
// ----------------------------------
{
displayName: 'Connection ID',
name: 'connectionId',
type: 'number',
displayOptions: {
show: {
operation: ['get'],
resource: ['connection'],
},
},
default: 0,
required: true,
description: 'ID of the connection to get',
},
// ----------------------------------
// connection:getAll
// ----------------------------------
...activeCampaignDefaultGetAllProperties('connection', 'getAll'),
];
@@ -0,0 +1,487 @@
import type { INodeProperties } from 'n8n-workflow';
import { activeCampaignDefaultGetAllProperties } from './GenericFunctions';
export const contactOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['contact'],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create a contact',
action: 'Create a contact',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete a contact',
action: 'Delete a contact',
},
{
name: 'Get',
value: 'get',
description: 'Get data of a contact',
action: 'Get a contact',
},
{
name: 'Get Many',
value: 'getAll',
description: 'Get data of many contacts',
action: 'Get many contacts',
},
{
name: 'Update',
value: 'update',
description: 'Update a contact',
action: 'Update a contact',
},
],
default: 'create',
},
];
export const contactFields: INodeProperties[] = [
// ----------------------------------
// contact:create
// ----------------------------------
{
displayName: 'Email',
name: 'email',
type: 'string',
placeholder: 'name@email.com',
default: '',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['contact'],
},
},
description: 'The email of the contact to create',
},
{
displayName: 'Update if Exists',
name: 'updateIfExists',
type: 'boolean',
displayOptions: {
show: {
operation: ['create'],
resource: ['contact'],
},
},
default: false,
description:
'Whether to update user if it exists already. If not set and user exists it will error instead.',
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: ['create'],
resource: ['contact'],
},
},
default: {},
options: [
{
displayName: 'Custom Fields',
name: 'fieldValues',
placeholder: 'Add Custom Fields',
description: 'Adds a custom fields to set also values which have not been predefined',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
default: {},
options: [
{
name: 'property',
displayName: 'Custom Field',
values: [
{
displayName: 'Field Name or ID',
name: 'field',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getContactCustomFields',
},
default: '',
description:
'ID of the field to set. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Field Value',
name: 'value',
type: 'string',
default: '',
description: 'Value of the field to set',
},
],
},
],
},
{
displayName: 'First Name',
name: 'firstName',
type: 'string',
default: '',
description: 'The first name of the contact to create',
},
{
displayName: 'Last Name',
name: 'lastName',
type: 'string',
default: '',
description: 'The last name of the contact to create',
},
{
displayName: 'Phone',
name: 'phone',
type: 'string',
default: '',
description: 'Phone number of the contact',
},
],
},
// ----------------------------------
// contact:update
// ----------------------------------
{
displayName: 'Contact ID',
name: 'contactId',
type: 'number',
displayOptions: {
show: {
operation: ['update'],
resource: ['contact'],
},
},
default: 0,
required: true,
description: 'ID of the contact to update',
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
description: 'The fields to update',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: ['update'],
resource: ['contact'],
},
},
default: {},
options: [
{
displayName: 'Custom Fields',
name: 'fieldValues',
placeholder: 'Add Custom Fields',
description: 'Adds a custom fields to set also values which have not been predefined',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
default: {},
options: [
{
name: 'property',
displayName: 'Custom Field',
values: [
{
displayName: 'Field Name or ID',
name: 'field',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getContactCustomFields',
},
default: '',
description:
'ID of the field to set. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Field Value',
name: 'value',
type: 'string',
default: '',
description: 'Value of the field to set',
},
],
},
],
},
{
displayName: 'Email',
name: 'email',
type: 'string',
placeholder: 'name@email.com',
default: '',
description: 'Email of the contact',
},
{
displayName: 'First Name',
name: 'firstName',
type: 'string',
default: '',
description: 'First name of the contact',
},
{
displayName: 'Last Name',
name: 'lastName',
type: 'string',
default: '',
description: 'Last name of the contact',
},
{
displayName: 'Phone',
name: 'phone',
type: 'string',
default: '',
description: 'Phone number of the contact',
},
],
},
// ----------------------------------
// contact:delete
// ----------------------------------
{
displayName: 'Contact ID',
name: 'contactId',
type: 'number',
displayOptions: {
show: {
operation: ['delete'],
resource: ['contact'],
},
},
default: 0,
required: true,
description: 'ID of the contact to delete',
},
// ----------------------------------
// contact:get
// ----------------------------------
{
displayName: 'Contact ID',
name: 'contactId',
type: 'number',
displayOptions: {
show: {
operation: ['get'],
resource: ['contact'],
},
},
default: 0,
required: true,
description: 'ID of the contact to get',
},
// ----------------------------------
// contact:getAll
// ----------------------------------
...activeCampaignDefaultGetAllProperties('contact', 'getAll'),
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: ['getAll'],
resource: ['contact'],
},
},
default: {},
options: [
{
displayName: 'Datetime',
name: 'datetime',
type: 'dateTime',
default: '',
description: 'Contacts created on the specified date',
},
{
displayName: 'Email',
name: 'email',
type: 'string',
placeholder: 'name@email.com',
default: '',
description: 'Email address of the contact you want to get',
},
{
displayName: 'Email Like',
name: 'email_like',
type: 'string',
default: '',
description: 'Filter contacts that contain the given value in the email address',
},
{
displayName: 'Exclude',
name: 'exclude',
type: 'string',
default: '',
description: 'Exclude from the response the contact with the given ID',
},
{
displayName: 'Form ID',
name: 'formid',
type: 'string',
default: '',
description: 'Filter contacts associated with the given form',
},
{
displayName: 'List ID',
name: 'listid',
type: 'string',
default: '',
description: 'Filter contacts associated with the given list',
},
{
displayName: 'Search',
name: 'search',
type: 'string',
default: '',
description:
'Filter contacts that match the given value in the contact names, organization, phone or email',
},
{
displayName: 'Segment ID',
name: 'segmentid',
type: 'string',
default: '',
description: 'Return only contacts that match a list segment',
},
{
displayName: 'Series ID',
name: 'seriesid',
type: 'string',
default: '',
description: 'Filter contacts associated with the given automation',
},
{
displayName: 'Status',
name: 'status',
type: 'options',
options: [
{
name: 'Active',
value: 1,
},
{
name: 'Any',
value: -1,
},
{
name: 'Bounced',
value: 3,
},
{
name: 'Unconfirmed',
value: 0,
},
{
name: 'Unsubscribed',
value: 2,
},
],
default: '',
},
{
displayName: 'Tag ID',
name: 'tagid',
type: 'string',
default: '',
description: 'Filter contacts associated with the given tag',
},
{
displayName: 'Created Before',
name: 'filters[created_before]',
type: 'dateTime',
default: '',
description: 'Filter contacts that were created prior to this date',
},
{
displayName: 'Created After',
name: 'filters[created_after]',
type: 'dateTime',
default: '',
description: 'Filter contacts that were created after this date',
},
{
displayName: 'Updated Before',
name: 'filters[updated_before]',
type: 'dateTime',
default: '',
description: 'Filter contacts that were updated before this date',
},
{
displayName: 'Updated After',
name: 'filters[updated_after]',
type: 'dateTime',
default: '',
description: 'Filter contacts that were updated after this date',
},
{
displayName: 'Wait ID',
name: 'waitid',
type: 'string',
default: '',
description: 'Filter by contacts in the wait queue of an automation block',
},
{
displayName: 'Order By',
name: 'orderBy',
type: 'options',
options: [
{
name: 'Creation Date',
value: 'orders[cdate]',
description: 'Order contacts by creation date',
},
{
name: 'Email',
value: 'orders[email]',
description: 'Order contacts by email',
},
{
name: 'First Name',
value: 'orders[first_name]',
description: 'Order contacts by first name',
},
{
name: 'Last Name',
value: 'orders[last_name]',
description: 'Order contacts by last name',
},
{
name: 'Name',
value: 'orders[name]',
description: 'Order contacts by full name',
},
{
name: 'Score',
value: 'orders[score]',
description: 'Order contacts by score',
},
],
default: '',
},
],
},
];
@@ -0,0 +1,92 @@
import type { INodeProperties } from 'n8n-workflow';
export const contactListOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['contactList'],
},
},
options: [
{
name: 'Add',
value: 'add',
description: 'Add contact to a list',
action: 'Add a contact to a list',
},
{
name: 'Remove',
value: 'remove',
description: 'Remove contact from a list',
action: 'Remove a contact from a list',
},
],
default: 'add',
},
];
export const contactListFields: INodeProperties[] = [
// ----------------------------------
// contactList:add
// ----------------------------------
{
displayName: 'List ID',
name: 'listId',
type: 'number',
default: '',
required: true,
displayOptions: {
show: {
operation: ['add'],
resource: ['contactList'],
},
},
},
{
displayName: 'Contact ID',
name: 'contactId',
type: 'number',
default: '',
required: true,
displayOptions: {
show: {
operation: ['add'],
resource: ['contactList'],
},
},
},
// ----------------------------------
// contactList:remove
// ----------------------------------
{
displayName: 'List ID',
name: 'listId',
type: 'number',
default: '',
required: true,
displayOptions: {
show: {
operation: ['remove'],
resource: ['contactList'],
},
},
},
{
displayName: 'Contact ID',
name: 'contactId',
type: 'number',
default: '',
required: true,
displayOptions: {
show: {
operation: ['remove'],
resource: ['contactList'],
},
},
},
];
@@ -0,0 +1,84 @@
import type { INodeProperties } from 'n8n-workflow';
export const contactTagOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['contactTag'],
},
},
options: [
{
name: 'Add',
value: 'add',
description: 'Add a tag to a contact',
action: 'Add a contact tag',
},
{
name: 'Remove',
value: 'remove',
description: 'Remove a tag from a contact',
action: 'Remove a contact tag',
},
],
default: 'add',
},
];
export const contactTagFields: INodeProperties[] = [
// ----------------------------------
// contactTag:add
// ----------------------------------
{
displayName: 'Tag Name or ID',
name: 'tagId',
type: 'options',
description:
'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
typeOptions: {
loadOptionsMethod: 'getTags',
},
default: '',
required: true,
displayOptions: {
show: {
operation: ['add'],
resource: ['contactTag'],
},
},
},
{
displayName: 'Contact ID',
name: 'contactId',
type: 'number',
default: '',
required: true,
displayOptions: {
show: {
operation: ['add'],
resource: ['contactTag'],
},
},
},
// ----------------------------------
// contactTag:delete
// ----------------------------------
{
displayName: 'Contact Tag ID',
name: 'contactTagId',
type: 'number',
displayOptions: {
show: {
operation: ['remove'],
resource: ['contactTag'],
},
},
default: 0,
required: true,
description: 'ID of the contact tag to delete',
},
];
@@ -0,0 +1,425 @@
import type { INodeProperties } from 'n8n-workflow';
import { allCurrencies } from './currencies';
import { activeCampaignDefaultGetAllProperties } from './GenericFunctions';
export const dealOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['deal'],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create a deal',
action: 'Create a deal',
},
{
name: 'Create Note',
value: 'createNote',
description: 'Create a deal note',
action: 'Create a deal note',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete a deal',
action: 'Delete a deal',
},
{
name: 'Get',
value: 'get',
description: 'Get data of a deal',
action: 'Get a deal',
},
{
name: 'Get Many',
value: 'getAll',
description: 'Get data of many deals',
action: 'Get many deals',
},
{
name: 'Update',
value: 'update',
description: 'Update a deal',
action: 'Update a deal',
},
{
name: 'Update Deal Note',
value: 'updateNote',
description: 'Update a deal note',
action: 'Update a deal note',
},
],
default: 'create',
},
];
export const dealFields: INodeProperties[] = [
// ----------------------------------
// deal:create
// ----------------------------------
{
displayName: 'Title',
name: 'title',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['deal'],
},
},
description: 'The title of the deal',
},
{
displayName: "Deal's Contact ID",
name: 'contact',
type: 'number',
default: 0,
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['deal'],
},
},
description: "The ID of the deal's contact",
},
{
displayName: 'Deal Value',
name: 'value',
type: 'number',
default: 0,
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['deal'],
},
},
description: 'The value of the deal in cents',
},
{
displayName: 'Currency',
name: 'currency',
type: 'options',
default: 'eur',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['deal'],
},
},
options: allCurrencies,
description: 'The currency of the deal in 3-character ISO format',
},
{
displayName: 'Deal Pipeline ID',
name: 'group',
type: 'string',
default: '',
displayOptions: {
show: {
operation: ['create'],
resource: ['deal'],
},
},
description: 'The pipeline ID of the deal',
},
{
displayName: 'Deal Stage ID',
name: 'stage',
type: 'string',
default: '',
displayOptions: {
show: {
operation: ['create'],
resource: ['deal'],
},
},
description: 'The stage ID of the deal',
},
{
displayName: 'Deal Owner ID',
name: 'owner',
type: 'string',
default: '',
displayOptions: {
show: {
operation: ['create'],
resource: ['deal'],
},
},
description: 'The owner ID of the deal',
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: ['create'],
resource: ['deal'],
},
},
default: {},
options: [
{
displayName: 'Description',
name: 'description',
type: 'string',
default: '',
description: 'The description of the deal',
},
{
displayName: 'Deal Percentage',
name: 'percent',
type: 'number',
default: 0,
description: 'The percentage of the deal',
},
{
displayName: 'Deal Status',
name: 'status',
type: 'number',
default: 0,
description: 'The status of the deal',
},
],
},
// ----------------------------------
// deal:update
// ----------------------------------
{
displayName: 'Deal ID',
name: 'dealId',
type: 'number',
displayOptions: {
show: {
operation: ['update'],
resource: ['deal'],
},
},
default: 0,
required: true,
description: 'ID of the deal to update',
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
description: 'The fields to update',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: ['update'],
resource: ['deal'],
},
},
default: {},
options: [
{
displayName: 'Title',
name: 'title',
type: 'string',
default: '',
description: 'The title of the deal',
},
{
displayName: "Deal's Contact ID",
name: 'contact',
type: 'number',
default: 0,
description: "The ID of the deal's contact",
},
{
displayName: 'Deal Value',
name: 'value',
type: 'number',
default: 0,
description: 'The value of the deal in cents',
},
{
displayName: 'Currency',
name: 'currency',
type: 'options',
options: allCurrencies,
default: 'eur',
description: 'The currency of the deal in 3-character ISO format',
},
{
displayName: 'Description',
name: 'description',
type: 'string',
default: '',
description: 'The description of the deal',
},
{
displayName: 'Deal Pipeline ID',
name: 'group',
type: 'string',
default: '',
description: 'The pipeline ID of the deal',
},
{
displayName: 'Deal Stage ID',
name: 'stage',
type: 'string',
default: '',
description: 'The stage ID of the deal',
},
{
displayName: 'Deal Owner ID',
name: 'owner',
type: 'string',
default: '',
description: 'The owner ID of the deal',
},
{
displayName: 'Deal Percentage',
name: 'percent',
type: 'number',
default: 0,
description: 'The percentage of the deal',
},
{
displayName: 'Deal Status',
name: 'status',
type: 'number',
default: 0,
description: 'The status of the deal',
},
],
},
// ----------------------------------
// deal:delete
// ----------------------------------
{
displayName: 'Deal ID',
name: 'dealId',
type: 'number',
default: 0,
required: true,
displayOptions: {
show: {
operation: ['delete'],
resource: ['deal'],
},
},
description: 'The ID of the deal to delete',
},
// ----------------------------------
// deal:get
// ----------------------------------
{
displayName: 'Deal ID',
name: 'dealId',
type: 'number',
default: 0,
required: true,
displayOptions: {
show: {
operation: ['get'],
resource: ['deal'],
},
},
description: 'The ID of the deal to get',
},
// ----------------------------------
// deal:getAll
// ----------------------------------
...activeCampaignDefaultGetAllProperties('deal', 'getAll'),
// ----------------------------------
// dealNote:create
// ----------------------------------
{
displayName: 'Deal ID',
name: 'dealId',
type: 'number',
default: '',
required: true,
displayOptions: {
show: {
operation: ['createNote'],
resource: ['deal'],
},
},
description: 'The ID of the deal note',
},
{
displayName: 'Deal Note',
name: 'dealNote',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
operation: ['createNote'],
resource: ['deal'],
},
},
description: 'The content of the deal note',
},
// ----------------------------------
// dealNote:update
// ----------------------------------
{
displayName: 'Deal ID',
name: 'dealId',
type: 'number',
default: '',
required: true,
displayOptions: {
show: {
operation: ['updateNote'],
resource: ['deal'],
},
},
description: 'The ID of the deal note',
},
{
displayName: 'Deal Note ID',
name: 'dealNoteId',
type: 'number',
default: '',
required: true,
displayOptions: {
show: {
operation: ['updateNote'],
resource: ['deal'],
},
},
description: 'The ID of the deal note',
},
{
displayName: 'Deal Note',
name: 'dealNote',
type: 'string',
default: '',
displayOptions: {
show: {
operation: ['updateNote'],
resource: ['deal'],
},
},
description: 'The content of the deal note',
},
];
@@ -0,0 +1,226 @@
import type { INodeProperties } from 'n8n-workflow';
import { activeCampaignDefaultGetAllProperties } from './GenericFunctions';
export const ecomCustomerOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['ecommerceCustomer'],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create a E-commerce Customer',
action: 'Create an e-commerce customer',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete a E-commerce Customer',
action: 'Delete an e-commerce customer',
},
{
name: 'Get',
value: 'get',
description: 'Get data of a E-commerce Customer',
action: 'Get an e-commerce customer',
},
{
name: 'Get Many',
value: 'getAll',
description: 'Get data of many E-commerce Customers',
action: 'Get many e-commerce customers',
},
{
name: 'Update',
value: 'update',
description: 'Update a E-commerce Customer',
action: 'Update an e-commerce customer',
},
],
default: 'create',
},
];
export const ecomCustomerFields: INodeProperties[] = [
// ----------------------------------
// ecommerceCustomer:create
// ----------------------------------
{
displayName: 'Service ID',
name: 'connectionid',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['ecommerceCustomer'],
},
},
description: 'The ID of the connection object for the service where the customer originates',
},
{
displayName: 'Customer ID',
name: 'externalid',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['ecommerceCustomer'],
},
},
description: 'The ID of the customer in the external service',
},
{
displayName: 'Customer Email',
name: 'email',
type: 'string',
placeholder: 'name@email.com',
default: '',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['ecommerceCustomer'],
},
},
description: 'The email address of the customer',
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: ['create'],
resource: ['ecommerceCustomer'],
},
},
default: {},
options: [
{
displayName: 'Accepts Marketing',
name: 'acceptsMarketing',
type: 'boolean',
default: false,
description: 'Whether customer has opt-ed in to marketing communications',
},
],
},
// ----------------------------------
// ecommerceCustomer:update
// ----------------------------------
{
displayName: 'Customer ID',
name: 'ecommerceCustomerId',
type: 'number',
displayOptions: {
show: {
operation: ['update'],
resource: ['ecommerceCustomer'],
},
},
default: 0,
required: true,
description: 'ID of the E-commerce customer to update',
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
description: 'The fields to update',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: ['update'],
resource: ['ecommerceCustomer'],
},
},
default: {},
options: [
{
displayName: 'Service ID',
name: 'connectionid',
type: 'string',
default: '',
description:
'The ID of the connection object for the service where the customer originates',
},
{
displayName: 'Customer ID',
name: 'externalid',
type: 'string',
default: '',
description: 'The ID of the customer in the external service',
},
{
displayName: 'Customer Email',
name: 'email',
type: 'string',
placeholder: 'name@email.com',
default: '',
description: 'The email address of the customer',
},
{
displayName: 'Accepts Marketing',
name: 'acceptsMarketing',
type: 'boolean',
default: false,
description: 'Whether customer has opt-ed in to marketing communications',
},
],
},
// ----------------------------------
// ecommerceCustomer:delete
// ----------------------------------
{
displayName: 'Customer ID',
name: 'ecommerceCustomerId',
type: 'number',
displayOptions: {
show: {
operation: ['delete'],
resource: ['ecommerceCustomer'],
},
},
default: 0,
required: true,
description: 'ID of the E-commerce customer to delete',
},
// ----------------------------------
// ecommerceCustomer:get
// ----------------------------------
{
displayName: 'Customer ID',
name: 'ecommerceCustomerId',
type: 'number',
displayOptions: {
show: {
operation: ['get'],
resource: ['ecommerceCustomer'],
},
},
default: 0,
required: true,
description: 'ID of the E-commerce customer to get',
},
// ----------------------------------
// ecommerceCustomer:getAll
// ----------------------------------
...activeCampaignDefaultGetAllProperties('ecommerceCustomer', 'getAll'),
];
@@ -0,0 +1,627 @@
import type { INodeProperties } from 'n8n-workflow';
import { allCurrencies } from './currencies';
import { activeCampaignDefaultGetAllProperties } from './GenericFunctions';
export const ecomOrderOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['ecommerceOrder'],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create a order',
action: 'Create an e-commerce order',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete a order',
action: 'Delete an e-commerce order',
},
{
name: 'Get',
value: 'get',
description: 'Get data of a order',
action: 'Get an e-commerce order',
},
{
name: 'Get Many',
value: 'getAll',
description: 'Get data of many orders',
action: 'Get many e-commerce orders',
},
{
name: 'Update',
value: 'update',
description: 'Update a order',
action: 'Update an e-commerce order',
},
],
default: 'create',
},
];
export const ecomOrderFields: INodeProperties[] = [
// ----------------------------------
// ecommerceOrder:create
// ----------------------------------
{
displayName: 'External ID',
name: 'externalid',
type: 'string',
default: '',
displayOptions: {
show: {
operation: ['create'],
resource: ['ecommerceOrder'],
},
},
description:
'The ID of the order in the external service. ONLY REQUIRED IF EXTERNALCHECKOUTID NOT INCLUDED.',
},
{
displayName: 'External Checkout ID',
name: 'externalcheckoutid',
type: 'string',
default: '',
displayOptions: {
show: {
operation: ['create'],
resource: ['ecommerceOrder'],
},
},
description:
'The ID of the cart in the external service. ONLY REQUIRED IF EXTERNALID IS NOT INCLUDED.',
},
{
displayName: 'Order Source',
name: 'source',
type: 'number',
default: 0,
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['ecommerceOrder'],
},
},
description:
'The order source code (0 - will not trigger automations, 1 - will trigger automations)',
},
{
displayName: 'Customer Email',
name: 'email',
type: 'string',
placeholder: 'name@email.com',
default: '',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['ecommerceOrder'],
},
},
description: 'The email address of the customer who placed the order',
},
{
displayName: 'Total Price',
name: 'totalPrice',
type: 'number',
default: 0,
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['ecommerceOrder'],
},
},
description:
'The total price of the order in cents, including tax and shipping charges. (i.e. $456.78 => 45678). Must be greater than or equal to zero.',
},
{
displayName: 'Order Currency',
name: 'currency',
type: 'options',
default: 'eur',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['ecommerceOrder'],
},
},
options: allCurrencies,
description: 'The currency of the order (3-digit ISO code, e.g., "USD")',
},
{
displayName: 'Connection ID',
name: 'connectionid',
type: 'number',
default: 0,
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['ecommerceOrder'],
},
},
description: 'The ID of the connection from which this order originated',
},
{
displayName: 'Customer ID',
name: 'customerid',
type: 'number',
default: 0,
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['ecommerceOrder'],
},
},
description: 'The ID of the customer associated with this order',
},
{
displayName: 'Creation Date',
name: 'externalCreatedDate',
type: 'dateTime',
default: '',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['ecommerceOrder'],
},
},
description: 'The date the order was placed',
},
{
displayName: 'Abandoning Date',
name: 'abandonedDate',
type: 'dateTime',
default: '',
displayOptions: {
show: {
operation: ['create'],
resource: ['ecommerceOrder'],
},
},
description: 'The date the cart was abandoned. REQUIRED ONLY IF INCLUDING EXTERNALCHECKOUTID.',
},
{
displayName: 'Products',
name: 'orderProducts',
type: 'collection',
typeOptions: {
multipleValues: true,
multipleValueButtonText: 'Add product',
},
displayOptions: {
show: {
operation: ['create'],
resource: ['ecommerceOrder'],
},
},
default: {},
description: 'All ordered products',
placeholder: 'Add product field',
options: [
{
displayName: 'Name',
name: 'name',
type: 'string',
default: '',
description: 'The name of the product',
},
{
displayName: 'Price',
name: 'price',
type: 'number',
default: 0,
description:
'The price of the product, in cents. (i.e. $456.78 => 45678). Must be greater than or equal to zero.',
},
{
displayName: 'Product Quantity',
name: 'quantity',
type: 'number',
default: 0,
description: 'The quantity ordered',
},
{
displayName: 'Product External ID',
name: 'externalid',
type: 'string',
default: '',
description: 'The ID of the product in the external service',
},
{
displayName: 'Product Category',
name: 'category',
type: 'string',
default: '',
description: 'The category of the product',
},
{
displayName: 'SKU',
name: 'sku',
type: 'string',
default: '',
description: 'The SKU for the product',
},
{
displayName: 'Description',
name: 'description',
type: 'string',
default: '',
description: 'The description of the product',
},
{
displayName: 'Image URL',
name: 'imageUrl',
type: 'string',
default: '',
description: 'An Image URL that displays an image of the product',
},
{
displayName: 'Product URL',
name: 'productUrl',
type: 'string',
default: '',
description: 'A URL linking to the product in your store',
},
],
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: ['create'],
resource: ['ecommerceOrder'],
},
},
default: {},
options: [
{
displayName: 'Shipping Amount',
name: 'shippingAmount',
type: 'number',
default: 0,
description: 'The total shipping amount for the order in cents',
},
{
displayName: 'Tax Amount',
name: 'taxAmount',
type: 'number',
default: 0,
description: 'The total tax amount for the order in cents',
},
{
displayName: 'Discount Amount',
name: 'discountAmount',
type: 'number',
default: 0,
description: 'The total discount amount for the order in cents',
},
{
displayName: 'Order URL',
name: 'orderUrl',
type: 'string',
default: '',
description: 'The URL for the order in the external service',
},
{
displayName: 'External Updated Date',
name: 'externalUpdatedDate',
type: 'dateTime',
default: '',
description: 'The date the order was updated',
},
{
displayName: 'Shipping Method',
name: 'shippingMethod',
type: 'string',
default: '',
description: 'The shipping method of the order',
},
{
displayName: 'Order Number',
name: 'orderNumber',
type: 'string',
default: '',
description: 'The order number. This can be different than the externalid.',
},
],
},
// ----------------------------------
// ecommerceOrder:update
// ----------------------------------
{
displayName: 'Order ID',
name: 'orderId',
type: 'number',
default: 0,
displayOptions: {
show: {
operation: ['update'],
resource: ['ecommerceOrder'],
},
},
description: 'The ID of the e-commerce order',
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: ['update'],
resource: ['ecommerceOrder'],
},
},
default: {},
options: [
{
displayName: 'External ID',
name: 'externalid',
type: 'string',
default: '',
description:
'The ID of the order in the external service. ONLY REQUIRED IF EXTERNALCHECKOUTID NOT INCLUDED.',
},
{
displayName: 'External Checkout ID',
name: 'externalcheckoutid',
type: 'string',
default: '',
description:
'The ID of the cart in the external service. ONLY REQUIRED IF EXTERNALID IS NOT INCLUDED.',
},
{
displayName: 'Order Source',
name: 'source',
type: 'number',
default: 0,
description:
'The order source code (0 - will not trigger automations, 1 - will trigger automations)',
},
{
displayName: 'Customer Email',
name: 'email',
type: 'string',
placeholder: 'name@email.com',
default: '',
description: 'The email address of the customer who placed the order',
},
{
displayName: 'Total Price',
name: 'totalPrice',
type: 'number',
default: 0,
description:
'The total price of the order in cents, including tax and shipping charges. (i.e. $456.78 => 45678). Must be greater than or equal to zero.',
},
{
displayName: 'Order Currency',
name: 'currency',
type: 'options',
default: 'eur',
options: allCurrencies,
description: 'The currency of the order (3-digit ISO code, e.g., "USD")',
},
{
displayName: 'Connection ID',
name: 'connectionid',
type: 'number',
default: 0,
description: 'The ID of the connection from which this order originated',
},
{
displayName: 'Customer ID',
name: 'customerid',
type: 'number',
default: 0,
description: 'The ID of the customer associated with this order',
},
{
displayName: 'Creation Date',
name: 'externalupdatedDate',
type: 'dateTime',
default: '',
description: 'The date the order was placed',
},
{
displayName: 'Abandoning Date',
name: 'abandonedDate',
type: 'dateTime',
default: '',
description:
'The date the cart was abandoned. REQUIRED ONLY IF INCLUDING EXTERNALCHECKOUTID.',
},
{
displayName: 'Shipping Amount',
name: 'shippingAmount',
type: 'number',
default: 0,
description: 'The total shipping amount for the order in cents',
},
{
displayName: 'Tax Amount',
name: 'taxAmount',
type: 'number',
default: 0,
description: 'The total tax amount for the order in cents',
},
{
displayName: 'Discount Amount',
name: 'discountAmount',
type: 'number',
default: 0,
description: 'The total discount amount for the order in cents',
},
{
displayName: 'Order URL',
name: 'orderUrl',
type: 'string',
default: '',
description: 'The URL for the order in the external service',
},
{
displayName: 'External Updated Date',
name: 'externalUpdatedDate',
type: 'dateTime',
default: '',
description: 'The date the order was updated',
},
{
displayName: 'Shipping Method',
name: 'shippingMethod',
type: 'string',
default: '',
description: 'The shipping method of the order',
},
{
displayName: 'Order Number',
name: 'orderNumber',
type: 'string',
default: '',
description: 'The order number. This can be different than the externalid.',
},
{
displayName: 'Products',
name: 'orderProducts',
type: 'collection',
typeOptions: {
multipleValues: true,
multipleValueButtonText: 'Add product',
},
default: {},
description: 'All ordered products',
placeholder: 'Add product field',
options: [
{
displayName: 'Name',
name: 'name',
type: 'string',
default: '',
description: 'The name of the product',
},
{
displayName: 'Price',
name: 'price',
type: 'number',
default: 0,
description:
'The price of the product, in cents. (i.e. $456.78 => 45678). Must be greater than or equal to zero.',
},
{
displayName: 'Product Quantity',
name: 'quantity',
type: 'number',
default: 0,
description: 'The quantity ordered',
},
{
displayName: 'Product External ID',
name: 'externalid',
type: 'string',
default: '',
description: 'The ID of the product in the external service',
},
{
displayName: 'Product Category',
name: 'category',
type: 'string',
default: '',
description: 'The category of the product',
},
{
displayName: 'SKU',
name: 'sku',
type: 'string',
default: '',
description: 'The SKU for the product',
},
{
displayName: 'Description',
name: 'description',
type: 'string',
default: '',
description: 'The description of the product',
},
{
displayName: 'Image URL',
name: 'imageUrl',
type: 'string',
default: '',
description: 'An Image URL that displays an image of the product',
},
{
displayName: 'Product URL',
name: 'productUrl',
type: 'string',
default: '',
description: 'A URL linking to the product in your store',
},
],
},
],
},
// ----------------------------------
// ecommerceOrder:delete
// ----------------------------------
{
displayName: 'Order ID',
name: 'orderId',
type: 'number',
default: 0,
displayOptions: {
show: {
operation: ['delete'],
resource: ['ecommerceOrder'],
},
},
description: 'The ID of the e-commerce order',
},
// ----------------------------------
// ecommerceOrder:get
// ----------------------------------
{
displayName: 'Order ID',
name: 'orderId',
type: 'number',
default: 0,
displayOptions: {
show: {
operation: ['get'],
resource: ['ecommerceOrder'],
},
},
description: 'The ID of the e-commerce order',
},
// ----------------------------------
// ecommerceOrder:getAll
// ----------------------------------
...activeCampaignDefaultGetAllProperties('ecommerceOrder', 'getAll'),
];
@@ -0,0 +1,79 @@
import type { INodeProperties } from 'n8n-workflow';
import { activeCampaignDefaultGetAllProperties } from './GenericFunctions';
export const ecomOrderProductsOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['ecommerceOrderProducts'],
},
},
options: [
{
name: 'Get Many',
value: 'getAll',
description: 'Get data of many order products',
action: 'Get many ecommerce orders',
},
{
name: 'Get by Product ID',
value: 'getByProductId',
description: 'Get data of a ordered product',
action: 'Get an e-commerce order product by product ID',
},
{
name: 'Get by Order ID',
value: 'getByOrderId',
description: "Get data of an order's products",
action: 'Get an e-commerce order product by order ID',
},
],
default: 'getAll',
},
];
export const ecomOrderProductsFields: INodeProperties[] = [
// ----------------------------------
// ecommerceOrderProducts:getByOrderId
// ----------------------------------
{
displayName: 'Order ID',
name: 'orderId',
type: 'number',
default: 0,
displayOptions: {
show: {
operation: ['getByOrderId'],
resource: ['ecommerceOrderProducts'],
},
},
description: "The ID of the order whose products you'd like returned",
},
// ----------------------------------
// ecommerceOrderProducts:getByProductId
// ----------------------------------
{
displayName: 'Product ID',
name: 'procuctId',
type: 'number',
default: 0,
displayOptions: {
show: {
operation: ['getByProductId'],
resource: ['ecommerceOrderProducts'],
},
},
description: "The ID of the product you'd like returned",
},
// ----------------------------------
// ecommerceOrderProducts:getAll
// ----------------------------------
...activeCampaignDefaultGetAllProperties('ecommerceOrderProducts', 'getAll'),
];
@@ -0,0 +1,166 @@
import type {
IDataObject,
IExecuteFunctions,
IHookFunctions,
ILoadOptionsFunctions,
INodeProperties,
JsonObject,
IRequestOptions,
IHttpRequestMethods,
} from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export interface IProduct {
fields: {
item?: object[];
};
}
/**
* Make an API request to ActiveCampaign
*
*/
export async function activeCampaignApiRequest(
this: IHookFunctions | IExecuteFunctions | ILoadOptionsFunctions,
method: IHttpRequestMethods,
endpoint: string,
body: IDataObject,
query?: IDataObject,
dataKey?: string,
): Promise<any> {
const credentials = await this.getCredentials('activeCampaignApi');
if (query === undefined) {
query = {};
}
const options: IRequestOptions = {
headers: {},
method,
qs: query,
uri: `${credentials.apiUrl}${endpoint}`,
json: true,
};
if (Object.keys(body).length !== 0) {
options.body = body;
}
try {
const responseData = await this.helpers.requestWithAuthentication.call(
this,
'activeCampaignApi',
options,
);
if (responseData.success === false) {
throw new NodeApiError(this.getNode(), responseData as JsonObject);
}
if (dataKey === undefined) {
return responseData;
} else {
return responseData[dataKey] as IDataObject;
}
} catch (error) {
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
/**
* Make an API request to paginated ActiveCampaign endpoint
* and return all results
*
* @param {(IHookFunctions | IExecuteFunctions)} this
*/
export async function activeCampaignApiRequestAllItems(
this: IHookFunctions | IExecuteFunctions | ILoadOptionsFunctions,
method: IHttpRequestMethods,
endpoint: string,
body: IDataObject,
query?: IDataObject,
dataKey?: string,
): Promise<any> {
if (query === undefined) {
query = {};
}
query.limit = 100;
query.offset = 0;
const returnData: IDataObject[] = [];
let responseData;
let itemsReceived = 0;
do {
responseData = await activeCampaignApiRequest.call(this, method, endpoint, body, query);
if (dataKey === undefined) {
returnData.push.apply(returnData, responseData as IDataObject[]);
if (returnData !== undefined) {
itemsReceived += returnData.length;
}
} else {
returnData.push.apply(returnData, responseData[dataKey] as IDataObject[]);
if (responseData[dataKey] !== undefined) {
itemsReceived += responseData[dataKey].length;
}
}
query.offset = itemsReceived;
} while (responseData.meta?.total !== undefined && responseData.meta.total > itemsReceived);
return returnData;
}
export function activeCampaignDefaultGetAllProperties(
resource: string,
operation: string,
): INodeProperties[] {
return [
{
displayName: 'Return All',
name: 'returnAll',
type: 'boolean',
displayOptions: {
show: {
operation: [operation],
resource: [resource],
},
},
default: false,
description: 'Whether to return all results or only up to a given limit',
},
{
displayName: 'Limit',
name: 'limit',
type: 'number',
displayOptions: {
show: {
operation: [operation],
resource: [resource],
returnAll: [false],
},
},
typeOptions: {
minValue: 1,
maxValue: 500,
},
default: 100,
description: 'Max number of results to return',
},
{
displayName: 'Simplify',
name: 'simple',
type: 'boolean',
displayOptions: {
show: {
operation: [operation],
resource: [resource],
},
},
default: true,
description: 'Whether to return a simplified version of the response instead of the raw data',
},
];
}
@@ -0,0 +1,33 @@
import type { INodeProperties } from 'n8n-workflow';
import { activeCampaignDefaultGetAllProperties } from './GenericFunctions';
export const listOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['list'],
},
},
options: [
{
name: 'Get Many',
value: 'getAll',
description: 'Get many lists',
action: 'Get many lists',
},
],
default: 'getAll',
},
];
export const listFields: INodeProperties[] = [
// ----------------------------------
// list:getAll
// ----------------------------------
...activeCampaignDefaultGetAllProperties('list', 'getAll'),
];
@@ -0,0 +1,203 @@
import type { INodeProperties } from 'n8n-workflow';
import { activeCampaignDefaultGetAllProperties } from './GenericFunctions';
export const tagOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['tag'],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create a tag',
action: 'Create a tag',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete a tag',
action: 'Delete a tag',
},
{
name: 'Get',
value: 'get',
description: 'Get data of a tag',
action: 'Get a tag',
},
{
name: 'Get Many',
value: 'getAll',
description: 'Get data of many tags',
action: 'Get many tags',
},
{
name: 'Update',
value: 'update',
description: 'Update a tag',
action: 'Update a tag',
},
],
default: 'create',
},
];
export const tagFields: INodeProperties[] = [
// ----------------------------------
// contact:create
// ----------------------------------
{
displayName: 'Type',
name: 'tagType',
type: 'options',
default: 'contact',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['tag'],
},
},
options: [
{
name: 'Contact',
value: 'contact',
description: 'Tag contact',
},
{
name: 'Template',
value: 'template',
description: 'Tag template',
},
],
description: 'Tag-type of the new tag',
},
{
displayName: 'Name',
name: 'name',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
operation: ['create'],
resource: ['tag'],
},
},
description: 'Name of the new tag',
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: ['create'],
resource: ['tag'],
},
},
default: {},
options: [
{
displayName: 'Description',
name: 'description',
type: 'string',
default: '',
description: 'Description of the new tag',
},
],
},
// ----------------------------------
// tag:update
// ----------------------------------
{
displayName: 'Tag ID',
name: 'tagId',
type: 'number',
displayOptions: {
show: {
operation: ['update'],
resource: ['tag'],
},
},
default: 0,
required: true,
description: 'ID of the tag to update',
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
description: 'The fields to update',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: ['update'],
resource: ['tag'],
},
},
default: {},
options: [
{
displayName: 'Tag',
name: 'tag',
type: 'string',
default: '',
description: 'Name of the contact',
},
{
displayName: 'Description',
name: 'description',
type: 'string',
default: '',
description: 'Description of the tag being updated',
},
],
},
// ----------------------------------
// tag:delete
// ----------------------------------
{
displayName: 'Tag ID',
name: 'tagId',
type: 'number',
displayOptions: {
show: {
operation: ['delete'],
resource: ['tag'],
},
},
default: 0,
required: true,
description: 'ID of the tag to delete',
},
// ----------------------------------
// contact:get
// ----------------------------------
{
displayName: 'Tag ID',
name: 'tagId',
type: 'number',
displayOptions: {
show: {
operation: ['get'],
resource: ['tag'],
},
},
default: 0,
required: true,
description: 'ID of the tag to get',
},
// ----------------------------------
// tag:getAll
// ----------------------------------
...activeCampaignDefaultGetAllProperties('tag', 'getAll'),
];
@@ -0,0 +1,51 @@
{
"type": "object",
"properties": {
"account": {
"type": "object",
"properties": {
"accountUrl": {
"type": "string"
},
"createdTimestamp": {
"type": "string"
},
"updatedTimestamp": {
"type": "string"
},
"id": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"accountContacts": {
"type": "string"
},
"accountCustomFieldData": {
"type": "string"
},
"contactEmails": {
"type": "string"
},
"emailActivities": {
"type": "string"
},
"notes": {
"type": "string"
},
"owner": {
"type": "string"
}
}
},
"name": {
"type": "string"
},
"owner": {
"type": "string"
}
}
}
}
}
@@ -0,0 +1,50 @@
{
"type": "object",
"properties": {
"contactCount": {
"type": "string"
},
"createdTimestamp": {
"type": "string"
},
"dealCount": {
"type": "string"
},
"id": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"accountContacts": {
"type": "string"
},
"accountCustomFieldData": {
"type": "string"
},
"contactEmails": {
"type": "string"
},
"emailActivities": {
"type": "string"
},
"notes": {
"type": "string"
},
"owner": {
"type": "string"
}
}
},
"name": {
"type": "string"
},
"owner": {
"type": "string"
},
"updatedTimestamp": {
"type": "string"
}
},
"version": 1
}
@@ -0,0 +1,146 @@
{
"type": "object",
"properties": {
"anonymized": {
"type": "string"
},
"bounced_hard": {
"type": "string"
},
"bounced_soft": {
"type": "string"
},
"cdate": {
"type": "string"
},
"created_timestamp": {
"type": "string"
},
"created_utc_timestamp": {
"type": "string"
},
"deleted": {
"type": "string"
},
"email": {
"type": "string"
},
"email_domain": {
"type": "string"
},
"email_local": {
"type": "string"
},
"fieldValues": {
"type": "array",
"items": {
"type": "string"
}
},
"firstName": {
"type": "string"
},
"gravatar": {
"type": "string"
},
"hash": {
"type": "string"
},
"id": {
"type": "string"
},
"ip": {
"type": "string"
},
"lastName": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"automationEntryCounts": {
"type": "string"
},
"bounceLogs": {
"type": "string"
},
"contactAutomations": {
"type": "string"
},
"contactData": {
"type": "string"
},
"contactDeals": {
"type": "string"
},
"contactGoals": {
"type": "string"
},
"contactLists": {
"type": "string"
},
"contactLogs": {
"type": "string"
},
"contactTags": {
"type": "string"
},
"deals": {
"type": "string"
},
"fieldValues": {
"type": "string"
},
"geoIps": {
"type": "string"
},
"notes": {
"type": "string"
},
"organization": {
"type": "string"
},
"plusAppend": {
"type": "string"
},
"scoreValues": {
"type": "string"
},
"trackingLogs": {
"type": "string"
}
}
},
"mpp_tracking": {
"type": "string"
},
"orgid": {
"type": "string"
},
"orgname": {
"type": "string"
},
"phone": {
"type": "string"
},
"segmentio_id": {
"type": "string"
},
"sentcnt": {
"type": "string"
},
"socialdata_lastcheck": {
"type": "null"
},
"udate": {
"type": "string"
},
"updated_timestamp": {
"type": "string"
},
"updated_utc_timestamp": {
"type": "string"
}
},
"version": 1
}
@@ -0,0 +1,660 @@
{
"type": "object",
"properties": {
"accountContacts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"account": {
"type": "string"
},
"contact": {
"type": "string"
},
"createdTimestamp": {
"type": "string"
},
"id": {
"type": "string"
},
"jobTitle": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"account": {
"type": "string"
},
"contact": {
"type": "string"
}
}
},
"updatedTimestamp": {
"type": "string"
}
}
}
},
"contact": {
"type": "object",
"properties": {
"accountContacts": {
"type": "array",
"items": {
"type": "string"
}
},
"anonymized": {
"type": "string"
},
"bounced_hard": {
"type": "string"
},
"bounced_soft": {
"type": "string"
},
"cdate": {
"type": "string"
},
"contactAutomations": {
"type": "array",
"items": {
"type": "string"
}
},
"contactData": {
"type": "string"
},
"contactLists": {
"type": "array",
"items": {
"type": "string"
}
},
"created_timestamp": {
"type": "string"
},
"created_utc_timestamp": {
"type": "string"
},
"deals": {
"type": "array",
"items": {
"type": "string"
}
},
"deleted": {
"type": "string"
},
"deleted_at": {
"type": "null"
},
"email": {
"type": "string"
},
"email_domain": {
"type": "string"
},
"email_local": {
"type": "string"
},
"fieldValues": {
"type": "array",
"items": {
"type": "string"
}
},
"firstName": {
"type": "string"
},
"geoIps": {
"type": "array",
"items": {
"type": "string"
}
},
"gravatar": {
"type": "string"
},
"hash": {
"type": "string"
},
"id": {
"type": "string"
},
"ip": {
"type": "string"
},
"lastName": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"accountContacts": {
"type": "string"
},
"automationEntryCounts": {
"type": "string"
},
"bounceLogs": {
"type": "string"
},
"contactAutomations": {
"type": "string"
},
"contactData": {
"type": "string"
},
"contactDeals": {
"type": "string"
},
"contactGoals": {
"type": "string"
},
"contactLists": {
"type": "string"
},
"contactLogs": {
"type": "string"
},
"contactTags": {
"type": "string"
},
"deals": {
"type": "string"
},
"fieldValues": {
"type": "string"
},
"geoIps": {
"type": "string"
},
"notes": {
"type": "string"
},
"organization": {
"type": "string"
},
"plusAppend": {
"type": "string"
},
"scoreValues": {
"type": "string"
},
"trackingLogs": {
"type": "string"
}
}
},
"mpp_tracking": {
"type": "string"
},
"orgid": {
"type": "string"
},
"orgname": {
"type": "string"
},
"phone": {
"type": "string"
},
"segmentio_id": {
"type": "string"
},
"sentcnt": {
"type": "string"
},
"socialdata_lastcheck": {
"type": "null"
},
"udate": {
"type": "string"
},
"updated_timestamp": {
"type": "string"
},
"updated_utc_timestamp": {
"type": "string"
}
}
},
"contactAutomations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"adddate": {
"type": "string"
},
"automation": {
"type": "string"
},
"completed": {
"type": "integer"
},
"completedElements": {
"type": "integer"
},
"completeValue": {
"type": "integer"
},
"contact": {
"type": "string"
},
"id": {
"type": "string"
},
"lastblock": {
"type": "string"
},
"lastdate": {
"type": "string"
},
"lastlogid": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"automation": {
"type": "string"
},
"automationLogs": {
"type": "string"
},
"contact": {
"type": "string"
},
"contactGoals": {
"type": "string"
}
}
},
"seriesid": {
"type": "string"
},
"startid": {
"type": "string"
},
"status": {
"type": "string"
},
"totalElements": {
"type": "integer"
}
}
}
},
"contactData": {
"type": "array",
"items": {
"type": "object",
"properties": {
"contact": {
"type": "string"
},
"created_timestamp": {
"type": "string"
},
"fb_id": {
"type": "string"
},
"fb_name": {
"type": "string"
},
"ga_campaign_content": {
"type": "string"
},
"ga_campaign_customsegment": {
"type": "string"
},
"ga_campaign_medium": {
"type": "string"
},
"ga_campaign_name": {
"type": "string"
},
"ga_campaign_source": {
"type": "string"
},
"ga_campaign_term": {
"type": "string"
},
"ga_first_visit": {
"type": "null"
},
"ga_times_visited": {
"type": "string"
},
"geo_country": {
"type": "string"
},
"geoArea": {
"type": "string"
},
"geoCity": {
"type": "string"
},
"geoCountry2": {
"type": "string"
},
"geoIp4": {
"type": "string"
},
"geoLat": {
"type": "string"
},
"geoLon": {
"type": "string"
},
"geoState": {
"type": "string"
},
"geoTz": {
"type": "string"
},
"geoTzOffset": {
"type": "string"
},
"geoZip": {
"type": "string"
},
"id": {
"type": "string"
},
"tstamp": {
"type": "string"
},
"tw_id": {
"type": "string"
},
"updated_timestamp": {
"type": "string"
}
}
}
},
"contactLists": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autosyncLog": {
"type": "null"
},
"contact": {
"type": "string"
},
"created_timestamp": {
"type": "string"
},
"first_name": {
"type": "string"
},
"id": {
"type": "string"
},
"ip4_last": {
"type": "string"
},
"ip4Sub": {
"type": "string"
},
"ip4Unsub": {
"type": "string"
},
"last_name": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"automation": {
"type": "string"
},
"autosyncLog": {
"type": "string"
},
"campaign": {
"type": "string"
},
"contact": {
"type": "string"
},
"form": {
"type": "string"
},
"list": {
"type": "string"
},
"message": {
"type": "string"
},
"unsubscribeAutomation": {
"type": "string"
}
}
},
"list": {
"type": "string"
},
"message": {
"type": "null"
},
"responder": {
"type": "string"
},
"sdate": {
"type": "string"
},
"seriesid": {
"type": "string"
},
"sourceid": {
"type": "string"
},
"status": {
"type": "string"
},
"sync": {
"type": "string"
},
"updated_timestamp": {
"type": "string"
}
}
}
},
"deals": {
"type": "array",
"items": {
"type": "object",
"properties": {
"activitycount": {
"type": "string"
},
"cdate": {
"type": "string"
},
"contact": {
"type": "string"
},
"currency": {
"type": "string"
},
"description": {
"type": "string"
},
"group": {
"type": "string"
},
"hash": {
"type": "string"
},
"id": {
"type": "string"
},
"isDisabled": {
"type": "boolean"
},
"links": {
"type": "object",
"properties": {
"account": {
"type": "string"
},
"contact": {
"type": "string"
},
"contactDeals": {
"type": "string"
},
"customerAccount": {
"type": "string"
},
"dealActivities": {
"type": "string"
},
"dealCustomFieldData": {
"type": "string"
},
"group": {
"type": "string"
},
"nextTask": {
"type": "string"
},
"notes": {
"type": "string"
},
"organization": {
"type": "string"
},
"owner": {
"type": "string"
},
"scoreValues": {
"type": "string"
},
"stage": {
"type": "string"
},
"tasks": {
"type": "string"
}
}
},
"mdate": {
"type": "string"
},
"nextdealid": {
"type": "string"
},
"owner": {
"type": "string"
},
"percent": {
"type": "string"
},
"stage": {
"type": "string"
},
"status": {
"type": "string"
},
"title": {
"type": "string"
},
"value": {
"type": "string"
},
"winProbability": {
"type": "null"
}
}
}
},
"fieldValues": {
"type": "array",
"items": {
"type": "object",
"properties": {
"cdate": {
"type": "string"
},
"contact": {
"type": "string"
},
"id": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"owner": {
"type": "string"
}
}
},
"owner": {
"type": "string"
},
"udate": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"geoIps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"campaignid": {
"type": "string"
},
"contact": {
"type": "string"
},
"geoAddress": {
"type": "string"
},
"geoaddrid": {
"type": "string"
},
"id": {
"type": "string"
},
"ip4": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"geoAddress": {
"type": "string"
}
}
},
"messageid": {
"type": "string"
},
"tstamp": {
"type": "string"
}
}
}
}
},
"version": 1
}
@@ -0,0 +1,143 @@
{
"type": "object",
"properties": {
"anonymized": {
"type": "string"
},
"bounced_hard": {
"type": "string"
},
"bounced_soft": {
"type": "string"
},
"created_timestamp": {
"type": "string"
},
"created_utc_timestamp": {
"type": "string"
},
"deleted": {
"type": "string"
},
"deleted_at": {
"type": "null"
},
"email": {
"type": "string"
},
"email_domain": {
"type": "string"
},
"email_local": {
"type": "string"
},
"firstName": {
"type": "string"
},
"gravatar": {
"type": "string"
},
"hash": {
"type": "string"
},
"id": {
"type": "string"
},
"ip": {
"type": "string"
},
"lastName": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"accountContacts": {
"type": "string"
},
"automationEntryCounts": {
"type": "string"
},
"bounceLogs": {
"type": "string"
},
"contactAutomations": {
"type": "string"
},
"contactData": {
"type": "string"
},
"contactDeals": {
"type": "string"
},
"contactGoals": {
"type": "string"
},
"contactLists": {
"type": "string"
},
"contactLogs": {
"type": "string"
},
"contactTags": {
"type": "string"
},
"deals": {
"type": "string"
},
"fieldValues": {
"type": "string"
},
"geoIps": {
"type": "string"
},
"notes": {
"type": "string"
},
"organization": {
"type": "string"
},
"plusAppend": {
"type": "string"
},
"scoreValues": {
"type": "string"
},
"trackingLogs": {
"type": "string"
}
}
},
"mpp_tracking": {
"type": "string"
},
"orgid": {
"type": "string"
},
"orgname": {
"type": "string"
},
"phone": {
"type": "string"
},
"segmentio_id": {
"type": "string"
},
"sentcnt": {
"type": "string"
},
"socialdata_lastcheck": {
"type": "null"
},
"udate": {
"type": "string"
},
"updated_timestamp": {
"type": "string"
},
"updated_utc_timestamp": {
"type": "string"
}
},
"version": 1
}
@@ -0,0 +1,152 @@
{
"type": "object",
"properties": {
"anonymized": {
"type": "string"
},
"bounced_hard": {
"type": "string"
},
"bounced_soft": {
"type": "string"
},
"cdate": {
"type": "string"
},
"created_timestamp": {
"type": "string"
},
"created_utc_timestamp": {
"type": "string"
},
"deleted": {
"type": "string"
},
"deleted_at": {
"type": "null"
},
"email": {
"type": "string"
},
"email_domain": {
"type": "string"
},
"email_local": {
"type": "string"
},
"fieldValues": {
"type": "array",
"items": {
"type": "string"
}
},
"firstName": {
"type": "string"
},
"gravatar": {
"type": "string"
},
"hash": {
"type": "string"
},
"id": {
"type": "string"
},
"ip": {
"type": "string"
},
"lastName": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"accountContacts": {
"type": "string"
},
"automationEntryCounts": {
"type": "string"
},
"bounceLogs": {
"type": "string"
},
"contactAutomations": {
"type": "string"
},
"contactData": {
"type": "string"
},
"contactDeals": {
"type": "string"
},
"contactGoals": {
"type": "string"
},
"contactLists": {
"type": "string"
},
"contactLogs": {
"type": "string"
},
"contactTags": {
"type": "string"
},
"deals": {
"type": "string"
},
"fieldValues": {
"type": "string"
},
"geoIps": {
"type": "string"
},
"notes": {
"type": "string"
},
"organization": {
"type": "string"
},
"plusAppend": {
"type": "string"
},
"scoreValues": {
"type": "string"
},
"trackingLogs": {
"type": "string"
}
}
},
"mpp_tracking": {
"type": "string"
},
"orgid": {
"type": "string"
},
"orgname": {
"type": "string"
},
"phone": {
"type": "string"
},
"segmentio_id": {
"type": "string"
},
"sentcnt": {
"type": "string"
},
"socialdata_lastcheck": {
"type": "null"
},
"udate": {
"type": "string"
},
"updated_timestamp": {
"type": "string"
},
"updated_utc_timestamp": {
"type": "string"
}
},
"version": 1
}
@@ -0,0 +1,9 @@
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
}
},
"version": 1
}
@@ -0,0 +1,35 @@
{
"type": "object",
"properties": {
"cdate": {
"type": "string"
},
"created_by": {
"type": "null"
},
"created_timestamp": {
"type": "string"
},
"id": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"contact": {
"type": "string"
},
"tag": {
"type": "string"
}
}
},
"updated_by": {
"type": "null"
},
"updated_timestamp": {
"type": "string"
}
},
"version": 2
}
@@ -0,0 +1,373 @@
{
"type": "object",
"properties": {
"contacts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"anonymized": {
"type": "string"
},
"bounced_date": {
"type": "null"
},
"bounced_hard": {
"type": "string"
},
"bounced_soft": {
"type": "string"
},
"cdate": {
"type": "string"
},
"created_timestamp": {
"type": "string"
},
"created_utc_timestamp": {
"type": "string"
},
"deleted": {
"type": "string"
},
"deleted_at": {
"type": "null"
},
"email": {
"type": "string"
},
"email_domain": {
"type": "string"
},
"email_local": {
"type": "string"
},
"firstName": {
"type": "string"
},
"gravatar": {
"type": "string"
},
"hash": {
"type": "string"
},
"id": {
"type": "string"
},
"ip": {
"type": "string"
},
"last_mpp_open_date": {
"type": "null"
},
"lastName": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"accountContacts": {
"type": "string"
},
"automationEntryCounts": {
"type": "string"
},
"bounceLogs": {
"type": "string"
},
"contactAutomations": {
"type": "string"
},
"contactData": {
"type": "string"
},
"contactDeals": {
"type": "string"
},
"contactGoals": {
"type": "string"
},
"contactLists": {
"type": "string"
},
"contactLogs": {
"type": "string"
},
"contactTags": {
"type": "string"
},
"deals": {
"type": "string"
},
"fieldValues": {
"type": "string"
},
"geoIps": {
"type": "string"
},
"notes": {
"type": "string"
},
"organization": {
"type": "string"
},
"plusAppend": {
"type": "string"
},
"scoreValues": {
"type": "string"
},
"trackingLogs": {
"type": "string"
}
}
},
"mpp_tracking": {
"type": "string"
},
"organization": {
"type": "null"
},
"orgid": {
"type": "string"
},
"orgname": {
"type": "string"
},
"phone": {
"type": "string"
},
"segmentio_id": {
"type": "string"
},
"sentcnt": {
"type": "string"
},
"socialdata_lastcheck": {
"type": "null"
},
"udate": {
"type": "string"
},
"updated_timestamp": {
"type": "string"
},
"updated_utc_timestamp": {
"type": "string"
}
}
}
},
"deal": {
"type": "object",
"properties": {
"account": {
"type": "null"
},
"cdate": {
"type": "string"
},
"contact": {
"type": "string"
},
"currency": {
"type": "string"
},
"customerAccount": {
"type": "null"
},
"description": {
"type": "string"
},
"hash": {
"type": "string"
},
"id": {
"type": "string"
},
"isDisabled": {
"type": "boolean"
},
"links": {
"type": "object",
"properties": {
"account": {
"type": "string"
},
"contact": {
"type": "string"
},
"contactDeals": {
"type": "string"
},
"customerAccount": {
"type": "string"
},
"dealActivities": {
"type": "string"
},
"dealCustomFieldData": {
"type": "string"
},
"group": {
"type": "string"
},
"nextTask": {
"type": "string"
},
"notes": {
"type": "string"
},
"organization": {
"type": "string"
},
"owner": {
"type": "string"
},
"scoreValues": {
"type": "string"
},
"stage": {
"type": "string"
},
"tasks": {
"type": "string"
}
}
},
"mdate": {
"type": "string"
},
"nextdate": {
"type": "null"
},
"nextdealid": {
"type": "string"
},
"organization": {
"type": "null"
},
"status": {
"type": "integer"
},
"title": {
"type": "string"
},
"winProbability": {
"type": "null"
},
"winProbabilityMdate": {
"type": "null"
}
}
},
"dealGroups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"allgroups": {
"type": "string"
},
"allusers": {
"type": "string"
},
"autoassign": {
"type": "string"
},
"cdate": {
"type": "string"
},
"currency": {
"type": "string"
},
"id": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"dealGroupGroups": {
"type": "string"
},
"dealGroupUsers": {
"type": "string"
},
"stages": {
"type": "string"
},
"winProbabilityFeatures": {
"type": "string"
}
}
},
"title": {
"type": "string"
},
"udate": {
"type": "string"
},
"win_probability_initialize_date": {
"type": "null"
}
}
}
},
"dealStages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"cardRegion1": {
"type": "string"
},
"cardRegion2": {
"type": "string"
},
"cardRegion3": {
"type": "string"
},
"cardRegion4": {
"type": "string"
},
"cardRegion5": {
"type": "string"
},
"cdate": {
"type": "null"
},
"color": {
"type": "string"
},
"dealOrder": {
"type": "string"
},
"group": {
"type": "string"
},
"id": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"group": {
"type": "string"
}
}
},
"order": {
"type": "string"
},
"title": {
"type": "string"
},
"width": {
"type": "string"
}
}
}
}
},
"version": 1
}
@@ -0,0 +1,106 @@
{
"type": "object",
"properties": {
"deal": {
"type": "object",
"properties": {
"activitycount": {
"type": "string"
},
"cdate": {
"type": "string"
},
"currency": {
"type": "string"
},
"description": {
"type": "string"
},
"group": {
"type": "string"
},
"hash": {
"type": "string"
},
"id": {
"type": "string"
},
"isDisabled": {
"type": "boolean"
},
"links": {
"type": "object",
"properties": {
"account": {
"type": "string"
},
"contact": {
"type": "string"
},
"contactDeals": {
"type": "string"
},
"customerAccount": {
"type": "string"
},
"dealActivities": {
"type": "string"
},
"dealCustomFieldData": {
"type": "string"
},
"group": {
"type": "string"
},
"nextTask": {
"type": "string"
},
"notes": {
"type": "string"
},
"organization": {
"type": "string"
},
"owner": {
"type": "string"
},
"scoreValues": {
"type": "string"
},
"stage": {
"type": "string"
},
"tasks": {
"type": "string"
}
}
},
"mdate": {
"type": "string"
},
"nextdealid": {
"type": "string"
},
"owner": {
"type": "string"
},
"percent": {
"type": "string"
},
"stage": {
"type": "string"
},
"status": {
"type": "string"
},
"title": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"version": 1
}
@@ -0,0 +1,101 @@
{
"type": "object",
"properties": {
"activitycount": {
"type": "string"
},
"cdate": {
"type": "string"
},
"currency": {
"type": "string"
},
"description": {
"type": "string"
},
"group": {
"type": "string"
},
"hash": {
"type": "string"
},
"id": {
"type": "string"
},
"isDisabled": {
"type": "boolean"
},
"links": {
"type": "object",
"properties": {
"account": {
"type": "string"
},
"contact": {
"type": "string"
},
"contactDeals": {
"type": "string"
},
"customerAccount": {
"type": "string"
},
"dealActivities": {
"type": "string"
},
"dealCustomFieldData": {
"type": "string"
},
"group": {
"type": "string"
},
"nextTask": {
"type": "string"
},
"notes": {
"type": "string"
},
"organization": {
"type": "string"
},
"owner": {
"type": "string"
},
"scoreValues": {
"type": "string"
},
"stage": {
"type": "string"
},
"tasks": {
"type": "string"
}
}
},
"mdate": {
"type": "string"
},
"nextdealid": {
"type": "string"
},
"owner": {
"type": "string"
},
"percent": {
"type": "string"
},
"stage": {
"type": "string"
},
"status": {
"type": "string"
},
"title": {
"type": "string"
},
"value": {
"type": "string"
}
},
"version": 1
}
@@ -0,0 +1,158 @@
{
"type": "object",
"properties": {
"deal": {
"type": "object",
"properties": {
"activitycount": {
"type": "string"
},
"cdate": {
"type": "string"
},
"contact": {
"type": "string"
},
"currency": {
"type": "string"
},
"description": {
"type": "string"
},
"group": {
"type": "string"
},
"hash": {
"type": "string"
},
"id": {
"type": "string"
},
"isDisabled": {
"type": "boolean"
},
"links": {
"type": "object",
"properties": {
"account": {
"type": "string"
},
"contact": {
"type": "string"
},
"contactDeals": {
"type": "string"
},
"customerAccount": {
"type": "string"
},
"dealActivities": {
"type": "string"
},
"dealCustomFieldData": {
"type": "string"
},
"group": {
"type": "string"
},
"nextTask": {
"type": "string"
},
"notes": {
"type": "string"
},
"organization": {
"type": "string"
},
"owner": {
"type": "string"
},
"scoreValues": {
"type": "string"
},
"stage": {
"type": "string"
},
"tasks": {
"type": "string"
}
}
},
"mdate": {
"type": "string"
},
"nextdealid": {
"type": "string"
},
"owner": {
"type": "string"
},
"percent": {
"type": "string"
},
"stage": {
"type": "string"
},
"title": {
"type": "string"
}
}
},
"dealStages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"cardRegion1": {
"type": "string"
},
"cardRegion2": {
"type": "string"
},
"cardRegion3": {
"type": "string"
},
"cardRegion4": {
"type": "string"
},
"cardRegion5": {
"type": "string"
},
"color": {
"type": "string"
},
"dealOrder": {
"type": "string"
},
"group": {
"type": "string"
},
"id": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"group": {
"type": "string"
}
}
},
"order": {
"type": "string"
},
"title": {
"type": "string"
},
"udate": {
"type": "string"
},
"width": {
"type": "string"
}
}
}
}
},
"version": 1
}
@@ -0,0 +1,146 @@
{
"type": "object",
"properties": {
"analytics_domains": {
"type": "null"
},
"analytics_source": {
"type": "string"
},
"analytics_ua": {
"type": "string"
},
"cdate": {
"type": "string"
},
"created_by": {
"type": "null"
},
"created_timestamp": {
"type": "string"
},
"deletestamp": {
"type": "null"
},
"facebook_session": {
"type": "null"
},
"get_unsubscribe_reason": {
"type": "string"
},
"id": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"addressLists": {
"type": "string"
},
"contactGoalLists": {
"type": "string"
},
"user": {
"type": "string"
}
}
},
"name": {
"type": "string"
},
"optinmessageid": {
"type": "string"
},
"optinoptout": {
"type": "string"
},
"optoutconf": {
"type": "string"
},
"p_embed_image": {
"type": "string"
},
"p_use_analytics_link": {
"type": "string"
},
"p_use_analytics_read": {
"type": "string"
},
"p_use_captcha": {
"type": "string"
},
"p_use_facebook": {
"type": "string"
},
"p_use_tracking": {
"type": "string"
},
"p_use_twitter": {
"type": "string"
},
"private": {
"type": "string"
},
"require_name": {
"type": "string"
},
"send_last_broadcast": {
"type": "string"
},
"sender_addr1": {
"type": "string"
},
"sender_addr2": {
"type": "string"
},
"sender_city": {
"type": "string"
},
"sender_country": {
"type": "string"
},
"sender_name": {
"type": "string"
},
"sender_phone": {
"type": "string"
},
"sender_reminder": {
"type": "string"
},
"sender_state": {
"type": "string"
},
"sender_url": {
"type": "string"
},
"sender_zip": {
"type": "string"
},
"stringid": {
"type": "string"
},
"to_name": {
"type": "string"
},
"twitter_token": {
"type": "string"
},
"twitter_token_secret": {
"type": "string"
},
"updated_by": {
"type": "null"
},
"updated_timestamp": {
"type": "string"
},
"user": {
"type": "string"
},
"userid": {
"type": "string"
}
},
"version": 1
}
@@ -0,0 +1,46 @@
{
"type": "object",
"properties": {
"tag": {
"type": "object",
"properties": {
"created_timestamp": {
"type": "string"
},
"deleted": {
"type": "string"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"contactGoalTags": {
"type": "string"
},
"templateTags": {
"type": "string"
}
}
},
"subscriber_count": {
"type": "string"
},
"tag": {
"type": "string"
},
"tagType": {
"type": "string"
},
"updated_timestamp": {
"type": "string"
}
}
}
},
"version": 1
}
@@ -0,0 +1,41 @@
{
"type": "object",
"properties": {
"created_timestamp": {
"type": "string"
},
"deleted": {
"type": "string"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"contactGoalTags": {
"type": "string"
},
"templateTags": {
"type": "string"
}
}
},
"subscriber_count": {
"type": "string"
},
"tag": {
"type": "string"
},
"tagType": {
"type": "string"
},
"updated_timestamp": {
"type": "string"
}
},
"version": 1
}
@@ -0,0 +1,4 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.45172 33.7906L28.3389 19.9196L7.45172 5.96777C6.56472 5.40313 6 4.35496 6 3.22569V0L31.3229 16.4516C32.5325 17.258 33.1777 18.5485 33.1777 19.9196C33.1777 21.2903 32.4517 22.5809 31.3229 23.3872L6 40V36.5323C6 35.4839 6.48422 34.4357 7.45172 33.7906Z" fill="white"/>
<path d="M19.4679 21.0485C18.3391 21.7741 16.8871 21.7741 15.7583 21.0485L12.8549 19.1936L6 14.5967V11.9354C6 10.8873 7.20961 10.3226 8.01612 10.8873L21.242 19.8388L19.4679 21.0485Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 580 B

@@ -0,0 +1,4 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.45172 33.7906L28.3389 19.9196L7.45172 5.96777C6.56472 5.40313 6 4.35496 6 3.22569V0L31.3229 16.4516C32.5325 17.258 33.1777 18.5485 33.1777 19.9196C33.1777 21.2903 32.4517 22.5809 31.3229 23.3872L6 40V36.5323C6 35.4839 6.48422 34.4357 7.45172 33.7906Z" fill="#004CFF"/>
<path d="M19.4679 21.0485C18.3391 21.7741 16.8871 21.7741 15.7583 21.0485L12.8549 19.1936L6 14.5967V11.9354C6 10.8873 7.20961 10.3226 8.01612 10.8873L21.242 19.8388L19.4679 21.0485Z" fill="#004CFF"/>
</svg>

After

Width:  |  Height:  |  Size: 584 B

@@ -0,0 +1,173 @@
export const allCurrencies = [
{ name: 'Euro', value: 'eur' },
{ name: 'United States Dollar', value: 'usd' },
{ name: 'British Pound Sterling', value: 'gbp' },
{ name: 'Swiss Franc', value: 'chf' },
{ name: 'Renminbi', value: 'cny' },
{ name: '--------', value: '' },
{ name: 'United Arab Emirates Dirham', value: 'aed' },
{ name: 'Afghan Afghani', value: 'afn' },
{ name: 'Albanian Lek', value: 'all' },
{ name: 'Armenian Dram', value: 'amd' },
{ name: 'Netherlands Antillean Guilder', value: 'ang' },
{ name: 'Angolan Kwanza', value: 'aoa' },
{ name: 'Argentine Peso', value: 'ars' },
{ name: 'Australian Dollar', value: 'aud' },
{ name: 'Aruban Florin', value: 'awg' },
{ name: 'Azerbaijani Manat', value: 'azn' },
{ name: 'Bosnia-Herzegovina Convertible Mark', value: 'bam' },
{ name: 'Barbadian Dollar', value: 'bbd' },
{ name: 'Bangladeshi Taka', value: 'bdt' },
{ name: 'Bulgarian Lev', value: 'bgn' },
{ name: 'Bahraini Dinar', value: 'bhd' },
{ name: 'Burundian Franc', value: 'bif' },
{ name: 'Bermudan Dollar', value: 'bmd' },
{ name: 'Brunei Dollar', value: 'bnd' },
{ name: 'Bolivian Boliviano', value: 'bob' },
{ name: 'Brazilian Real', value: 'brl' },
{ name: 'Bahamian Dollar', value: 'bsd' },
{ name: 'Bitcoin', value: 'btc' },
{ name: 'Bhutanese Ngultrum', value: 'btn' },
{ name: 'Botswanan Pula', value: 'bwp' },
{ name: 'Belarusian Ruble', value: 'byn' },
{ name: 'Belize Dollar', value: 'bzd' },
{ name: 'Canadian Dollar', value: 'cad' },
{ name: 'Congolese Franc', value: 'cdf' },
{ name: 'Chilean Unit of Account (UF)', value: 'clf' },
{ name: 'Chilean Peso', value: 'clp' },
{ name: 'Chinese Yuan (Offshore)', value: 'cnh' },
{ name: 'Colombian Peso', value: 'cop' },
{ name: 'Costa Rican Colón', value: 'crc' },
{ name: 'Cuban Convertible Peso', value: 'cuc' },
{ name: 'Cuban Peso', value: 'cup' },
{ name: 'Cape Verdean Escudo', value: 'cve' },
{ name: 'Czech Republic Koruna', value: 'czk' },
{ name: 'Djiboutian Franc', value: 'djf' },
{ name: 'Danish Krone', value: 'dkk' },
{ name: 'Dominican Peso', value: 'dop' },
{ name: 'Algerian Dinar', value: 'dzd' },
{ name: 'Egyptian Pound', value: 'egp' },
{ name: 'Eritrean Nakfa', value: 'ern' },
{ name: 'Ethiopian Birr', value: 'etb' },
{ name: 'Fijian Dollar', value: 'fjd' },
{ name: 'Falkland Islands Pound', value: 'fkp' },
{ name: 'Georgian Lari', value: 'gel' },
{ name: 'Guernsey Pound', value: 'ggp' },
{ name: 'Ghanaian Cedi', value: 'ghs' },
{ name: 'Gibraltar Pound', value: 'gip' },
{ name: 'Gambian Dalasi', value: 'gmd' },
{ name: 'Guinean Franc', value: 'gnf' },
{ name: 'Guatemalan Quetzal', value: 'gtq' },
{ name: 'Guyanaese Dollar', value: 'gyd' },
{ name: 'Hong Kong Dollar', value: 'hkd' },
{ name: 'Honduran Lempira', value: 'hnl' },
{ name: 'Croatian Kuna', value: 'hrk' },
{ name: 'Haitian Gourde', value: 'htg' },
{ name: 'Hungarian Forint', value: 'huf' },
{ name: 'Indonesian Rupiah', value: 'idr' },
{ name: 'Israeli New Sheqel', value: 'ils' },
{ name: 'Manx Pound', value: 'imp' },
{ name: 'Indian Rupee', value: 'inr' },
{ name: 'Iraqi Dinar', value: 'iqd' },
{ name: 'Iranian Rial', value: 'irr' },
{ name: 'Icelandic Króna', value: 'isk' },
{ name: 'Jersey Pound', value: 'jep' },
{ name: 'Jamaican Dollar', value: 'jmd' },
{ name: 'Jordanian Dinar', value: 'jod' },
{ name: 'Japanese Yen', value: 'jpy' },
{ name: 'Kenyan Shilling', value: 'kes' },
{ name: 'Kyrgystani Som', value: 'kgs' },
{ name: 'Cambodian Riel', value: 'khr' },
{ name: 'Comorian Franc', value: 'kmf' },
{ name: 'North Korean Won', value: 'kpw' },
{ name: 'South Korean Won', value: 'krw' },
{ name: 'Kuwaiti Dinar', value: 'kwd' },
{ name: 'Cayman Islands Dollar', value: 'kyd' },
{ name: 'Kazakhstani Tenge', value: 'kzt' },
{ name: 'Laotian Kip', value: 'lak' },
{ name: 'Lebanese Pound', value: 'lbp' },
{ name: 'Sri Lankan Rupee', value: 'lkr' },
{ name: 'Liberian Dollar', value: 'lrd' },
{ name: 'Lesotho Loti', value: 'lsl' },
{ name: 'Libyan Dinar', value: 'lyd' },
{ name: 'Moroccan Dirham', value: 'mad' },
{ name: 'Moldovan Leu', value: 'mdl' },
{ name: 'Malagasy Ariary', value: 'mga' },
{ name: 'Macedonian Denar', value: 'mkd' },
{ name: 'Myanma Kyat', value: 'mmk' },
{ name: 'Mongolian Tugrik', value: 'mnt' },
{ name: 'Macanese Pataca', value: 'mop' },
{ name: 'Mauritanian Ouguiya (Pre-2018)', value: 'mro' },
{ name: 'Mauritanian Ouguiya', value: 'mru' },
{ name: 'Mauritian Rupee', value: 'mur' },
{ name: 'Maldivian Rufiyaa', value: 'mvr' },
{ name: 'Malawian Kwacha', value: 'mwk' },
{ name: 'Mexican Peso', value: 'mxn' },
{ name: 'Malaysian Ringgit', value: 'myr' },
{ name: 'Mozambican Metical', value: 'mzn' },
{ name: 'Namibian Dollar', value: 'nad' },
{ name: 'Nigerian Naira', value: 'ngn' },
{ name: 'Nicaraguan Córdoba', value: 'nio' },
{ name: 'Norwegian Krone', value: 'nok' },
{ name: 'Nepalese Rupee', value: 'npr' },
{ name: 'New Zealand Dollar', value: 'nzd' },
{ name: 'Omani Rial', value: 'omr' },
{ name: 'Panamanian Balboa', value: 'pab' },
{ name: 'Peruvian Nuevo Sol', value: 'pen' },
{ name: 'Papua New Guinean Kina', value: 'pgk' },
{ name: 'Philippine Peso', value: 'php' },
{ name: 'Pakistani Rupee', value: 'pkr' },
{ name: 'Polish Zloty', value: 'pln' },
{ name: 'Paraguayan Guarani', value: 'pyg' },
{ name: 'Qatari Rial', value: 'qar' },
{ name: 'Romanian Leu', value: 'ron' },
{ name: 'Serbian Dinar', value: 'rsd' },
{ name: 'Russian Ruble', value: 'rub' },
{ name: 'Rwandan Franc', value: 'rwf' },
{ name: 'Saudi Riyal', value: 'sar' },
{ name: 'Solomon Islands Dollar', value: 'sbd' },
{ name: 'Seychellois Rupee', value: 'scr' },
{ name: 'Sudanese Pound', value: 'sdg' },
{ name: 'Swedish Krona', value: 'sek' },
{ name: 'Singapore Dollar', value: 'sgd' },
{ name: 'Saint Helena Pound', value: 'shp' },
{ name: 'Sierra Leonean Leone', value: 'sll' },
{ name: 'Somali Shilling', value: 'sos' },
{ name: 'Surinamese Dollar', value: 'srd' },
{ name: 'South Sudanese Pound', value: 'ssp' },
{ name: 'São Tomé and Príncipe Dobra (Pre-2018)', value: 'std' },
{ name: 'São Tomé and Príncipe Dobra', value: 'stn' },
{ name: 'Salvadoran Colón', value: 'svc' },
{ name: 'Syrian Pound', value: 'syp' },
{ name: 'Swazi Lilangeni', value: 'szl' },
{ name: 'Thai Baht', value: 'thb' },
{ name: 'Tajikistani Somoni', value: 'tjs' },
{ name: 'Turkmenistani Manat', value: 'tmt' },
{ name: 'Tunisian Dinar', value: 'tnd' },
{ name: "Tongan Pa'anga", value: 'top' },
{ name: 'Turkish Lira', value: 'try' },
{ name: 'Trinidad and Tobago Dollar', value: 'ttd' },
{ name: 'New Taiwan Dollar', value: 'twd' },
{ name: 'Tanzanian Shilling', value: 'tzs' },
{ name: 'Ukrainian Hryvnia', value: 'uah' },
{ name: 'Ugandan Shilling', value: 'ugx' },
{ name: 'Uruguayan Peso', value: 'uyu' },
{ name: 'Uzbekistan Som', value: 'uzs' },
{ name: 'Venezuelan Bolívar Fuerte', value: 'vef' },
{ name: 'Vietnamese Dong', value: 'vnd' },
{ name: 'Vanuatu Vatu', value: 'vuv' },
{ name: 'Samoan Tala', value: 'wst' },
{ name: 'CFA Franc BEAC', value: 'xaf' },
{ name: 'Silver Ounce', value: 'xag' },
{ name: 'Gold Ounce', value: 'xau' },
{ name: 'East Caribbean Dollar', value: 'xcd' },
{ name: 'Special Drawing Rights', value: 'xdr' },
{ name: 'CFA Franc BCEAO', value: 'xof' },
{ name: 'Palladium Ounce', value: 'xpd' },
{ name: 'CFP Franc', value: 'xpf' },
{ name: 'Platinum Ounce', value: 'xpt' },
{ name: 'Yemeni Rial', value: 'yer' },
{ name: 'South African Rand', value: 'zar' },
{ name: 'Zambian Kwacha', value: 'zmw' },
{ name: 'Zimbabwean Dollar', value: 'zwl' },
];