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,45 @@
{
"node": "n8n-nodes-base.hubspot",
"nodeVersion": "1.0",
"codexVersion": "1.0",
"categories": ["Sales"],
"resources": {
"credentialDocumentation": [
{
"url": "https://docs.n8n.io/integrations/builtin/credentials/hubspot/"
}
],
"primaryDocumentation": [
{
"url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.hubspot/"
}
],
"generic": [
{
"label": "How to synchronize data between two systems (one-way vs. two-way sync",
"icon": "🏬",
"url": "https://n8n.io/blog/how-to-sync-data-between-two-systems/"
},
{
"label": "How to get started with CRM automation (with 3 no-code workflow ideas",
"icon": "👥",
"url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/"
},
{
"label": "Hey founders! Your business doesn't need you to operate",
"icon": " 🖥️",
"url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/"
},
{
"label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin",
"icon": "🎖",
"url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/"
},
{
"label": "How Goomer automated their operations with over 200 n8n workflows",
"icon": "🛵",
"url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/"
}
]
}
}
@@ -0,0 +1,28 @@
import type { INodeTypeBaseDescription, IVersionedNodeType } from 'n8n-workflow';
import { VersionedNodeType } from 'n8n-workflow';
import { HubspotV1 } from './V1/HubspotV1.node';
import { HubspotV2 } from './V2/HubspotV2.node';
export class Hubspot extends VersionedNodeType {
constructor() {
const baseDescription: INodeTypeBaseDescription = {
displayName: 'HubSpot',
name: 'hubspot',
icon: 'file:hubspot.svg',
group: ['output'],
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
description: 'Consume HubSpot API',
defaultVersion: 2.2,
};
const nodeVersions: IVersionedNodeType['nodeVersions'] = {
1: new HubspotV1(baseDescription),
2: new HubspotV2(baseDescription),
2.1: new HubspotV2(baseDescription),
2.2: new HubspotV2(baseDescription),
};
super(nodeVersions, baseDescription);
}
}
@@ -0,0 +1,30 @@
{
"node": "n8n-nodes-base.hubspotTrigger",
"nodeVersion": "1.0",
"codexVersion": "1.0",
"categories": ["Sales"],
"resources": {
"credentialDocumentation": [
{
"url": "https://docs.n8n.io/integrations/builtin/credentials/hubspot/"
}
],
"primaryDocumentation": [
{
"url": "https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.hubspottrigger/"
}
],
"generic": [
{
"label": "How to get started with CRM automation (with 3 no-code workflow ideas",
"icon": "👥",
"url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/"
},
{
"label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin",
"icon": "🎖",
"url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/"
}
]
}
}
@@ -0,0 +1,457 @@
import { createHash } from 'crypto';
import type {
IHookFunctions,
IWebhookFunctions,
IDataObject,
ILoadOptionsFunctions,
INodePropertyOptions,
INodeType,
INodeTypeDescription,
IWebhookResponseData,
} from 'n8n-workflow';
import { NodeConnectionTypes, NodeOperationError } from 'n8n-workflow';
import { hubspotApiRequest, propertyEvents } from './V1/GenericFunctions';
export class HubspotTrigger implements INodeType {
description: INodeTypeDescription = {
displayName: 'HubSpot Trigger',
name: 'hubspotTrigger',
icon: 'file:hubspot.svg',
group: ['trigger'],
version: 1,
description: 'Starts the workflow when HubSpot events occur',
defaults: {
name: 'HubSpot Trigger',
},
inputs: [],
outputs: [NodeConnectionTypes.Main],
credentials: [
{
name: 'hubspotDeveloperApi',
required: true,
},
],
webhooks: [
{
name: 'default',
httpMethod: 'POST',
responseMode: 'onReceived',
path: 'webhook',
},
{
name: 'setup',
httpMethod: 'GET',
responseMode: 'onReceived',
path: 'webhook',
},
],
properties: [
{
displayName: 'Events',
name: 'eventsUi',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
placeholder: 'Add Event',
default: {},
options: [
{
displayName: 'Event',
name: 'eventValues',
values: [
{
displayName: 'Name',
name: 'name',
type: 'options',
options: [
{
name: 'Company Created',
value: 'company.creation',
description:
"To get notified if any company is created in a customer's account",
},
{
name: 'Company Deleted',
value: 'company.deletion',
description:
"To get notified if any company is deleted in a customer's account",
},
{
name: 'Company Property Changed',
value: 'company.propertyChange',
description:
"To get notified if a specified property is changed for any company in a customer's account",
},
{
name: 'Contact Created',
value: 'contact.creation',
description:
"To get notified if any contact is created in a customer's account",
},
{
name: 'Contact Deleted',
value: 'contact.deletion',
description:
"To get notified if any contact is deleted in a customer's account",
},
{
name: 'Contact Privacy Deleted',
value: 'contact.privacyDeletion',
description:
'To get notified if a contact is deleted for privacy compliance reasons',
},
{
name: 'Contact Property Changed',
value: 'contact.propertyChange',
description:
"To get notified if a specified property is changed for any contact in a customer's account",
},
{
name: 'Conversation Creation',
value: 'conversation.creation',
description: 'To get notified if a new thread is created in an account',
},
{
name: 'Conversation Deletion',
value: 'conversation.deletion',
description:
'To get notified if a thread is archived or soft-deleted in an account',
},
{
name: 'Conversation New Message',
value: 'conversation.newMessage',
description: 'To get notified if a new message on a thread has been received',
},
{
name: 'Conversation Privacy Deletion',
value: 'conversation.privacyDeletion',
description: 'To get notified if a thread is permanently deleted in an account',
},
{
name: 'Conversation Property Change',
value: 'conversation.propertyChange',
description: 'To get notified if a property on a thread has been changed',
},
{
name: 'Deal Created',
value: 'deal.creation',
description: "To get notified if any deal is created in a customer's account",
},
{
name: 'Deal Deleted',
value: 'deal.deletion',
description: "To get notified if any deal is deleted in a customer's account",
},
{
name: 'Deal Property Changed',
value: 'deal.propertyChange',
description:
"To get notified if a specified property is changed for any deal in a customer's account",
},
{
name: 'Ticket Created',
value: 'ticket.creation',
description: "To get notified if a ticket is created in a customer's account",
},
{
name: 'Ticket Deleted',
value: 'ticket.deletion',
description: "To get notified if any ticket is deleted in a customer's account",
},
{
name: 'Ticket Property Changed',
value: 'ticket.propertyChange',
description:
"To get notified if a specified property is changed for any ticket in a customer's account",
},
],
default: 'contact.creation',
required: true,
},
{
displayName: 'Property Name or ID',
name: 'property',
type: 'options',
description:
'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
typeOptions: {
loadOptionsDependsOn: ['contact.propertyChange'],
loadOptionsMethod: 'getContactProperties',
},
displayOptions: {
show: {
name: ['contact.propertyChange'],
},
},
default: '',
required: true,
},
{
displayName: 'Property Name or ID',
name: 'property',
type: 'options',
description:
'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
typeOptions: {
loadOptionsDependsOn: ['company.propertyChange'],
loadOptionsMethod: 'getCompanyProperties',
},
displayOptions: {
show: {
name: ['company.propertyChange'],
},
},
default: '',
required: true,
},
{
displayName: 'Property Name or ID',
name: 'property',
type: 'options',
description:
'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
typeOptions: {
loadOptionsDependsOn: ['deal.propertyChange'],
loadOptionsMethod: 'getDealProperties',
},
displayOptions: {
show: {
name: ['deal.propertyChange'],
},
},
default: '',
required: true,
},
],
},
],
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
options: [
{
displayName: 'Max Concurrent Requests',
name: 'maxConcurrentRequests',
type: 'number',
typeOptions: {
minValue: 5,
},
default: 5,
},
],
},
],
};
methods = {
loadOptions: {
// Get all the available contacts to display them to user so that they can
// select them easily
async getContactProperties(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {
const returnData: INodePropertyOptions[] = [];
const endpoint = '/properties/v2/contacts/properties';
const properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});
for (const property of properties) {
const propertyName = property.label;
const propertyId = property.name;
returnData.push({
name: propertyName,
value: propertyId,
});
}
return returnData;
},
// Get all the available companies to display them to user so that they can
// select them easily
async getCompanyProperties(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {
const returnData: INodePropertyOptions[] = [];
const endpoint = '/properties/v2/companies/properties';
const properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});
for (const property of properties) {
const propertyName = property.label;
const propertyId = property.name;
returnData.push({
name: propertyName,
value: propertyId,
});
}
return returnData;
},
// Get all the available deals to display them to user so that they can
// select them easily
async getDealProperties(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {
const returnData: INodePropertyOptions[] = [];
const endpoint = '/properties/v2/deals/properties';
const properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});
for (const property of properties) {
const propertyName = property.label;
const propertyId = property.name;
returnData.push({
name: propertyName,
value: propertyId,
});
}
return returnData;
},
},
};
webhookMethods = {
default: {
async checkExists(this: IHookFunctions): Promise<boolean> {
// Check all the webhooks which exist already if it is identical to the
// one that is supposed to get created.
const currentWebhookUrl = this.getNodeWebhookUrl('default') as string;
const { appId } = await this.getCredentials('hubspotDeveloperApi');
try {
const { targetUrl } = await hubspotApiRequest.call(
this,
'GET',
`/webhooks/v3/${appId}/settings`,
{},
);
if (targetUrl !== currentWebhookUrl) {
throw new NodeOperationError(
this.getNode(),
`The APP ID ${appId} already has a target url ${targetUrl}. Delete it or use another APP ID before executing the trigger. Due to Hubspot API limitations, you can have just one trigger per APP.`,
);
}
} catch (error) {
if (error.statusCode === 404) {
return false;
}
}
// if the app is using the current webhook url. Delete everything and create it again with the current events
const { results: subscriptions } = await hubspotApiRequest.call(
this,
'GET',
`/webhooks/v3/${appId}/subscriptions`,
{},
);
// delete all subscriptions
for (const subscription of subscriptions) {
await hubspotApiRequest.call(
this,
'DELETE',
`/webhooks/v3/${appId}/subscriptions/${subscription.id}`,
{},
);
}
await hubspotApiRequest.call(this, 'DELETE', `/webhooks/v3/${appId}/settings`, {});
return false;
},
async create(this: IHookFunctions): Promise<boolean> {
const webhookUrl = this.getNodeWebhookUrl('default');
const { appId } = await this.getCredentials('hubspotDeveloperApi');
const events =
((this.getNodeParameter('eventsUi') as IDataObject)?.eventValues as IDataObject[]) || [];
const additionalFields = this.getNodeParameter('additionalFields') as IDataObject;
let endpoint = `/webhooks/v3/${appId}/settings`;
let body: IDataObject = {
targetUrl: webhookUrl,
maxConcurrentRequests: additionalFields.maxConcurrentRequests || 5,
};
await hubspotApiRequest.call(this, 'PUT', endpoint, body);
endpoint = `/webhooks/v3/${appId}/subscriptions`;
if (Array.isArray(events) && events.length === 0) {
throw new NodeOperationError(this.getNode(), 'You must define at least one event');
}
for (const event of events) {
body = {
eventType: event.name,
active: true,
};
if (propertyEvents.includes(event.name as string)) {
const property = event.property;
body.propertyName = property;
}
await hubspotApiRequest.call(this, 'POST', endpoint, body);
}
return true;
},
async delete(this: IHookFunctions): Promise<boolean> {
const { appId } = await this.getCredentials('hubspotDeveloperApi');
const { results: subscriptions } = await hubspotApiRequest.call(
this,
'GET',
`/webhooks/v3/${appId}/subscriptions`,
{},
);
for (const subscription of subscriptions) {
await hubspotApiRequest.call(
this,
'DELETE',
`/webhooks/v3/${appId}/subscriptions/${subscription.id}`,
{},
);
}
try {
await hubspotApiRequest.call(this, 'DELETE', `/webhooks/v3/${appId}/settings`, {});
} catch (error) {
return false;
}
return true;
},
},
};
async webhook(this: IWebhookFunctions): Promise<IWebhookResponseData> {
const credentials = await this.getCredentials('hubspotDeveloperApi');
if (credentials === undefined) {
throw new NodeOperationError(this.getNode(), 'No credentials found!');
}
const req = this.getRequestObject();
const bodyData = req.body;
const headerData = this.getHeaderData();
if (headerData['x-hubspot-signature'] === undefined) {
return {};
}
const hash = `${credentials.clientSecret}${JSON.stringify(bodyData)}`;
const signature = createHash('sha256').update(hash).digest('hex');
if (signature !== headerData['x-hubspot-signature']) {
return {};
}
for (let i = 0; i < bodyData.length; i++) {
const subscriptionType = bodyData[i].subscriptionType as string;
if (subscriptionType.includes('contact')) {
bodyData[i].contactId = bodyData[i].objectId;
}
if (subscriptionType.includes('company')) {
bodyData[i].companyId = bodyData[i].objectId;
}
if (subscriptionType.includes('deal')) {
bodyData[i].dealId = bodyData[i].objectId;
}
if (subscriptionType.includes('ticket')) {
bodyData[i].ticketId = bodyData[i].objectId;
}
delete bodyData[i].objectId;
}
return {
workflowData: [this.helpers.returnJsonArray(bodyData as IDataObject[])],
};
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,131 @@
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 a contact from a list',
action: 'Remove a contact from a list',
},
],
default: 'add',
},
];
export const contactListFields: INodeProperties[] = [
/* -------------------------------------------------------------------------- */
/* contactList:add */
/* -------------------------------------------------------------------------- */
{
displayName: 'By',
name: 'by',
type: 'options',
options: [
{
name: 'Contact ID',
value: 'id',
},
{
name: 'Email',
value: 'email',
},
],
required: true,
displayOptions: {
show: {
resource: ['contactList'],
operation: ['add'],
},
},
default: 'email',
},
{
displayName: 'Email',
name: 'email',
type: 'string',
placeholder: 'name@email.com',
required: true,
displayOptions: {
show: {
resource: ['contactList'],
operation: ['add'],
by: ['email'],
},
},
default: '',
},
{
displayName: 'Contact ID',
name: 'id',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['contactList'],
operation: ['add'],
by: ['id'],
},
},
default: '',
},
{
displayName: 'List ID',
name: 'listId',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['contactList'],
operation: ['add'],
},
},
default: '',
},
/* -------------------------------------------------------------------------- */
/* contactList:remove */
/* -------------------------------------------------------------------------- */
{
displayName: 'Contact ID',
name: 'id',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['contactList'],
operation: ['remove'],
},
},
default: '',
},
{
displayName: 'List ID',
name: 'listId',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['contactList'],
operation: ['remove'],
},
},
default: '',
},
];
@@ -0,0 +1,742 @@
import type { INodeProperties } from 'n8n-workflow';
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: 'Delete',
value: 'delete',
description: 'Delete a deal',
action: 'Delete a deal',
},
{
name: 'Get',
value: 'get',
description: 'Get a deal',
action: 'Get a deal',
},
{
name: 'Get Many',
value: 'getAll',
description: 'Get many deals',
action: 'Get many deals',
},
{
name: 'Get Recently Created',
value: 'getRecentlyCreated',
description: 'Get recently created deals',
action: 'Get recently created deals',
},
{
name: 'Get Recently Modified',
value: 'getRecentlyModified',
description: 'Get recently modified deals',
action: 'Get recently modified deals',
},
{
name: 'Search',
value: 'search',
description: 'Search deals',
action: 'Search for deals',
},
{
name: 'Update',
value: 'update',
description: 'Update a deal',
action: 'Update a deal',
},
],
default: 'create',
},
];
export const dealFields: INodeProperties[] = [
/* -------------------------------------------------------------------------- */
/* deal:create */
/* -------------------------------------------------------------------------- */
{
displayName: 'Deal Stage Name or ID',
name: 'stage',
type: 'options',
required: true,
typeOptions: {
loadOptionsMethod: 'getDealStages',
},
displayOptions: {
show: {
resource: ['deal'],
operation: ['create'],
},
},
default: '',
options: [],
description:
'The dealstage is required when creating a deal. See the CRM Pipelines API for details on managing pipelines and stages. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['deal'],
operation: ['create'],
},
},
options: [
{
displayName: 'Amount',
name: 'amount',
type: 'string',
default: '',
},
{
displayName: 'Associated Company Names or IDs',
name: 'associatedCompany',
type: 'multiOptions',
description:
'Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
typeOptions: {
loadOptionsMethod: 'getCompanies',
},
default: [],
},
{
displayName: 'Associated Vid Names or IDs',
name: 'associatedVids',
type: 'multiOptions',
description:
'Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
typeOptions: {
loadOptionsMethod: 'getContacts',
},
default: [],
},
{
displayName: 'Close Date',
name: 'closeDate',
type: 'dateTime',
default: '',
},
{
displayName: 'Custom Properties',
name: 'customPropertiesUi',
placeholder: 'Add Custom Property',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
default: {},
options: [
{
name: 'customPropertiesValues',
displayName: 'Custom Property',
values: [
{
displayName: 'Property Name or ID',
name: 'property',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getDealCustomProperties',
},
default: '',
description:
'Name of the property. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Value',
name: 'value',
type: 'string',
default: '',
description: 'Value of the property',
},
],
},
],
},
{
displayName: 'Deal Description',
name: 'description',
type: 'string',
default: '',
},
{
displayName: 'Deal Name',
name: 'dealName',
type: 'string',
default: '',
},
{
displayName: 'Deal Type Name or ID',
name: 'dealType',
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: 'getDealTypes',
},
default: '',
},
{
displayName: 'Pipeline',
name: 'pipeline',
type: 'string',
default: '',
},
],
},
/* -------------------------------------------------------------------------- */
/* deal:update */
/* -------------------------------------------------------------------------- */
{
displayName: 'Deal ID',
name: 'dealId',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['deal'],
operation: ['update'],
},
},
default: '',
description: 'Unique identifier for a particular deal',
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
placeholder: 'Add Update Field',
default: {},
displayOptions: {
show: {
resource: ['deal'],
operation: ['update'],
},
},
options: [
{
displayName: 'Amount',
name: 'amount',
type: 'string',
default: '',
},
{
displayName: 'Close Date',
name: 'closeDate',
type: 'dateTime',
default: '',
},
{
displayName: 'Custom Properties',
name: 'customPropertiesUi',
placeholder: 'Add Custom Property',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
default: {},
options: [
{
name: 'customPropertiesValues',
displayName: 'Custom Property',
values: [
{
displayName: 'Property Name or ID',
name: 'property',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getDealCustomProperties',
},
default: '',
description:
'Name of the property. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Value',
name: 'value',
type: 'string',
default: '',
description: 'Value of the property',
},
],
},
],
},
{
displayName: 'Deal Description',
name: 'description',
type: 'string',
default: '',
},
{
displayName: 'Deal Name',
name: 'dealName',
type: 'string',
default: '',
},
{
displayName: 'Deal Stage Name or ID',
name: 'stage',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getDealStages',
},
default: '',
description:
'The dealstage is required when creating a deal. See the CRM Pipelines API for details on managing pipelines and stages. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Deal Type Name or ID',
name: 'dealType',
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: 'getDealTypes',
},
default: '',
},
{
displayName: 'Pipeline',
name: 'pipeline',
type: 'string',
default: '',
},
],
},
/* -------------------------------------------------------------------------- */
/* deal:get */
/* -------------------------------------------------------------------------- */
{
displayName: 'Deal ID',
name: 'dealId',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['deal'],
operation: ['get'],
},
},
default: '',
description: 'Unique identifier for a particular deal',
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['deal'],
operation: ['get'],
},
},
options: [
{
displayName: 'Include Property Versions',
name: 'includePropertyVersions',
type: 'boolean',
default: false,
// eslint-disable-next-line n8n-nodes-base/node-param-description-boolean-without-whether
description:
'By default, you will only get data for the most recent version of a property in the "versions" data. If you include this parameter, you will get data for all previous versions.',
},
],
},
/* -------------------------------------------------------------------------- */
/* deal:getAll */
/* -------------------------------------------------------------------------- */
{
displayName: 'Return All',
name: 'returnAll',
type: 'boolean',
displayOptions: {
show: {
resource: ['deal'],
operation: ['getAll'],
},
},
default: false,
description: 'Whether to return all results or only up to a given limit',
},
{
displayName: 'Limit',
name: 'limit',
type: 'number',
displayOptions: {
show: {
resource: ['deal'],
operation: ['getAll'],
returnAll: [false],
},
},
typeOptions: {
minValue: 1,
maxValue: 250,
},
default: 100,
description: 'Max number of results to return',
},
{
displayName: 'Filters',
name: 'filters',
type: 'collection',
placeholder: 'Add Filter',
default: {},
displayOptions: {
show: {
resource: ['deal'],
operation: ['getAll'],
},
},
options: [
{
displayName: 'Include Associations',
name: 'includeAssociations',
type: 'boolean',
default: false,
description:
'Whether to include the IDs of the associated contacts and companies in the results. This will also automatically include the num_associated_contacts property.',
},
{
displayName: 'Property Names or IDs',
name: 'properties',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getDealProperties',
},
default: [],
description:
'<p>Used to include specific deal properties in the results. By default, the results will only include Deal ID and will not include the values for any properties for your Deals.</p><p>Including this parameter will include the data for the specified property in the results. You can include this parameter multiple times to request multiple properties separated by a comma: <code>,</code>.</p>. Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Properties with History',
name: 'propertiesWithHistory',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getDealProperties',
},
default: [],
description:
'Works similarly to properties=, but this parameter will include the history for the specified property, instead of just including the current value. Use this parameter when you need the full history of changes to a property\'s value. Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
],
},
/* -------------------------------------------------------------------------- */
/* deal:delete */
/* -------------------------------------------------------------------------- */
{
displayName: 'Deal ID',
name: 'dealId',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['deal'],
operation: ['delete'],
},
},
default: '',
description: 'Unique identifier for a particular deal',
},
/* -------------------------------------------------------------------------- */
/* deal:getRecentlyCreated deal:getRecentlyModified */
/* -------------------------------------------------------------------------- */
{
displayName: 'Return All',
name: 'returnAll',
type: 'boolean',
displayOptions: {
show: {
resource: ['deal'],
operation: ['getRecentlyCreated', 'getRecentlyModified'],
},
},
default: false,
description: 'Whether to return all results or only up to a given limit',
},
{
displayName: 'Limit',
name: 'limit',
type: 'number',
displayOptions: {
show: {
resource: ['deal'],
operation: ['getRecentlyCreated', 'getRecentlyModified'],
returnAll: [false],
},
},
typeOptions: {
minValue: 1,
maxValue: 250,
},
default: 100,
description: 'Max number of results to return',
},
{
displayName: 'Filters',
name: 'filters',
type: 'collection',
placeholder: 'Add Filter',
default: {},
displayOptions: {
show: {
resource: ['deal'],
operation: ['getRecentlyCreated', 'getRecentlyModified'],
},
},
options: [
{
displayName: 'Since',
name: 'since',
type: 'dateTime',
default: '',
description: 'Only return deals created after timestamp x',
},
{
displayName: 'Include Property Versions',
name: 'includePropertyVersions',
type: 'boolean',
default: false,
// eslint-disable-next-line n8n-nodes-base/node-param-description-boolean-without-whether
description:
'By default, you will only get data for the most recent version of a property in the "versions" data. If you include this parameter, you will get data for all previous versions.',
},
],
},
/*--------------------------------------------------------------------------- */
/* deal:search */
/* -------------------------------------------------------------------------- */
{
displayName: 'Return All',
name: 'returnAll',
type: 'boolean',
displayOptions: {
show: {
resource: ['deal'],
operation: ['search'],
},
},
default: false,
description: 'Whether to return all results or only up to a given limit',
},
{
displayName: 'Limit',
name: 'limit',
type: 'number',
displayOptions: {
show: {
resource: ['deal'],
operation: ['search'],
returnAll: [false],
},
},
typeOptions: {
minValue: 1,
maxValue: 250,
},
default: 100,
description: 'Max number of results to return',
},
{
displayName: 'Filter Groups',
name: 'filterGroupsUi',
type: 'fixedCollection',
default: {},
placeholder: 'Add Filter Group',
typeOptions: {
multipleValues: true,
},
displayOptions: {
show: {
resource: ['deal'],
operation: ['search'],
},
},
options: [
{
name: 'filterGroupsValues',
displayName: 'Filter Group',
values: [
{
displayName: 'Filters',
name: 'filtersUi',
type: 'fixedCollection',
default: {},
placeholder: 'Add Filter',
typeOptions: {
multipleValues: true,
},
options: [
{
name: 'filterValues',
displayName: 'Filter',
values: [
{
displayName: 'Property Name or ID',
name: 'propertyName',
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: 'getDealProperties',
},
default: '',
},
{
displayName: 'Operator',
name: 'operator',
type: 'options',
options: [
{
name: 'Contains Exactly',
value: 'CONTAINS_TOKEN',
},
{
name: 'Equal',
value: 'EQ',
},
{
name: 'Greater Than',
value: 'GT',
},
{
name: 'Greater Than Or Equal',
value: 'GTE',
},
{
name: 'Is Known',
value: 'HAS_PROPERTY',
},
{
name: 'Is Unknown',
value: 'NOT_HAS_PROPERTY',
},
{
name: 'Less Than',
value: 'LT',
},
{
name: 'Less Than Or Equal',
value: 'LTE',
},
{
name: 'Not Equal',
value: 'NEQ',
},
],
default: 'EQ',
},
{
displayName: 'Value',
name: 'value',
displayOptions: {
hide: {
operator: ['HAS_PROPERTY', 'NOT_HAS_PROPERTY'],
},
},
type: 'string',
default: '',
},
],
},
],
description:
'Use filters to limit the results to only CRM objects with matching property values. More info <a href="https://developers.hubspot.com/docs/api/crm/search">here</a>.',
},
],
},
],
description:
'When multiple filters are provided within a filterGroup, they will be combined using a logical AND operator. When multiple filterGroups are provided, they will be combined using a logical OR operator. The system supports a maximum of three filterGroups with up to three filters each. More info <a href="https://developers.hubspot.com/docs/api/crm/search">here</a>',
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['deal'],
operation: ['search'],
},
},
options: [
{
displayName: 'Direction',
name: 'direction',
type: 'options',
options: [
{
name: 'ASC',
value: 'ASCENDING',
},
{
name: 'DESC',
value: 'DESCENDING',
},
],
default: 'DESCENDING',
description:
'Defines the direction in which search results are ordered. Default value is DESC.',
},
{
displayName: 'Field Names or IDs',
name: 'properties',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getDealProperties',
},
default: [],
description:
'<p>Used to include specific deal properties in the results. By default, the results will only include Deal ID and will not include the values for any properties for your company.</p><p>Including this parameter will include the data for the specified property in the results. You can include this parameter multiple times to request multiple properties separated by a comma: <code>,</code>.</p>. Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Query',
name: 'query',
type: 'string',
default: '',
description: 'Perform a text search against all property values for an object type',
},
{
// eslint-disable-next-line n8n-nodes-base/node-param-display-name-wrong-for-dynamic-options
displayName: 'Sort By',
name: 'sortBy',
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: 'getDealProperties',
},
default: 'createdate',
},
],
},
];
@@ -0,0 +1,11 @@
import type { IDataObject } from 'n8n-workflow';
export interface IAssociation {
associatedCompanyIds?: number[];
associatedVids?: number[];
}
export interface IDeal {
associations?: IAssociation;
properties?: IDataObject[];
}
@@ -0,0 +1,473 @@
import type { INodeProperties } from 'n8n-workflow';
export const engagementOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['engagement'],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create an engagement',
action: 'Create an engagement',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete an engagement',
action: 'Delete an engagement',
},
{
name: 'Get',
value: 'get',
description: 'Get an engagement',
action: 'Get an engagement',
},
{
name: 'Get Many',
value: 'getAll',
description: 'Get many engagements',
action: 'Get many engagements',
},
],
default: 'create',
},
];
export const engagementFields: INodeProperties[] = [
/* -------------------------------------------------------------------------- */
/* engagement:create */
/* -------------------------------------------------------------------------- */
{
displayName: 'Type',
name: 'type',
type: 'options',
required: true,
options: [
{
name: 'Call',
value: 'call',
},
{
name: 'Email',
value: 'email',
},
{
name: 'Meeting',
value: 'meeting',
},
{
name: 'Task',
value: 'task',
},
],
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
},
},
default: '',
},
{
displayName: 'Metadata',
name: 'metadata',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
type: ['task'],
},
},
options: [
{
displayName: 'Body',
name: 'body',
type: 'string',
default: '',
},
{
displayName: 'For Object Type',
name: 'forObjectType',
type: 'options',
options: [
{
name: 'Company',
value: 'COMPANY',
},
{
name: 'Contact',
value: 'CONTACT',
},
],
default: '',
},
{
displayName: 'Status',
name: 'status',
type: 'options',
options: [
{
name: 'Completed',
value: 'COMPLETED',
},
{
name: 'Deferred',
value: 'DEFERRED',
},
{
name: 'In Progress',
value: 'IN_PROGRESS',
},
{
name: 'Not Started',
value: 'NOT_STARTED',
},
{
name: 'Waiting',
value: 'WAITING',
},
],
default: '',
},
{
displayName: 'Subject',
name: 'subject',
type: 'string',
default: '',
},
],
},
{
displayName: 'Metadata',
name: 'metadata',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
type: ['email'],
},
},
options: [
{
displayName: 'BCC',
name: 'bcc',
type: 'string',
typeOptions: {
multipleValues: true,
multipleValueButtonText: 'Add BCC',
},
default: '',
},
{
displayName: 'CC',
name: 'cc',
type: 'string',
typeOptions: {
multipleValues: true,
multipleValueButtonText: 'Add CC',
},
default: '',
},
{
displayName: 'From Email',
name: 'fromEmail',
type: 'string',
default: '',
},
{
displayName: 'From First Name',
name: 'firstName',
type: 'string',
default: '',
},
{
displayName: 'From Last Name',
name: 'lastName',
type: 'string',
default: '',
},
{
displayName: 'HTML',
name: 'html',
type: 'string',
default: '',
},
{
displayName: 'Subject',
name: 'subject',
type: 'string',
default: '',
},
{
displayName: 'To Emails',
name: 'toEmail',
type: 'string',
typeOptions: {
multipleValues: true,
multipleValueButtonText: 'Add Email',
},
default: '',
},
],
},
{
displayName: 'Metadata',
name: 'metadata',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
type: ['meeting'],
},
},
options: [
{
displayName: 'Body',
name: 'body',
type: 'string',
default: '',
},
{
displayName: 'End Time',
name: 'endTime',
type: 'dateTime',
default: '',
},
{
displayName: 'Internal Meeting Notes',
name: 'internalMeetingNotes',
type: 'string',
default: '',
},
{
displayName: 'Start Time',
name: 'startTime',
type: 'dateTime',
default: '',
},
{
displayName: 'Title',
name: 'title',
type: 'string',
default: '',
},
],
},
{
displayName: 'Metadata',
name: 'metadata',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
type: ['call'],
},
},
options: [
{
displayName: 'Body',
name: 'body',
type: 'string',
default: '',
},
{
displayName: 'Duration Milliseconds',
name: 'durationMilliseconds',
type: 'number',
default: 0,
},
{
displayName: 'From Number',
name: 'fromNumber',
type: 'string',
default: '',
},
{
displayName: 'Recording URL',
name: 'recordingUrl',
type: 'string',
default: '',
},
{
displayName: 'Status',
name: 'status',
type: 'options',
options: [
{
name: 'Busy',
value: 'BUSY',
},
{
name: 'Calling CRM User',
value: 'CALLING_CRM_USER',
},
{
name: 'Canceled',
value: 'CANCELED',
},
{
name: 'Completed',
value: 'COMPLETED',
},
{
name: 'Connecting',
value: 'CONNECTING',
},
{
name: 'Failed',
value: 'FAILED',
},
{
name: 'In Progress',
value: 'IN_PROGRESS',
},
{
name: 'No Answer',
value: 'NO_ANSWER',
},
{
name: 'Queued',
value: 'QUEUED',
},
{
name: 'Ringing',
value: 'RINGING',
},
],
default: 'QUEUED',
},
{
displayName: 'To Number',
name: 'toNumber',
type: 'string',
default: '',
},
],
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
},
},
options: [
{
displayName: 'Associations',
name: 'associations',
type: 'collection',
placeholder: 'Add Field',
default: {},
options: [
{
displayName: 'Company IDs',
name: 'companyIds',
type: 'string',
default: '',
},
{
displayName: 'Contact IDs',
name: 'contactIds',
type: 'string',
default: '',
},
{
displayName: 'Deals IDs',
name: 'dealIds',
type: 'string',
default: '',
},
{
displayName: 'Owner IDs',
name: 'ownerIds',
type: 'string',
default: '',
},
{
displayName: 'Ticket IDs',
name: 'ticketIds',
type: 'string',
default: '',
},
],
},
],
},
/* -------------------------------------------------------------------------- */
/* engagement:get */
/* -------------------------------------------------------------------------- */
{
displayName: 'Engagement ID',
name: 'engagementId',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['engagement'],
operation: ['get', 'delete'],
},
},
default: '',
description: 'Unique identifier for a particular engagement',
},
/* -------------------------------------------------------------------------- */
/* engagement:getAll */
/* -------------------------------------------------------------------------- */
{
displayName: 'Return All',
name: 'returnAll',
type: 'boolean',
displayOptions: {
show: {
resource: ['engagement'],
operation: ['getAll'],
},
},
default: false,
description: 'Whether to return all results or only up to a given limit',
},
{
displayName: 'Limit',
name: 'limit',
type: 'number',
displayOptions: {
show: {
resource: ['engagement'],
operation: ['getAll'],
returnAll: [false],
},
},
typeOptions: {
minValue: 1,
maxValue: 250,
},
default: 100,
description: 'Max number of results to return',
},
];
@@ -0,0 +1,314 @@
import type { INodeProperties } from 'n8n-workflow';
export const formOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['form'],
},
},
options: [
{
name: 'Get Fields',
value: 'getFields',
description: 'Get all fields from a form',
action: 'Get all fields from a form',
},
{
name: 'Submit',
value: 'submit',
description: 'Submit data to a form',
action: 'Submit a form',
},
],
default: 'getFields',
},
];
export const formFields: INodeProperties[] = [
/* -------------------------------------------------------------------------- */
/* form:submit */
/* -------------------------------------------------------------------------- */
{
displayName: 'Form Name or ID',
name: 'formId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getForms',
},
required: true,
displayOptions: {
show: {
resource: ['form'],
operation: ['submit'],
},
},
default: '',
description:
'The ID of the form you\'re sending data to. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['form'],
operation: ['submit'],
},
},
options: [
{
displayName: 'Skip Validation',
name: 'skipValidation',
type: 'boolean',
default: false,
description: 'Whether or not to skip validation based on the form settings',
},
{
displayName: 'Submitted At',
name: 'submittedAt',
type: 'dateTime',
default: '',
description: 'Time of the form submission',
},
],
},
{
displayName: 'Context',
name: 'contextUi',
placeholder: 'Add Context',
type: 'fixedCollection',
typeOptions: {
multipleValues: false,
},
displayOptions: {
show: {
resource: ['form'],
operation: ['submit'],
},
},
default: {},
options: [
{
displayName: 'Context',
name: 'contextValue',
values: [
{
displayName: 'HubSpot Usertoken',
name: 'hutk',
type: 'string',
default: '',
description:
'Include this parameter and set it to the hubspotutk cookie value to enable cookie tracking on your submission',
},
{
displayName: 'IP Address',
name: 'ipAddress',
type: 'string',
default: '',
description: 'The IP address of the visitor filling out the form',
},
{
displayName: 'Page URI',
name: 'pageUri',
type: 'string',
default: '',
description: 'The URI of the page the submission happened on',
},
{
displayName: 'Page Name',
name: 'pageName',
type: 'string',
default: '',
description: 'The name or title of the page the submission happened on',
},
{
displayName: 'Page ID',
name: 'pageId',
type: 'string',
default: '',
description: 'The ID of a page created on the HubSpot CMS',
},
{
displayName: 'SFDC Campaign ID',
name: 'sfdcCampaignId',
type: 'string',
default: '',
description:
'If the form is for an account using the HubSpot Salesforce Integration, you can include the ID of a Salesforce campaign to add the contact to the specified campaign',
},
{
displayName: 'Go to Webinar Webinar ID',
name: 'goToWebinarWebinarKey',
type: 'string',
default: '',
description:
'If the form is for an account using the HubSpot GoToWebinar Integration, you can include the ID of a webinar to enroll the contact in that webinar when they submit the form',
},
],
},
],
},
{
displayName: 'Legal Consent',
name: 'lengalConsentUi',
placeholder: 'Add Legal Consent',
type: 'fixedCollection',
typeOptions: {
multipleValues: false,
},
displayOptions: {
show: {
resource: ['form'],
operation: ['submit'],
},
},
default: {},
options: [
{
displayName: 'Consent',
name: 'lengalConsentValues',
values: [
{
displayName: 'Consent To Process',
name: 'consentToProcess',
type: 'boolean',
default: false,
description: 'Whether or not the visitor checked the Consent to process checkbox',
},
{
displayName: 'Text',
name: 'text',
type: 'string',
default: '',
description: 'The text displayed to the visitor for the Consent to process checkbox',
},
{
displayName: 'Communications',
name: 'communicationsUi',
placeholder: 'Add Communication',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
default: {},
options: [
{
displayName: 'Communication',
name: 'communicationValues',
values: [
{
displayName: 'Subcription Type Name or ID',
name: 'subscriptionTypeId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getSubscriptionTypes',
},
default: '',
description:
'The ID of the specific subscription type. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Value',
name: 'value',
type: 'boolean',
default: false,
description:
'Whether or not the visitor checked the checkbox for this subscription type',
},
{
displayName: 'Text',
name: 'text',
type: 'string',
default: '',
description:
'The text displayed to the visitor for this specific subscription checkbox',
},
],
},
],
},
],
},
{
displayName: 'Legitimate Interest',
name: 'legitimateInterestValues',
values: [
{
displayName: 'Subcription Type Name or ID',
name: 'subscriptionTypeId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getSubscriptionTypes',
},
default: '',
description:
'The ID of the specific subscription type that this forms indicates interest to. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Value',
name: 'value',
type: 'boolean',
default: false,
// eslint-disable-next-line n8n-nodes-base/node-param-description-boolean-without-whether
description:
"This must be true when using the 'legitimateInterest' option, as it reflects the consent indicated by the visitor when submitting the form",
},
{
displayName: 'Legal Basis',
name: 'legalBasis',
type: 'options',
options: [
{
name: 'Customer',
value: 'CUSTOMER',
},
{
name: 'Lead',
value: 'LEAD',
},
],
default: '',
description: 'The privacy text displayed to the visitor',
},
{
displayName: 'Text',
name: 'text',
type: 'string',
default: '',
description: 'The privacy text displayed to the visitor',
},
],
},
],
},
/* -------------------------------------------------------------------------- */
/* form:getFields */
/* -------------------------------------------------------------------------- */
{
displayName: 'Form Name or ID',
name: 'formId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getForms',
},
required: true,
displayOptions: {
show: {
resource: ['form'],
operation: ['getFields'],
},
},
default: '',
description:
'The ID of the form. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
];
@@ -0,0 +1,21 @@
import type { IDataObject } from 'n8n-workflow';
export interface IContext {
goToWebinarWebinarKey?: string;
hutk?: string;
ipAddress?: string;
pageId?: string;
pageName?: string;
pageUri?: string;
sfdcCampaignId?: string;
}
export interface IForm {
portalId?: number;
formId?: string;
fields?: IDataObject[];
legalConsentOptions?: IDataObject;
context?: IContext[];
submittedAt?: number;
skipValidation?: boolean;
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,523 @@
import type { INodeProperties } from 'n8n-workflow';
export const ticketOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['ticket'],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create a ticket',
action: 'Create a ticket',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete a ticket',
action: 'Delete a ticket',
},
{
name: 'Get',
value: 'get',
description: 'Get a ticket',
action: 'Get a ticket',
},
{
name: 'Get Many',
value: 'getAll',
description: 'Get many tickets',
action: 'Get many tickets',
},
{
name: 'Update',
value: 'update',
description: 'Update a ticket',
action: 'Update a ticket',
},
],
default: 'create',
},
];
export const ticketFields: INodeProperties[] = [
/* -------------------------------------------------------------------------- */
/* ticket:create */
/* -------------------------------------------------------------------------- */
{
displayName: 'Pipeline Name or ID',
name: 'pipelineId',
type: 'options',
required: true,
typeOptions: {
loadOptionsMethod: 'getTicketPipelines',
},
displayOptions: {
show: {
resource: ['ticket'],
operation: ['create'],
},
},
default: '',
description:
'The ID of the pipeline the ticket is in. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Stage Name or ID',
name: 'stageId',
type: 'options',
required: true,
typeOptions: {
loadOptionsMethod: 'getTicketStages',
loadOptionsDependsOn: ['pipelineId'],
},
displayOptions: {
show: {
resource: ['ticket'],
operation: ['create'],
},
},
default: '',
description:
'The ID of the pipeline the ticket is in. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Ticket Name',
name: 'ticketName',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['ticket'],
operation: ['create'],
},
},
default: '',
description: 'The ID of the pipeline the ticket is in',
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['ticket'],
operation: ['create'],
},
},
options: [
{
displayName: 'Company Names or IDs',
name: 'associatedCompanyIds',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getCompanies',
},
default: [],
description:
'Companies associated with the ticket. Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Contact Names or IDs',
name: 'associatedContactIds',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getContacts',
},
default: [],
description:
'Contacts associated with the ticket. Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Category Name or ID',
name: 'category',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketCategories',
},
default: '',
description:
'Main reason customer reached out for help. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Close Date',
name: 'closeDate',
type: 'dateTime',
default: '',
description: 'The date the ticket was closed',
},
{
displayName: 'Create Date',
name: 'createDate',
type: 'dateTime',
default: '',
description: 'The date the ticket was created',
},
{
displayName: 'Description',
name: 'description',
type: 'string',
default: '',
description: 'Description of the ticket',
},
{
displayName: 'Priority Name or ID',
name: 'priority',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketPriorities',
},
default: '',
description:
'The level of attention needed on the ticket. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Resolution Name or ID',
name: 'resolution',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketResolutions',
},
default: '',
description:
'The action taken to resolve the ticket. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Source Name or ID',
name: 'source',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketSources',
},
default: '',
description:
'Channel where ticket was originally submitted. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Ticket Owner Name or ID',
name: 'ticketOwnerId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getOwners',
},
default: '',
description:
'The user from your team that the ticket is assigned to. You can assign additional users to a ticket record by creating a custom HubSpot user property. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
],
},
/* -------------------------------------------------------------------------- */
/* ticket:update */
/* -------------------------------------------------------------------------- */
{
displayName: 'Ticket ID',
name: 'ticketId',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['ticket'],
operation: ['update'],
},
},
default: '',
description: 'Unique identifier for a particular ticket',
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['ticket'],
operation: ['update'],
},
},
options: [
{
displayName: 'Company Names or IDs',
name: 'associatedCompanyIds',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getCompanies',
},
default: [],
description:
'Companies associated with the ticket. Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Contact Names or IDs',
name: 'associatedContactIds',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getContacts',
},
default: [],
description:
'Contact associated with the ticket. Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Category Name or ID',
name: 'category',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketCategories',
},
default: '',
description:
'Main reason customer reached out for help. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Close Date',
name: 'closeDate',
type: 'dateTime',
default: '',
description: 'The date the ticket was closed',
},
{
displayName: 'Create Date',
name: 'createDate',
type: 'dateTime',
default: '',
description: 'The date the ticket was created',
},
{
displayName: 'Description',
name: 'description',
type: 'string',
default: '',
description: 'Description of the ticket',
},
{
displayName: 'Pipeline Name or ID',
name: 'pipelineId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketPipelines',
},
default: '',
description:
'The ID of the pipeline the ticket is in. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Priority Name or ID',
name: 'priority',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketPriorities',
},
default: '',
description:
'The level of attention needed on the ticket. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Resolution Name or ID',
name: 'resolution',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketResolutions',
},
default: '',
description:
'The action taken to resolve the ticket. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Source Name or ID',
name: 'source',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketSources',
},
default: '',
description:
'Channel where ticket was originally submitted. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Stage Name or ID',
name: 'stageId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketStages',
loadOptionsDependsOn: ['updateFields.pipelineId'],
},
default: '',
description:
'The stage ID of the pipeline the ticket is in; depends on Pipeline ID. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Ticket Name',
name: 'ticketName',
type: 'string',
default: '',
description: 'The ID of the pipeline the ticket is in',
},
{
displayName: 'Ticket Owner Name or ID',
name: 'ticketOwnerId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getOwners',
},
default: '',
description:
'The user from your team that the ticket is assigned to. You can assign additional users to a ticket record by creating a custom HubSpot user property. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
],
},
/* -------------------------------------------------------------------------- */
/* ticket:get */
/* -------------------------------------------------------------------------- */
{
displayName: 'Ticket ID',
name: 'ticketId',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['ticket'],
operation: ['get'],
},
},
default: '',
description: 'Unique identifier for a particular ticket',
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['ticket'],
operation: ['get'],
},
},
options: [
{
displayName: 'Include Deleted',
name: 'includeDeleted',
type: 'boolean',
default: false,
},
{
displayName: 'Property Names or IDs',
name: 'properties',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getTicketProperties',
},
default: [],
description:
'<p>Used to include specific ticket properties in the results. By default, the results will only include ticket ID and will not include the values for any properties for your tickets.</p><p>Including this parameter will include the data for the specified property in the results. You can include this parameter multiple times to request multiple properties separated by a comma: <code>,</code>.</p>. Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Properties With History',
name: 'propertiesWithHistory',
type: 'string',
default: '',
description:
"Works similarly to properties=, but this parameter will include the history for the specified property, instead of just including the current value. Use this parameter when you need the full history of changes to a property's value.",
},
],
},
/* -------------------------------------------------------------------------- */
/* ticket:getAll */
/* -------------------------------------------------------------------------- */
{
displayName: 'Return All',
name: 'returnAll',
type: 'boolean',
displayOptions: {
show: {
resource: ['ticket'],
operation: ['getAll'],
},
},
default: false,
description: 'Whether to return all results or only up to a given limit',
},
{
displayName: 'Limit',
name: 'limit',
type: 'number',
displayOptions: {
show: {
resource: ['ticket'],
operation: ['getAll'],
returnAll: [false],
},
},
typeOptions: {
minValue: 1,
maxValue: 250,
},
default: 100,
description: 'Max number of results to return',
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['ticket'],
operation: ['getAll'],
},
},
options: [
{
displayName: 'Property Names or IDs',
name: 'properties',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getTicketProperties',
},
default: [],
description:
'<p>Used to include specific ticket properties in the results. By default, the results will only include ticket ID and will not include the values for any properties for your company.</p><p>Including this parameter will include the data for the specified property in the results. You can include this parameter multiple times to request multiple properties separated by a comma: <code>,</code>.</p>. Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Properties With History',
name: 'propertiesWithHistory',
type: 'string',
default: '',
description:
"Works similarly to properties=, but this parameter will include the history for the specified property, instead of just including the current value. Use this parameter when you need the full history of changes to a property's value.",
},
],
},
/* -------------------------------------------------------------------------- */
/* ticket:delete */
/* -------------------------------------------------------------------------- */
{
displayName: 'Ticket ID',
name: 'ticketId',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['ticket'],
operation: ['delete'],
},
},
default: '',
description: 'Unique identifier for a particular ticket',
},
];
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,131 @@
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 a contact from a list',
action: 'Remove a contact from a list',
},
],
default: 'add',
},
];
export const contactListFields: INodeProperties[] = [
/* -------------------------------------------------------------------------- */
/* contactList:add */
/* -------------------------------------------------------------------------- */
{
displayName: 'By',
name: 'by',
type: 'options',
options: [
{
name: 'Contact ID',
value: 'id',
},
{
name: 'Email',
value: 'email',
},
],
required: true,
displayOptions: {
show: {
resource: ['contactList'],
operation: ['add'],
},
},
default: 'email',
},
{
displayName: 'Email',
name: 'email',
type: 'string',
placeholder: 'name@email.com',
required: true,
displayOptions: {
show: {
resource: ['contactList'],
operation: ['add'],
by: ['email'],
},
},
default: '',
},
{
displayName: 'Contact to Add',
name: 'id',
type: 'number',
required: true,
displayOptions: {
show: {
resource: ['contactList'],
operation: ['add'],
by: ['id'],
},
},
default: '',
},
{
displayName: 'List to Add To',
name: 'listId',
type: 'number',
required: true,
displayOptions: {
show: {
resource: ['contactList'],
operation: ['add'],
},
},
default: '',
},
/* -------------------------------------------------------------------------- */
/* contactList:remove */
/* -------------------------------------------------------------------------- */
{
displayName: 'Contact to Remove',
name: 'id',
type: 'number',
required: true,
displayOptions: {
show: {
resource: ['contactList'],
operation: ['remove'],
},
},
default: '',
},
{
displayName: 'List to Remove From',
name: 'listId',
type: 'number',
required: true,
displayOptions: {
show: {
resource: ['contactList'],
operation: ['remove'],
},
},
default: '',
},
];
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,11 @@
import type { IDataObject } from 'n8n-workflow';
export interface IAssociation {
associatedCompanyIds?: number[];
associatedVids?: number[];
}
export interface IDeal {
associations?: IAssociation;
properties?: IDataObject[];
}
@@ -0,0 +1,575 @@
import type { INodeProperties } from 'n8n-workflow';
export const engagementOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['engagement'],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create an engagement',
action: 'Create an engagement',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete an engagement',
action: 'Delete an engagement',
},
{
name: 'Get',
value: 'get',
description: 'Get an engagement',
action: 'Get an engagement',
},
{
name: 'Get Many',
value: 'getAll',
description: 'Get many engagements',
action: 'Get many engagements',
},
],
default: 'create',
},
];
export const engagementFields: INodeProperties[] = [
/* -------------------------------------------------------------------------- */
/* engagement:create */
/* -------------------------------------------------------------------------- */
{
displayName: 'Type',
name: 'type',
type: 'options',
required: true,
options: [
{
name: 'Call',
value: 'call',
},
{
name: 'Email',
value: 'email',
},
{
name: 'Meeting',
value: 'meeting',
},
{
name: 'Task',
value: 'task',
},
],
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
},
},
default: '',
},
{
displayName: 'Due Date',
name: 'dueDate',
type: 'dateTime',
required: true,
description: 'The due date for the task',
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
type: ['task'],
'@version': [{ _cnd: { gte: 2.2 } }],
},
},
default: '',
},
{
displayName: 'Metadata',
name: 'metadata',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
type: ['task'],
},
},
options: [
{
displayName: 'Body',
name: 'body',
type: 'string',
default: '',
},
{
displayName: 'For Object Type',
name: 'forObjectType',
type: 'options',
options: [
{
name: 'Company',
value: 'COMPANY',
},
{
name: 'Contact',
value: 'CONTACT',
},
],
default: '',
},
{
displayName: 'Status',
name: 'status',
type: 'options',
options: [
{
name: 'Completed',
value: 'COMPLETED',
},
{
name: 'Deferred',
value: 'DEFERRED',
},
{
name: 'In Progress',
value: 'IN_PROGRESS',
},
{
name: 'Not Started',
value: 'NOT_STARTED',
},
{
name: 'Waiting',
value: 'WAITING',
},
],
default: '',
},
{
displayName: 'Subject',
name: 'subject',
type: 'string',
default: '',
},
],
},
{
displayName: 'Metadata',
name: 'metadata',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
type: ['email'],
},
},
options: [
{
displayName: 'BCC',
name: 'bcc',
type: 'string',
typeOptions: {
multipleValues: true,
multipleValueButtonText: 'Add BCC',
},
default: '',
},
{
displayName: 'CC',
name: 'cc',
type: 'string',
typeOptions: {
multipleValues: true,
multipleValueButtonText: 'Add CC',
},
default: '',
},
{
displayName: 'From Email',
name: 'fromEmail',
type: 'string',
default: '',
},
{
displayName: 'From First Name',
name: 'firstName',
type: 'string',
default: '',
},
{
displayName: 'From Last Name',
name: 'lastName',
type: 'string',
default: '',
},
{
displayName: 'HTML',
name: 'html',
type: 'string',
default: '',
},
{
displayName: 'Subject',
name: 'subject',
type: 'string',
default: '',
},
{
displayName: 'To Emails',
name: 'toEmail',
type: 'string',
typeOptions: {
multipleValues: true,
multipleValueButtonText: 'Add Email',
},
default: '',
},
],
},
{
displayName: 'Metadata',
name: 'metadata',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
type: ['meeting'],
},
},
options: [
{
displayName: 'Body',
name: 'body',
type: 'string',
default: '',
},
{
displayName: 'End Time',
name: 'endTime',
type: 'dateTime',
default: '',
description:
'When using expressions, the time should be specified in YYYY-MM-DD hh-mm-ss format',
},
{
displayName: 'Internal Meeting Notes',
name: 'internalMeetingNotes',
type: 'string',
default: '',
},
{
displayName: 'Start Time',
name: 'startTime',
type: 'dateTime',
default: '',
description:
'When using expressions, the time should be specified in YYYY-MM-DD hh-mm-ss format',
},
{
displayName: 'Title',
name: 'title',
type: 'string',
default: '',
},
],
},
{
displayName: 'Metadata',
name: 'metadata',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
type: ['call'],
},
},
options: [
{
displayName: 'Body',
name: 'body',
type: 'string',
default: '',
},
{
displayName: 'Duration Milliseconds',
name: 'durationMilliseconds',
type: 'number',
default: 0,
},
{
displayName: 'From Number',
name: 'fromNumber',
type: 'string',
default: '',
},
{
displayName: 'Recording URL',
name: 'recordingUrl',
type: 'string',
default: '',
},
{
displayName: 'Status',
name: 'status',
type: 'options',
options: [
{
name: 'Busy',
value: 'BUSY',
},
{
name: 'Calling CRM User',
value: 'CALLING_CRM_USER',
},
{
name: 'Canceled',
value: 'CANCELED',
},
{
name: 'Completed',
value: 'COMPLETED',
},
{
name: 'Connecting',
value: 'CONNECTING',
},
{
name: 'Failed',
value: 'FAILED',
},
{
name: 'In Progress',
value: 'IN_PROGRESS',
},
{
name: 'No Answer',
value: 'NO_ANSWER',
},
{
name: 'Queued',
value: 'QUEUED',
},
{
name: 'Ringing',
value: 'RINGING',
},
],
default: 'QUEUED',
},
{
displayName: 'To Number',
name: 'toNumber',
type: 'string',
default: '',
},
],
},
{
displayName: 'Engagement Properties',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Property',
default: {},
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
},
},
options: [
{
displayName: 'Associations',
name: 'associations',
type: 'collection',
placeholder: 'Add Field',
default: {},
options: [
{
displayName: 'Company IDs',
name: 'companyIds',
type: 'string',
default: '',
},
{
displayName: 'Contact IDs',
name: 'contactIds',
type: 'string',
default: '',
},
{
displayName: 'Deals IDs',
name: 'dealIds',
type: 'string',
default: '',
},
{
displayName: 'Owner IDs',
name: 'ownerIds',
type: 'string',
default: '',
displayOptions: {
show: {
'@version': [{ _cnd: { lt: 2.2 } }],
},
},
},
{
displayName: 'Owner ID',
name: 'ownerId',
type: 'number',
default: 0,
displayOptions: {
show: {
'@version': [{ _cnd: { gte: 2.2 } }],
},
},
},
{
displayName: 'Ticket IDs',
name: 'ticketIds',
type: 'string',
default: '',
},
],
},
],
},
/* -------------------------------------------------------------------------- */
/* engagement:get/delete */
/* -------------------------------------------------------------------------- */
{
displayName: 'Engagement to Get',
name: 'engagementId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
displayOptions: {
show: {
resource: ['engagement'],
operation: ['get'],
},
},
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select from the list',
typeOptions: {
searchListMethod: 'searchEngagements',
},
},
{
displayName: 'By Id',
name: 'id',
type: 'string',
placeholder: '58539222',
validation: [
{
type: 'regex',
properties: {
regex: '[0-9]+',
errorMessage: 'Not a valid HubSpot Engagement ID',
},
},
],
},
],
},
{
displayName: 'Engagement to Delete',
name: 'engagementId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
displayOptions: {
show: {
resource: ['engagement'],
operation: ['delete'],
},
},
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select from the list',
typeOptions: {
searchListMethod: 'searchEngagements',
},
},
{
displayName: 'By Id',
name: 'id',
type: 'string',
placeholder: '58539222',
validation: [
{
type: 'regex',
properties: {
regex: '[0-9]+',
errorMessage: 'Not a valid HubSpot Engagement ID',
},
},
],
},
],
},
/* -------------------------------------------------------------------------- */
/* engagement:getAll */
/* -------------------------------------------------------------------------- */
{
displayName: 'Return All',
name: 'returnAll',
type: 'boolean',
displayOptions: {
show: {
resource: ['engagement'],
operation: ['getAll'],
},
},
default: false,
description: 'Whether to return all results or only up to a given limit',
},
{
displayName: 'Limit',
name: 'limit',
type: 'number',
displayOptions: {
show: {
resource: ['engagement'],
operation: ['getAll'],
returnAll: [false],
},
},
typeOptions: {
minValue: 1,
maxValue: 250,
},
default: 100,
description: 'Max number of results to return',
},
];
@@ -0,0 +1,315 @@
import type { INodeProperties } from 'n8n-workflow';
export const formOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['form'],
},
},
options: [
{
name: 'Get Fields',
value: 'getFields',
description: 'Get all fields from a form',
action: 'Get all fields from a form',
},
{
name: 'Submit',
value: 'submit',
description: 'Submit data to a form',
action: 'Submit a form',
},
],
default: 'getFields',
},
];
export const formFields: INodeProperties[] = [
/* -------------------------------------------------------------------------- */
/* form:submit */
/* -------------------------------------------------------------------------- */
{
displayName: 'Form Name or ID',
name: 'formId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getForms',
},
required: true,
displayOptions: {
show: {
resource: ['form'],
operation: ['submit'],
},
},
default: '',
description:
'The ID of the form you\'re sending data to. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Options',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add option',
default: {},
displayOptions: {
show: {
resource: ['form'],
operation: ['submit'],
},
},
options: [
{
displayName: 'Skip Validation',
name: 'skipValidation',
type: 'boolean',
default: false,
description: 'Whether or not to skip validation based on the form settings',
},
{
displayName: 'Submitted At',
name: 'submittedAt',
type: 'dateTime',
default: '',
description:
'Time of the form submission. When using expressions, the time should be specified in YYYY-MM-DD hh-mm-ss format.',
},
],
},
{
displayName: 'Context',
name: 'contextUi',
placeholder: 'Add Context',
type: 'fixedCollection',
typeOptions: {
multipleValues: false,
},
displayOptions: {
show: {
resource: ['form'],
operation: ['submit'],
},
},
default: {},
options: [
{
displayName: 'Context',
name: 'contextValue',
values: [
{
displayName: 'HubSpot Usertoken',
name: 'hutk',
type: 'string',
default: '',
description:
'Include this parameter and set it to the hubspotutk cookie value to enable cookie tracking on your submission',
},
{
displayName: 'IP Address',
name: 'ipAddress',
type: 'string',
default: '',
description: 'The IP address of the visitor filling out the form',
},
{
displayName: 'Page URI',
name: 'pageUri',
type: 'string',
default: '',
description: 'The URI of the page the submission happened on',
},
{
displayName: 'Page Name',
name: 'pageName',
type: 'string',
default: '',
description: 'The name or title of the page the submission happened on',
},
{
displayName: 'Page ID',
name: 'pageId',
type: 'number',
default: '',
description: 'The ID of a page created on the HubSpot CMS',
},
{
displayName: 'SFDC Campaign ID',
name: 'sfdcCampaignId',
type: 'number',
default: '',
description:
'If the form is for an account using the HubSpot Salesforce Integration, you can include the ID of a Salesforce campaign to add the contact to the specified campaign',
},
{
displayName: 'Go to Webinar Webinar ID',
name: 'goToWebinarWebinarKey',
type: 'number',
default: '',
description:
'If the form is for an account using the HubSpot GoToWebinar Integration, you can include the ID of a webinar to enroll the contact in that webinar when they submit the form',
},
],
},
],
},
{
displayName: 'Legal Consent',
name: 'lengalConsentUi',
placeholder: 'Add Legal Consent',
type: 'fixedCollection',
typeOptions: {
multipleValues: false,
},
displayOptions: {
show: {
resource: ['form'],
operation: ['submit'],
},
},
default: {},
options: [
{
displayName: 'Consent',
name: 'lengalConsentValues',
values: [
{
displayName: 'Consent To Process',
name: 'consentToProcess',
type: 'boolean',
default: false,
description: 'Whether or not the visitor checked the Consent to process checkbox',
},
{
displayName: 'Text',
name: 'text',
type: 'string',
default: '',
description: 'The text displayed to the visitor for the Consent to process checkbox',
},
{
displayName: 'Communications',
name: 'communicationsUi',
placeholder: 'Add Communication',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
default: {},
options: [
{
displayName: 'Communication',
name: 'communicationValues',
values: [
{
displayName: 'Subcription Type Name or ID',
name: 'subscriptionTypeId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getSubscriptionTypes',
},
default: '',
description:
'The ID of the specific subscription type. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Value',
name: 'value',
type: 'boolean',
default: false,
description:
'Whether or not the visitor checked the checkbox for this subscription type',
},
{
displayName: 'Text',
name: 'text',
type: 'string',
default: '',
description:
'The text displayed to the visitor for this specific subscription checkbox',
},
],
},
],
},
],
},
{
displayName: 'Legitimate Interest',
name: 'legitimateInterestValues',
values: [
{
displayName: 'Subcription Type Name or ID',
name: 'subscriptionTypeId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getSubscriptionTypes',
},
default: '',
description:
'The ID of the specific subscription type that this forms indicates interest to. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Value',
name: 'value',
type: 'boolean',
default: false,
// eslint-disable-next-line n8n-nodes-base/node-param-description-boolean-without-whether
description:
"This must be true when using the 'legitimateInterest' option, as it reflects the consent indicated by the visitor when submitting the form",
},
{
displayName: 'Legal Basis',
name: 'legalBasis',
type: 'options',
options: [
{
name: 'Customer',
value: 'CUSTOMER',
},
{
name: 'Lead',
value: 'LEAD',
},
],
default: '',
description: 'The privacy text displayed to the visitor',
},
{
displayName: 'Text',
name: 'text',
type: 'string',
default: '',
description: 'The privacy text displayed to the visitor',
},
],
},
],
},
/* -------------------------------------------------------------------------- */
/* form:getFields */
/* -------------------------------------------------------------------------- */
{
displayName: 'Form Name or ID',
name: 'formId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getForms',
},
required: true,
displayOptions: {
show: {
resource: ['form'],
operation: ['getFields'],
},
},
default: '',
description:
'The ID of the form. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
];
@@ -0,0 +1,21 @@
import type { IDataObject } from 'n8n-workflow';
export interface IContext {
goToWebinarWebinarKey?: string;
hutk?: string;
ipAddress?: string;
pageId?: string;
pageName?: string;
pageUri?: string;
sfdcCampaignId?: string;
}
export interface IForm {
portalId?: number;
formId?: string;
fields?: IDataObject[];
legalConsentOptions?: IDataObject;
context?: IContext[];
submittedAt?: number;
skipValidation?: boolean;
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,606 @@
import type { INodeProperties } from 'n8n-workflow';
export const ticketOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['ticket'],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create a ticket',
action: 'Create a ticket',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete a ticket',
action: 'Delete a ticket',
},
{
name: 'Get',
value: 'get',
description: 'Get a ticket',
action: 'Get a ticket',
},
{
name: 'Get Many',
value: 'getAll',
description: 'Get many tickets',
action: 'Get many tickets',
},
{
name: 'Update',
value: 'update',
description: 'Update a ticket',
action: 'Update a ticket',
},
],
default: 'create',
},
];
export const ticketFields: INodeProperties[] = [
/* -------------------------------------------------------------------------- */
/* ticket:create */
/* -------------------------------------------------------------------------- */
{
displayName: 'Pipeline Name or ID',
name: 'pipelineId',
type: 'options',
required: true,
typeOptions: {
loadOptionsMethod: 'getTicketPipelines',
},
displayOptions: {
show: {
resource: ['ticket'],
operation: ['create'],
},
},
default: '',
description:
'The ID of the pipeline the ticket is in. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Stage Name or ID',
name: 'stageId',
type: 'options',
required: true,
typeOptions: {
loadOptionsMethod: 'getTicketStages',
loadOptionsDependsOn: ['pipelineId'],
},
displayOptions: {
show: {
resource: ['ticket'],
operation: ['create'],
},
},
default: '',
description:
'The stage ID of the pipeline the ticket is in; depends on Pipeline ID. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Ticket Name',
name: 'ticketName',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['ticket'],
operation: ['create'],
},
},
default: '',
},
{
displayName: 'Ticket Properties',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Property',
default: {},
displayOptions: {
show: {
resource: ['ticket'],
operation: ['create'],
},
},
options: [
{
displayName: 'Company Names or IDs',
name: 'associatedCompanyIds',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getCompanies',
},
default: [],
description:
'Whether to include specific Company properties in the returned results. Choose from a list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>. Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Contact Names or IDs',
name: 'associatedContactIds',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getContacts',
},
default: [],
description:
'Whether to include specific Contact properties in the returned results. Choose from a list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>. Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Category Name or ID',
name: 'category',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketCategories',
},
default: '',
description:
'Main reason customer reached out for help. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Close Date',
name: 'closeDate',
type: 'dateTime',
default: '',
description:
'The date the ticket was closed. When using expressions, the time should be specified in YYYY-MM-DD hh-mm-ss format.',
},
{
displayName: 'Create Date',
name: 'createDate',
type: 'dateTime',
default: '',
description:
'The date the ticket was created. When using expressions, the time should be specified in YYYY-MM-DD hh-mm-ss format.',
},
{
displayName: 'Description',
name: 'description',
type: 'string',
typeOptions: {
alwaysOpenEditWindow: true,
},
default: '',
description: 'Description of the ticket',
},
{
displayName: 'Priority Name or ID',
name: 'priority',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketPriorities',
},
default: '',
description:
'The level of attention needed on the ticket. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Resolution Name or ID',
name: 'resolution',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketResolutions',
},
default: '',
description:
'The action taken to resolve the ticket. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Source Name or ID',
name: 'source',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketSources',
},
default: '',
description:
'Channel where ticket was originally submitted. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Ticket Owner Name or ID',
name: 'ticketOwnerId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getOwners',
},
default: '',
description:
'The user from your team that the ticket is assigned to. You can assign additional users to a ticket record by creating a custom HubSpot user property. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
],
},
/* -------------------------------------------------------------------------- */
/* ticket:update */
/* -------------------------------------------------------------------------- */
{
displayName: 'Ticket to Update',
name: 'ticketId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
displayOptions: {
show: {
resource: ['ticket'],
operation: ['update'],
},
},
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select from the list',
typeOptions: {
searchListMethod: 'searchTickets',
},
},
{
displayName: 'By Id',
name: 'id',
type: 'string',
placeholder: '58539222',
validation: [
{
type: 'regex',
properties: {
regex: '[0-9]+',
errorMessage: 'Not a valid HubSpot Ticket ID',
},
},
],
},
],
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['ticket'],
operation: ['update'],
},
},
options: [
{
displayName: 'Company Names or IDs',
name: 'associatedCompanyIds',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getCompanies',
},
default: [],
description:
'Whether to include specific Company properties in the returned results. Choose from a list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>. Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Contact Names or IDs',
name: 'associatedContactIds',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getContacts',
},
default: [],
description:
'Whether to include specific Contact properties in the returned results. Choose from a list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>. Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Category Name or ID',
name: 'category',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketCategories',
},
default: '',
description:
'Main reason customer reached out for help. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Close Date',
name: 'closeDate',
type: 'dateTime',
default: '',
description:
'The date the ticket was closed. When using expressions, the time should be specified in YYYY-MM-DD hh-mm-ss format.',
},
{
displayName: 'Create Date',
name: 'createDate',
type: 'dateTime',
default: '',
description:
'The date the ticket was created. When using expressions, the time should be specified in YYYY-MM-DD hh-mm-ss format.',
},
{
displayName: 'Description',
name: 'description',
type: 'string',
typeOptions: {
alwaysOpenEditWindow: true,
},
default: '',
description: 'Description of the ticket',
},
{
displayName: 'Pipeline Name or ID',
name: 'pipelineId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketPipelines',
},
default: '',
description:
'The ID of the pipeline the ticket is in. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Priority Name or ID',
name: 'priority',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketPriorities',
},
default: '',
description:
'The level of attention needed on the ticket. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Resolution Name or ID',
name: 'resolution',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketResolutions',
},
default: '',
description:
'The action taken to resolve the ticket. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Source Name or ID',
name: 'source',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketSources',
},
default: '',
description:
'Channel where ticket was originally submitted. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Stage Name or ID',
name: 'stageId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTicketStages',
loadOptionsDependsOn: ['updateFields.pipelineId'],
},
default: '',
description:
'The stage ID of the pipeline the ticket is in; depends on Pipeline ID. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Ticket Name',
name: 'ticketName',
type: 'string',
default: '',
},
{
displayName: 'Ticket Owner Name or ID',
name: 'ticketOwnerId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getOwners',
},
default: '',
description:
'The user from your team that the ticket is assigned to. You can assign additional users to a ticket record by creating a custom HubSpot user property. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
],
},
/* -------------------------------------------------------------------------- */
/* ticket:get */
/* -------------------------------------------------------------------------- */
{
displayName: 'Ticket to Get',
name: 'ticketId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
displayOptions: {
show: {
resource: ['ticket'],
operation: ['get'],
},
},
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select from the list',
typeOptions: {
searchListMethod: 'searchTickets',
},
},
{
displayName: 'By Id',
name: 'id',
type: 'string',
placeholder: '58539222',
validation: [
{
type: 'regex',
properties: {
regex: '[0-9]+',
errorMessage: 'Not a valid HubSpot Ticket ID',
},
},
],
},
],
},
{
displayName: 'Options',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add option',
default: {},
displayOptions: {
show: {
resource: ['ticket'],
operation: ['get'],
},
},
options: [
{
displayName: 'Include Deleted',
name: 'includeDeleted',
type: 'boolean',
default: false,
},
{
displayName: 'Ticket Properties to Include',
name: 'properties',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getTicketProperties',
},
default: [],
description:
'Whether to include specific Ticket properties in the returned results. Choose from a list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>. Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Properties With History',
name: 'propertiesWithHistory',
type: 'string',
default: '',
description:
"Works similarly to properties=, but this parameter will include the history for the specified property, instead of just including the current value. Use this parameter when you need the full history of changes to a property's value.",
},
],
},
/* -------------------------------------------------------------------------- */
/* ticket:getAll */
/* -------------------------------------------------------------------------- */
{
displayName: 'Return All',
name: 'returnAll',
type: 'boolean',
displayOptions: {
show: {
resource: ['ticket'],
operation: ['getAll'],
},
},
default: false,
description: 'Whether to return all results or only up to a given limit',
},
{
displayName: 'Limit',
name: 'limit',
type: 'number',
displayOptions: {
show: {
resource: ['ticket'],
operation: ['getAll'],
returnAll: [false],
},
},
typeOptions: {
minValue: 1,
maxValue: 250,
},
default: 100,
description: 'Max number of results to return',
},
{
displayName: 'Options',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add option',
default: {},
displayOptions: {
show: {
resource: ['ticket'],
operation: ['getAll'],
},
},
options: [
{
displayName: 'Ticket Properties to Include',
name: 'properties',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getTicketProperties',
},
default: [],
description:
'Whether to include specific Ticket properties in the returned results. Choose from a list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>. Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Properties With History',
name: 'propertiesWithHistory',
type: 'string',
default: '',
description:
"Works similarly to properties=, but this parameter will include the history for the specified property, instead of just including the current value. Use this parameter when you need the full history of changes to a property's value.",
},
],
},
/* -------------------------------------------------------------------------- */
/* ticket:delete */
/* -------------------------------------------------------------------------- */
{
displayName: 'Ticket to Delete',
name: 'ticketId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
displayOptions: {
show: {
resource: ['ticket'],
operation: ['delete'],
},
},
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select from the list',
typeOptions: {
searchListMethod: 'searchTickets',
},
},
{
displayName: 'By Id',
name: 'id',
type: 'string',
placeholder: '58539222',
validation: [
{
type: 'regex',
properties: {
regex: '[0-9]+',
errorMessage: 'Not a valid HubSpot Ticket ID',
},
},
],
},
],
},
];
@@ -0,0 +1,12 @@
import moment from 'moment-timezone';
export function parseToTimestamp(dateString: unknown): number {
if (typeof dateString !== 'string') {
throw new Error('Invalid date string');
}
const timestamp = moment(dateString).valueOf();
if (isNaN(timestamp)) {
throw new Error('Invalid date string');
}
return timestamp;
}
@@ -0,0 +1,434 @@
{
"type": "object",
"properties": {
"companyId": {
"type": "integer"
},
"isDeleted": {
"type": "boolean"
},
"portalId": {
"type": "integer"
},
"properties": {
"type": "object",
"properties": {
"createdate": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "null"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"value": {
"type": "string"
}
}
}
}
}
},
"hs_lastmodifieddate": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "null"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"value": {
"type": "string"
}
}
}
}
}
},
"hs_object_id": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "null"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"value": {
"type": "string"
}
}
}
}
}
},
"hs_object_source": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "null"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"value": {
"type": "string"
}
}
}
}
}
},
"hs_object_source_id": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "null"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"value": {
"type": "string"
}
}
}
}
}
},
"hs_object_source_label": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "null"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"value": {
"type": "string"
}
}
}
}
}
},
"hs_pipeline": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "null"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"value": {
"type": "string"
}
}
}
}
}
},
"lifecyclestage": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "null"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"value": {
"type": "string"
}
}
}
}
}
},
"name": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "null"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"value": {
"type": "string"
}
}
}
}
}
}
}
}
},
"version": 1
}
@@ -0,0 +1,80 @@
{
"type": "object",
"properties": {
"companyId": {
"type": "integer"
},
"isDeleted": {
"type": "boolean"
},
"portalId": {
"type": "integer"
},
"properties": {
"type": "object",
"properties": {
"name": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "integer"
},
"useTimestampAsPersistenceTimestamp": {
"type": "boolean"
},
"value": {
"type": "string"
}
}
}
}
}
}
}
},
"stateChanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"changeFlag": {
"type": "string"
},
"timestamp": {
"type": "integer"
}
}
}
}
},
"version": 7
}
@@ -0,0 +1,92 @@
{
"type": "object",
"properties": {
"additionalDomains": {
"type": "array",
"items": {
"type": "object",
"properties": {
"domain": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
}
}
}
},
"companyId": {
"type": "integer"
},
"isDeleted": {
"type": "boolean"
},
"portalId": {
"type": "integer"
},
"properties": {
"type": "object",
"properties": {
"domain": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"sourceVid": {
"type": "array",
"items": {
"type": "integer"
}
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "integer"
},
"useTimestampAsPersistenceTimestamp": {
"type": "boolean"
},
"value": {
"type": "string"
}
}
}
}
}
}
}
}
},
"version": 1
}
@@ -0,0 +1,409 @@
{
"type": "object",
"properties": {
"companyId": {
"type": "integer"
},
"isDeleted": {
"type": "boolean"
},
"portalId": {
"type": "integer"
},
"properties": {
"type": "object",
"properties": {
"createdate": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "null"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"useTimestampAsPersistenceTimestamp": {
"type": "boolean"
},
"value": {
"type": "string"
}
}
}
}
}
},
"hs_lastmodifieddate": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "null"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"useTimestampAsPersistenceTimestamp": {
"type": "boolean"
},
"value": {
"type": "string"
}
}
}
}
}
},
"hs_object_id": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "null"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"useTimestampAsPersistenceTimestamp": {
"type": "boolean"
},
"value": {
"type": "string"
}
}
}
}
}
},
"hs_object_source": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "null"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"useTimestampAsPersistenceTimestamp": {
"type": "boolean"
},
"value": {
"type": "string"
}
}
}
}
}
},
"hs_object_source_id": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "null"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"useTimestampAsPersistenceTimestamp": {
"type": "boolean"
},
"value": {
"type": "string"
}
}
}
}
}
},
"hs_object_source_label": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "null"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"useTimestampAsPersistenceTimestamp": {
"type": "boolean"
},
"value": {
"type": "string"
}
}
}
}
}
},
"hs_pipeline": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "null"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"useTimestampAsPersistenceTimestamp": {
"type": "boolean"
},
"value": {
"type": "string"
}
}
}
}
}
},
"lifecyclestage": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "null"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"useTimestampAsPersistenceTimestamp": {
"type": "boolean"
},
"value": {
"type": "string"
}
}
}
}
}
}
}
}
},
"version": 1
}
@@ -0,0 +1,477 @@
{
"type": "object",
"properties": {
"canonical-vid": {
"type": "integer"
},
"form-submissions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"conversion-id": {
"type": "string"
},
"form-id": {
"type": "string"
},
"form-type": {
"type": "string"
},
"portal-id": {
"type": "integer"
},
"timestamp": {
"type": "integer"
},
"title": {
"type": "string"
}
}
}
},
"identity-profiles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"deleted-changed-timestamp": {
"type": "integer"
},
"identities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"is-primary": {
"type": "boolean"
},
"timestamp": {
"type": "integer"
},
"type": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"saved-at-timestamp": {
"type": "integer"
},
"vid": {
"type": "integer"
}
}
}
},
"is-contact": {
"type": "boolean"
},
"list-memberships": {
"type": "array",
"items": {
"type": "object",
"properties": {
"internal-list-id": {
"type": "integer"
},
"is-member": {
"type": "boolean"
},
"static-list-id": {
"type": "integer"
},
"timestamp": {
"type": "integer"
},
"vid": {
"type": "integer"
}
}
}
},
"portal-id": {
"type": "integer"
},
"properties": {
"type": "object",
"properties": {
"createdate": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"email": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"firstname": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_all_contact_vids": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_analytics_average_page_views": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_analytics_first_timestamp": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_analytics_num_event_completions": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_analytics_num_page_views": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_analytics_num_visits": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_analytics_revenue": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_analytics_source": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_analytics_source_data_1": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_analytics_source_data_2": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_associated_target_accounts": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_currently_enrolled_in_prospecting_agent": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_email_domain": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_full_name_or_email": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_is_contact": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_is_unworked": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_latest_source": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_latest_source_data_1": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_latest_source_data_2": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_latest_source_timestamp": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_lifecyclestage_lead_date": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_membership_has_accessed_private_content": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_object_id": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_object_source": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_object_source_id": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_object_source_label": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_pipeline": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_prospecting_agent_actively_enrolled_count": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_registered_member": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_sequences_actively_enrolled_count": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_social_facebook_clicks": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_social_google_plus_clicks": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_social_linkedin_clicks": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_social_num_broadcast_clicks": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_social_twitter_clicks": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_updated_by_user_id": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"hs_v2_date_entered_lead": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"lastmodifieddate": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"lastname": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"lifecyclestage": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"num_conversion_events": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"num_notes": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"num_unique_conversion_events": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
}
}
},
"vid": {
"type": "integer"
}
},
"version": 3
}
@@ -0,0 +1,230 @@
{
"type": "object",
"properties": {
"addedAt": {
"type": "integer"
},
"canonical-vid": {
"type": "integer"
},
"form-submissions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"contact-associated-by": {
"type": "array",
"items": {
"type": "string"
}
},
"conversion-id": {
"type": "string"
},
"form-id": {
"type": "string"
},
"form-type": {
"type": "string"
},
"page-title": {
"type": "string"
},
"page-url": {
"type": "string"
},
"portal-id": {
"type": "integer"
},
"timestamp": {
"type": "integer"
},
"title": {
"type": "string"
}
}
}
},
"identity-profiles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"deleted-changed-timestamp": {
"type": "integer"
},
"identities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"is-primary": {
"type": "boolean"
},
"timestamp": {
"type": "integer"
},
"type": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"saved-at-timestamp": {
"type": "integer"
},
"vid": {
"type": "integer"
}
}
}
},
"is-contact": {
"type": "boolean"
},
"merge-audits": {
"type": "array",
"items": {
"type": "object",
"properties": {
"canonical-vid": {
"type": "integer"
},
"entity-id": {
"type": "string"
},
"first-name": {
"type": "string"
},
"is-reverted": {
"type": "boolean"
},
"last-name": {
"type": "string"
},
"merged_from_email": {
"type": "object",
"properties": {
"data-sensitivity": {
"type": "null"
},
"is-encrypted": {
"type": "null"
},
"selected": {
"type": "boolean"
},
"source-id": {
"type": "string"
},
"source-label": {
"type": "null"
},
"source-type": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"value": {
"type": "string"
}
}
},
"merged_to_email": {
"type": "object",
"properties": {
"data-sensitivity": {
"type": "null"
},
"is-encrypted": {
"type": "null"
},
"selected": {
"type": "boolean"
},
"source-id": {
"type": "string"
},
"source-label": {
"type": "null"
},
"source-type": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updated-by-user-id": {
"type": "null"
},
"value": {
"type": "string"
}
}
},
"num-properties-moved": {
"type": "integer"
},
"primary-vid-to-merge": {
"type": "integer"
},
"timestamp": {
"type": "integer"
},
"user-id": {
"type": "integer"
},
"vid-to-merge": {
"type": "integer"
}
}
}
},
"merged-vids": {
"type": "array",
"items": {
"type": "integer"
}
},
"portal-id": {
"type": "integer"
},
"properties": {
"type": "object",
"properties": {
"firstname": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"lastmodifieddate": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"lastname": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
}
}
},
"vid": {
"type": "integer"
}
},
"version": 1
}
@@ -0,0 +1,237 @@
{
"type": "object",
"properties": {
"addedAt": {
"type": "integer"
},
"canonical-vid": {
"type": "integer"
},
"form-submissions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"contact-associated-by": {
"type": "array",
"items": {
"type": "string"
}
},
"conversion-id": {
"type": "string"
},
"form-id": {
"type": "string"
},
"form-type": {
"type": "string"
},
"page-title": {
"type": "string"
},
"page-url": {
"type": "string"
},
"portal-id": {
"type": "integer"
},
"timestamp": {
"type": "integer"
},
"title": {
"type": "string"
}
}
}
},
"identity-profiles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"deleted-changed-timestamp": {
"type": "integer"
},
"identities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"is-primary": {
"type": "boolean"
},
"timestamp": {
"type": "integer"
},
"type": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"saved-at-timestamp": {
"type": "integer"
},
"vid": {
"type": "integer"
}
}
}
},
"is-contact": {
"type": "boolean"
},
"merge-audits": {
"type": "array",
"items": {
"type": "object",
"properties": {
"canonical-vid": {
"type": "integer"
},
"entity-id": {
"type": "string"
},
"first-name": {
"type": "string"
},
"is-reverted": {
"type": "boolean"
},
"last-name": {
"type": "string"
},
"merged_from_email": {
"type": "object",
"properties": {
"data-sensitivity": {
"type": "null"
},
"is-encrypted": {
"type": "null"
},
"selected": {
"type": "boolean"
},
"source-label": {
"type": "null"
},
"source-type": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"value": {
"type": "string"
}
}
},
"merged_to_email": {
"type": "object",
"properties": {
"data-sensitivity": {
"type": "null"
},
"is-encrypted": {
"type": "null"
},
"selected": {
"type": "boolean"
},
"source-label": {
"type": "null"
},
"source-type": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"value": {
"type": "string"
}
}
},
"num-properties-moved": {
"type": "integer"
},
"primary-vid-to-merge": {
"type": "integer"
},
"timestamp": {
"type": "integer"
},
"user-id": {
"type": "integer"
},
"vid-to-merge": {
"type": "integer"
}
}
}
},
"merged-vids": {
"type": "array",
"items": {
"type": "integer"
}
},
"portal-id": {
"type": "integer"
},
"properties": {
"type": "object",
"properties": {
"company": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"createdate": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"firstname": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"lastmodifieddate": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
},
"lastname": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
}
}
}
},
"vid": {
"type": "integer"
}
},
"version": 1
}
@@ -0,0 +1,32 @@
{
"type": "object",
"properties": {
"archived": {
"type": "boolean"
},
"createdAt": {
"type": "string"
},
"id": {
"type": "string"
},
"properties": {
"type": "object",
"properties": {
"createdate": {
"type": "string"
},
"hs_object_id": {
"type": "string"
},
"lastmodifieddate": {
"type": "string"
}
}
},
"updatedAt": {
"type": "string"
}
},
"version": 3
}
@@ -0,0 +1,12 @@
{
"type": "object",
"properties": {
"isNew": {
"type": "boolean"
},
"vid": {
"type": "integer"
}
},
"version": 1
}
@@ -0,0 +1,30 @@
{
"type": "object",
"properties": {
"discarded": {
"type": "array",
"items": {
"type": "integer"
}
},
"invalidEmails": {
"type": "array",
"items": {
"type": "string"
}
},
"invalidVids": {
"type": "array",
"items": {
"type": "integer"
}
},
"updated": {
"type": "array",
"items": {
"type": "integer"
}
}
},
"version": 1
}
@@ -0,0 +1,26 @@
{
"type": "object",
"properties": {
"isDeleted": {
"type": "boolean"
},
"portalId": {
"type": "integer"
},
"stateChanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"changeFlag": {
"type": "string"
},
"timestamp": {
"type": "integer"
}
}
}
}
},
"version": 7
}
@@ -0,0 +1,35 @@
{
"type": "object",
"properties": {
"archived": {
"type": "boolean"
},
"createdAt": {
"type": "string"
},
"id": {
"type": "string"
},
"properties": {
"type": "object",
"properties": {
"createdate": {
"type": "string"
},
"dealstage": {
"type": "string"
},
"hs_lastmodifieddate": {
"type": "string"
},
"hs_object_id": {
"type": "string"
}
}
},
"updatedAt": {
"type": "string"
}
},
"version": 6
}
@@ -0,0 +1,84 @@
{
"type": "object",
"properties": {
"associations": {
"type": "object",
"properties": {
"companyIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"contactIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"dealIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"ownerIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"ticketIds": {
"type": "array",
"items": {
"type": "integer"
}
}
}
},
"engagement": {
"type": "object",
"properties": {
"active": {
"type": "boolean"
},
"bodyPreview": {
"type": "string"
},
"bodyPreviewHtml": {
"type": "string"
},
"bodyPreviewIsTruncated": {
"type": "boolean"
},
"createdAt": {
"type": "integer"
},
"id": {
"type": "integer"
},
"lastUpdated": {
"type": "integer"
},
"portalId": {
"type": "integer"
},
"timestamp": {
"type": "integer"
},
"type": {
"type": "string"
}
}
},
"metadata": {
"type": "object",
"properties": {
"status": {
"type": "string"
}
}
}
},
"version": 1
}
@@ -0,0 +1,186 @@
{
"type": "object",
"properties": {
"associations": {
"type": "object",
"properties": {
"companyIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"contactIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"dealIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"ownerIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"ticketIds": {
"type": "array",
"items": {
"type": "integer"
}
}
}
},
"attachments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
}
}
}
},
"engagement": {
"type": "object",
"properties": {
"active": {
"type": "boolean"
},
"allAccessibleTeamIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"bodyPreview": {
"type": "string"
},
"bodyPreviewHtml": {
"type": "string"
},
"bodyPreviewIsTruncated": {
"type": "boolean"
},
"createdAt": {
"type": "integer"
},
"createdBy": {
"type": "integer"
},
"id": {
"type": "integer"
},
"lastUpdated": {
"type": "integer"
},
"modifiedBy": {
"type": "integer"
},
"ownerId": {
"type": "integer"
},
"portalId": {
"type": "integer"
},
"queueMembershipIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"source": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"type": {
"type": "string"
},
"uid": {
"type": "string"
}
}
},
"metadata": {
"type": "object",
"properties": {
"cc": {
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"raw": {
"type": "string"
}
}
}
},
"html": {
"type": "string"
},
"ownerIdsCc": {
"type": "array",
"items": {
"type": "integer"
}
},
"ownerIdsFrom": {
"type": "array",
"items": {
"type": "integer"
}
},
"ownerIdsTo": {
"type": "array",
"items": {
"type": "integer"
}
},
"status": {
"type": "string"
},
"subject": {
"type": "string"
},
"to": {
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"raw": {
"type": "string"
}
}
}
}
}
}
},
"version": 1
}
@@ -0,0 +1,172 @@
{
"type": "object",
"properties": {
"associations": {
"type": "object",
"properties": {
"companyIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"contactIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"dealIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"ownerIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"ticketIds": {
"type": "array",
"items": {
"type": "integer"
}
}
}
},
"attachments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
}
}
}
},
"engagement": {
"type": "object",
"properties": {
"active": {
"type": "boolean"
},
"allAccessibleTeamIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"bodyPreview": {
"type": "string"
},
"bodyPreviewHtml": {
"type": "string"
},
"bodyPreviewIsTruncated": {
"type": "boolean"
},
"createdAt": {
"type": "integer"
},
"createdBy": {
"type": "integer"
},
"id": {
"type": "integer"
},
"lastUpdated": {
"type": "integer"
},
"modifiedBy": {
"type": "integer"
},
"ownerId": {
"type": "integer"
},
"portalId": {
"type": "integer"
},
"queueMembershipIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"source": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"type": {
"type": "string"
}
}
},
"metadata": {
"type": "object",
"properties": {
"body": {
"type": "string"
},
"forObjectType": {
"type": "string"
},
"isAllDay": {
"type": "boolean"
},
"priority": {
"type": "string"
},
"reminders": {
"type": "array",
"items": {
"type": "integer"
}
},
"sendDefaultReminder": {
"type": "boolean"
},
"status": {
"type": "string"
},
"subject": {
"type": "string"
},
"taskType": {
"type": "string"
}
}
},
"scheduledTasks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"engagementId": {
"type": "integer"
},
"engagementType": {
"type": "string"
},
"portalId": {
"type": "integer"
},
"taskType": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"uuid": {
"type": "string"
}
}
}
}
},
"version": 1
}
@@ -0,0 +1,9 @@
{
"type": "object",
"properties": {
"deleted": {
"type": "boolean"
}
},
"version": 1
}
@@ -0,0 +1,18 @@
{
"type": "object",
"properties": {
"isDeleted": {
"type": "boolean"
},
"objectId": {
"type": "integer"
},
"objectType": {
"type": "string"
},
"portalId": {
"type": "integer"
}
},
"version": 6
}
@@ -0,0 +1,78 @@
{
"type": "object",
"properties": {
"isDeleted": {
"type": "boolean"
},
"objectId": {
"type": "integer"
},
"objectType": {
"type": "string"
},
"portalId": {
"type": "integer"
},
"properties": {
"type": "object",
"properties": {
"subject": {
"type": "object",
"properties": {
"isEncrypted": {
"type": "boolean"
},
"sensitivityLevel": {
"type": "string"
},
"source": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"sourceUpstreamDeployable": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "integer"
},
"useTimestampAsPersistenceTimestamp": {
"type": "boolean"
},
"value": {
"type": "string"
}
}
}
}
}
}
}
}
},
"version": 2
}
@@ -0,0 +1,83 @@
{
"type": "object",
"properties": {
"companyId": {
"type": "integer"
},
"isDeleted": {
"type": "boolean"
},
"portalId": {
"type": "integer"
},
"properties": {
"type": "object",
"properties": {
"name": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"sourceUpstreamDeployable": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "integer"
},
"useTimestampAsPersistenceTimestamp": {
"type": "boolean"
},
"value": {
"type": "string"
}
}
}
}
}
}
}
},
"stateChanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"changeFlag": {
"type": "string"
},
"timestamp": {
"type": "integer"
}
}
}
}
},
"version": 1
}
@@ -0,0 +1,15 @@
{
"type": "object",
"properties": {
"deleted": {
"type": "boolean"
},
"reason": {
"type": "string"
},
"vid": {
"type": "integer"
}
},
"version": 1
}
@@ -0,0 +1,35 @@
{
"type": "object",
"properties": {
"archived": {
"type": "boolean"
},
"createdAt": {
"type": "string"
},
"id": {
"type": "string"
},
"properties": {
"type": "object",
"properties": {
"createdate": {
"type": "string"
},
"hs_object_id": {
"type": "string"
},
"lastmodifieddate": {
"type": "string"
}
}
},
"updatedAt": {
"type": "string"
},
"url": {
"type": "string"
}
},
"version": 2
}
@@ -0,0 +1,12 @@
{
"type": "object",
"properties": {
"isNew": {
"type": "boolean"
},
"vid": {
"type": "integer"
}
},
"version": 1
}
@@ -0,0 +1,30 @@
{
"type": "object",
"properties": {
"discarded": {
"type": "array",
"items": {
"type": "integer"
}
},
"invalidEmails": {
"type": "array",
"items": {
"type": "string"
}
},
"invalidVids": {
"type": "array",
"items": {
"type": "integer"
}
},
"updated": {
"type": "array",
"items": {
"type": "integer"
}
}
},
"version": 1
}
@@ -0,0 +1,86 @@
{
"type": "object",
"properties": {
"dealId": {
"type": "integer"
},
"isDeleted": {
"type": "boolean"
},
"portalId": {
"type": "integer"
},
"properties": {
"type": "object",
"properties": {
"dealstage": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"sourceUpstreamDeployable": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "integer"
},
"useTimestampAsPersistenceTimestamp": {
"type": "boolean"
},
"value": {
"type": "string"
}
}
}
}
}
}
}
},
"stateChanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"changeFlag": {
"type": "string"
},
"timestamp": {
"type": "integer"
}
}
}
}
},
"version": 2
}
@@ -0,0 +1,44 @@
{
"type": "object",
"properties": {
"archived": {
"type": "boolean"
},
"createdAt": {
"type": "string"
},
"id": {
"type": "string"
},
"properties": {
"type": "object",
"properties": {
"createdate": {
"type": "string"
},
"dealname": {
"type": "string"
},
"dealstage": {
"type": "string"
},
"hs_lastmodifieddate": {
"type": "string"
},
"hs_object_id": {
"type": "string"
},
"pipeline": {
"type": "string"
}
}
},
"updatedAt": {
"type": "string"
},
"url": {
"type": "string"
}
},
"version": 2
}
@@ -0,0 +1,9 @@
{
"type": "object",
"properties": {
"deleted": {
"type": "boolean"
}
},
"version": 1
}
@@ -0,0 +1,90 @@
{
"type": "object",
"properties": {
"isDeleted": {
"type": "boolean"
},
"objectId": {
"type": "integer"
},
"objectType": {
"type": "string"
},
"portalId": {
"type": "integer"
},
"properties": {
"type": "object",
"properties": {
"subject": {
"type": "object",
"properties": {
"isEncrypted": {
"type": "boolean"
},
"persistenceTimestamp": {
"type": "integer"
},
"requestId": {
"type": "string"
},
"sensitivityLevel": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceUpstreamDeployable": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"value": {
"type": "string"
},
"versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"persistenceTimestamp": {
"type": "integer"
},
"requestId": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceId": {
"type": "string"
},
"sourceUpstreamDeployable": {
"type": "string"
},
"timestamp": {
"type": "integer"
},
"updatedByUserId": {
"type": "integer"
},
"useTimestampAsPersistenceTimestamp": {
"type": "boolean"
},
"value": {
"type": "string"
}
}
}
}
}
}
}
}
},
"version": 2
}
@@ -0,0 +1,18 @@
{
"type": "object",
"properties": {
"isDeleted": {
"type": "boolean"
},
"objectId": {
"type": "integer"
},
"objectType": {
"type": "string"
},
"portalId": {
"type": "integer"
}
},
"version": 1
}
@@ -0,0 +1,373 @@
/* eslint-disable n8n-nodes-base/node-param-display-name-miscased */
import { NodeTestHarness } from '@nodes-testing/node-test-harness';
import nock from 'nock';
import companies from './fixtures/companies.json';
import companiesSearchResult from './fixtures/companies_search_result.json';
import contacts from './fixtures/contacts.json';
import contactsSearchResult from './fixtures/contacts_search_result.json';
import deals from './fixtures/deals.json';
import dealsSearchResult from './fixtures/deals_search_result.json';
import engagements from './fixtures/engagements.json';
describe('Hubspot Node', () => {
nock.disableNetConnect();
const hubspotNock = nock('https://api.hubapi.com');
describe('companies', () => {
beforeAll(() => {
hubspotNock
.delete('/crm/v3/objects/companies/123', {})
.reply(200, companies.companies[0])
.post('/companies/v2/companies', {
properties: [
{
name: 'name',
value: 'test',
},
{
name: 'about_us',
value: 'test about us',
},
{
name: 'annualrevenue',
value: '123',
},
{
name: 'city',
value: 'Gent',
},
{
name: 'closedate',
value: 1744848000000,
},
{
name: 'domain',
value: 'example.com',
},
{
name: 'hubspot_owner_id',
value: '123',
},
{
name: 'country',
value: 'Belgium',
},
{
name: 'description',
value: 'test description',
},
{
name: 'is_public',
value: true,
},
{
name: 'zip',
value: '9000',
},
{
name: 'twitterhandle',
value: 'x',
},
{
name: 'website',
value: 'example.com',
},
{
name: 'founded_year',
value: '2000',
},
{
name: 'test_custom_prop_name',
value: 'test custom prop value',
},
],
})
.reply(200, companies.companies[0])
.put('/companies/v2/companies/123', {
properties: [
{
name: 'about_us',
value: 'test about us',
},
{
name: 'city',
value: 'Gent',
},
],
})
.reply(200, companies.companies[0])
.post('/companies/v2/domains/n8n.io/companies', { requestOptions: {}, limit: 100 })
.reply(200, companiesSearchResult)
.get('/companies/v2/companies/paged')
.query(
'properties=name&properties=description&properties=country&propertyMode=value_and_history&limit=2',
)
.reply(200, companies)
.get('/companies/v2/companies/recent/modified')
.query('since=1744243200000&count=2')
.reply(200, { results: companies.companies })
.get('/companies/v2/companies/123')
.reply(200, companies.companies[0]);
});
afterAll(() => hubspotNock.done());
new NodeTestHarness().setupTests({
workflowFiles: ['companies.workflow.json'],
});
});
describe('contacts', () => {
beforeAll(() => {
hubspotNock
.delete('/contacts/v1/contact/vid/123', {})
.reply(200, contacts.contacts[0])
.post('/contacts/v1/contact/createOrUpdate/email/elias@n8n.io', {
properties: [
{
property: 'annualrevenue',
value: '123',
},
{
property: 'city',
value: 'Gent',
},
{
property: 'closedate',
value: 1744848000000,
},
{
property: 'firstname',
value: 'Elias',
},
{
property: 'zip',
value: '9000',
},
{
property: 'website',
value: 'example.com',
},
{
property: 'work_email',
value: 'elias@n8n.io',
},
{
property: 'test_custom_prop_name',
value: 'test custom prop value',
},
],
})
.reply(200, contacts.contacts[0])
.put('/crm-associations/v1/associations/create-batch')
.reply(200, {})
.post('/crm/v3/objects/contacts/search', {
sorts: [
{
propertyName: 'createdate',
direction: 'ASCENDING',
},
],
filterGroups: [
{
filters: [
{
propertyName: 'firstname',
operator: 'EQ',
value: 'Elias',
},
{
propertyName: 'lastname',
operator: 'EQ',
value: 'Meire',
},
],
},
{
filters: [
{
propertyName: 'email',
operator: 'CONTAINS_TOKEN',
value: 'n8n.io',
},
],
},
],
direction: 'ASCENDING',
limit: 2,
})
.reply(200, contactsSearchResult)
.get('/contacts/v1/lists/all/contacts/all?count=2')
.reply(200, contacts)
.get('/contacts/v1/lists/recently_updated/contacts/recent?count=2')
.reply(200, contacts)
.get('/contacts/v1/contact/vid/204727/profile')
.reply(200, contacts.contacts[0])
.get('/contacts/v1/contact/vid/123/profile')
.query('formSubmissionMode=newest&showListMemberships=true')
.reply(200, contacts.contacts[0])
.post('/contacts/v1/contact/createOrUpdate/email/test1@test.com', {
properties: [],
})
.reply(200, contacts.contacts[0])
.get('/contacts/v1/contact/vid/204727/profile')
.reply(200, contacts.contacts[0])
.post('/contacts/v1/contact/createOrUpdate/email/test2@test.com', {
properties: [
{
property: 'hs_buying_role',
value: 'CHAMPION;INFLUENCER',
},
{
property: 'hs_country_region_code',
value: 'US',
},
{
property: 'hs_email_customer_quarantined_reason',
value: 'BLOCKLIST_REMEDIATION',
},
{
property: 'hs_role',
value: 'consulting',
},
{
property: 'hs_seniority',
value: 'director',
},
{
property: 'hs_sub_role',
value: 'account_manager',
},
{
property: 'hs_enriched_email_bounce_detected',
value: true,
},
{
property: 'hs_inferred_language_codes',
value: 'en',
},
{
property: 'hs_latest_source',
value: 'OTHER_CAMPAIGNS',
},
{
property: 'hs_latest_source_timestamp',
value: 1735689600000,
},
{
property: 'hs_linkedin_url',
value: 'https://linkedin.com/foo',
},
{
property: 'hs_content_membership_email',
value: 'member@test.com',
},
{
property: 'military_status',
value: 'Foo',
},
{
property: 'hs_persona',
value: 'persona_1',
},
{
property: 'hs_prospecting_agent_last_enrolled',
value: 1738368000000,
},
{
property: 'hs_prospecting_agent_total_enrolled_count',
value: 2,
},
{
property: 'hs_state_code',
value: 'CA',
},
{
property: 'hs_timezone',
value: 'us_slash_pacific',
},
{
property: 'hs_whatsapp_phone_number',
value: '123456789',
},
],
})
.reply(200, contacts.contacts[0])
.get('/contacts/v1/contact/vid/204727/profile')
.reply(200, contacts.contacts[0]);
});
afterAll(() => hubspotNock.done());
new NodeTestHarness().setupTests({
workflowFiles: ['contacts.workflow.json'],
});
});
describe('deals', () => {
beforeAll(() => {
hubspotNock
.delete('/deals/v1/deal/123', {})
.reply(200, deals.deals[0])
.post('/deals/v1/deal', {
properties: [
{ name: 'dealstage', value: 'test stage name' },
{ name: 'dealname', value: 'Test Deal' },
{ name: 'closedate', value: 1744848000000 },
{ name: 'amount', value: '100' },
{ name: 'pipeline', value: 'test pipeline name' },
{ name: 'description', value: 'Test Deal Desc' },
{ name: 'test_custom_prop_name', value: 'test custom prop value' },
],
associations: {},
})
.reply(200, deals.deals[0])
.put('/deals/v1/deal/123')
.reply(200, deals.deals[0])
.get('/deals/v1/deal/paged?includeAssociations=true&limit=2')
.reply(200, deals)
.get(
'/deals/v1/deal/recent/created?since=1745193600000&includePropertyVersions=true&count=2',
)
.reply(200, { results: deals.deals })
.get('/deals/v1/deal/123')
.reply(200, deals.deals[0])
.post('/crm/v3/objects/deals/search', {
sorts: [{ propertyName: 'createdate', direction: 'ASCENDING' }],
filterGroups: [
{ filters: [{ propertyName: 'name', operator: 'EQ', value: 'Test Deal Name' }] },
],
direction: 'ASCENDING',
sortBy: 'createdate',
limit: 2,
})
.reply(200, dealsSearchResult);
});
afterAll(() => hubspotNock.done());
new NodeTestHarness().setupTests({
workflowFiles: ['deals.workflow.json'],
});
});
describe('engagements', () => {
beforeAll(() => {
hubspotNock
.post('/engagements/v1/engagements', engagements.request.createWithOwnerId)
.reply(200, engagements.response.createWithOwnerId)
.post('/engagements/v1/engagements', engagements.request.createWithoutOwnerId)
.reply(200, engagements.response.createWithoutOwnerId)
.post('/engagements/v1/engagements', engagements.request.createV2_1)
.reply(200, engagements.response.createV2_1);
});
afterAll(() => hubspotNock.done());
new NodeTestHarness().setupTests({
workflowFiles: ['engagements.workflow.json'],
});
});
});
@@ -0,0 +1,734 @@
{
"name": "Hubspot Companies",
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [-400, 480],
"id": "b126b31f-c64f-472f-98ed-6ab9f0eb4e52",
"name": "When clicking Execute workflow"
},
{
"parameters": {
"resource": "company",
"operation": "delete",
"companyId": {
"__rl": true,
"value": "123",
"mode": "id"
}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [-180, -120],
"id": "7262d6df-23f4-425e-94c2-6ce67d1bc138",
"name": "HubSpot - Company - Delete",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"resource": "company",
"name": "test",
"additionalFields": {
"aboutUs": "test about us",
"annualRevenue": 123,
"city": "Gent",
"closeDate": "2025-04-17T00:00:00",
"companyDomainName": "example.com",
"companyOwner": "=123",
"countryRegion": "Belgium",
"customPropertiesUi": {
"customPropertiesValues": [
{
"property": "=test_custom_prop_name",
"value": "test custom prop value"
}
]
},
"description": "test description",
"isPublic": true,
"postalCode": "9000",
"twitterHandle": "x",
"websiteUrl": "example.com",
"yearFounded": "2000"
}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [-180, 80],
"id": "2827f172-451b-4bab-bd91-36a2d0bc7013",
"name": "HubSpot - Company - Create",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"resource": "company",
"operation": "get",
"companyId": {
"__rl": true,
"value": "123",
"mode": "id"
},
"additionalFields": {}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [-180, 480],
"id": "efbb6c5a-5061-4c6f-82a3-ae388f9e7690",
"name": "HubSpot - Company - Get",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"resource": "company",
"operation": "getAll",
"limit": 2,
"options": {
"includeMergeAudits": true,
"propertiesCollection": {
"propertiesValues": {
"properties": "={{ ['name', 'description', 'country'] }}"
}
}
}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [-180, 680],
"id": "dc51cf19-947d-41d6-b2d2-908796039dc6",
"name": "HubSpot - Company - Get Many",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"resource": "company",
"operation": "getRecentlyCreatedUpdated",
"limit": 2,
"additionalFields": {
"since": "2025-04-10T00:00:00"
}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [-180, 880],
"id": "af703bd7-ec3f-426e-a903-96d67410ee44",
"name": "HubSpot - Company - Get Recently Updated",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"resource": "company",
"operation": "searchByDomain",
"domain": "n8n.io",
"options": {}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [-180, 1080],
"id": "43db81bf-9f5f-4458-bd8f-c36c7162e53b",
"name": "HubSpot - Company - Search",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"resource": "company",
"operation": "update",
"companyId": {
"__rl": true,
"value": "=123",
"mode": "id"
},
"updateFields": {
"aboutUs": "test about us",
"city": "Gent"
}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [-180, 280],
"id": "6c5c0be3-53ad-4eae-a535-6b19448fefb6",
"name": "HubSpot - Company - Update",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
}
],
"pinData": {
"HubSpot - Company - Create": [
{
"json": {
"additionalDomains": [],
"companyId": 115200636,
"isDeleted": false,
"portalId": 62515,
"properties": {
"name": {
"source": "BIDEN",
"sourceId": "name",
"timestamp": 1464484587592,
"value": "Example Company",
"versions": [
{
"name": "name",
"source": "BIDEN",
"sourceId": "name",
"sourceVid": [],
"timestamp": 1464484587592,
"value": "Example Company"
}
]
},
"website": {
"source": "COMPANIES",
"sourceId": null,
"timestamp": 1457513066540,
"value": "example.com",
"versions": [
{
"name": "website",
"source": "COMPANIES",
"sourceVid": [],
"timestamp": 1457513066540,
"value": "example.com"
}
]
}
}
}
}
],
"HubSpot - Company - Delete": [
{
"json": {
"additionalDomains": [],
"companyId": 115200636,
"isDeleted": false,
"portalId": 62515,
"properties": {
"name": {
"source": "BIDEN",
"sourceId": "name",
"timestamp": 1464484587592,
"value": "Example Company",
"versions": [
{
"name": "name",
"source": "BIDEN",
"sourceId": "name",
"sourceVid": [],
"timestamp": 1464484587592,
"value": "Example Company"
}
]
},
"website": {
"source": "COMPANIES",
"sourceId": null,
"timestamp": 1457513066540,
"value": "example.com",
"versions": [
{
"name": "website",
"source": "COMPANIES",
"sourceVid": [],
"timestamp": 1457513066540,
"value": "example.com"
}
]
}
}
}
}
],
"HubSpot - Company - Update": [
{
"json": {
"additionalDomains": [],
"companyId": 115200636,
"isDeleted": false,
"portalId": 62515,
"properties": {
"name": {
"source": "BIDEN",
"sourceId": "name",
"timestamp": 1464484587592,
"value": "Example Company",
"versions": [
{
"name": "name",
"source": "BIDEN",
"sourceId": "name",
"sourceVid": [],
"timestamp": 1464484587592,
"value": "Example Company"
}
]
},
"website": {
"source": "COMPANIES",
"sourceId": null,
"timestamp": 1457513066540,
"value": "example.com",
"versions": [
{
"name": "website",
"source": "COMPANIES",
"sourceVid": [],
"timestamp": 1457513066540,
"value": "example.com"
}
]
}
}
}
}
],
"HubSpot - Company - Get": [
{
"json": {
"additionalDomains": [],
"companyId": 115200636,
"isDeleted": false,
"portalId": 62515,
"properties": {
"name": {
"source": "BIDEN",
"sourceId": "name",
"timestamp": 1464484587592,
"value": "Example Company",
"versions": [
{
"name": "name",
"source": "BIDEN",
"sourceId": "name",
"sourceVid": [],
"timestamp": 1464484587592,
"value": "Example Company"
}
]
},
"website": {
"source": "COMPANIES",
"sourceId": null,
"timestamp": 1457513066540,
"value": "example.com",
"versions": [
{
"name": "website",
"source": "COMPANIES",
"sourceVid": [],
"timestamp": 1457513066540,
"value": "example.com"
}
]
}
}
}
}
],
"HubSpot - Company - Get Many": [
{
"json": {
"additionalDomains": [],
"companyId": 115200636,
"isDeleted": false,
"portalId": 62515,
"properties": {
"name": {
"source": "BIDEN",
"sourceId": "name",
"timestamp": 1464484587592,
"value": "Example Company",
"versions": [
{
"name": "name",
"source": "BIDEN",
"sourceId": "name",
"sourceVid": [],
"timestamp": 1464484587592,
"value": "Example Company"
}
]
},
"website": {
"source": "COMPANIES",
"sourceId": null,
"timestamp": 1457513066540,
"value": "example.com",
"versions": [
{
"name": "website",
"source": "COMPANIES",
"sourceVid": [],
"timestamp": 1457513066540,
"value": "example.com"
}
]
}
}
}
},
{
"json": {
"additionalDomains": [],
"companyId": 115279791,
"isDeleted": false,
"portalId": 62515,
"properties": {
"name": {
"source": "BIDEN",
"sourceId": "name",
"timestamp": 1468832771769,
"value": "Test Company",
"versions": [
{
"name": "name",
"source": "BIDEN",
"sourceId": "name",
"sourceVid": [],
"timestamp": 1468832771769,
"value": "Test Company"
}
]
},
"website": {
"source": "COMPANIES",
"sourceId": null,
"timestamp": 1457535205549,
"value": "test.com",
"versions": [
{
"name": "website",
"source": "COMPANIES",
"sourceVid": [],
"timestamp": 1457535205549,
"value": "test.com"
}
]
}
}
}
}
],
"HubSpot - Company - Search": [
{
"json": {
"additionalDomains": [],
"companyId": 184896670,
"isDeleted": false,
"mergeAudits": [],
"portalId": 62515,
"properties": {
"createdate": {
"source": "API",
"sourceId": null,
"timestamp": 1457708103847,
"value": "1457708103847",
"versions": [
{
"name": "createdate",
"source": "API",
"sourceVid": [],
"timestamp": 1457708103847,
"value": "1457708103847"
}
]
},
"domain": {
"source": "COMPANIES",
"sourceId": null,
"timestamp": 1457708103847,
"value": "hubspot.com",
"versions": [
{
"name": "domain",
"source": "COMPANIES",
"sourceVid": [],
"timestamp": 1457708103847,
"value": "hubspot.com"
}
]
},
"hs_lastmodifieddate": {
"source": "CALCULATED",
"sourceId": null,
"timestamp": 1502872954691,
"value": "1502872954691",
"versions": [
{
"name": "hs_lastmodifieddate",
"source": "CALCULATED",
"sourceVid": [],
"timestamp": 1502872954691,
"value": "1502872954691"
}
]
},
"name": {
"source": "BIDEN",
"sourceId": "name",
"timestamp": 1457708103906,
"value": "Hubspot, Inc.",
"versions": [
{
"name": "name",
"source": "BIDEN",
"sourceId": "name",
"sourceVid": [],
"timestamp": 1457708103906,
"value": "Hubspot, Inc."
}
]
}
},
"stateChanges": []
}
},
{
"json": {
"additionalDomains": [],
"companyId": 418736767,
"isDeleted": false,
"mergeAudits": [],
"portalId": 62515,
"properties": {
"createdate": {
"source": "API",
"sourceId": "API",
"timestamp": 1490280388204,
"value": "1490280388204",
"versions": [
{
"name": "createdate",
"source": "API",
"sourceId": "API",
"sourceVid": [],
"timestamp": 1490280388204,
"value": "1490280388204"
}
]
},
"domain": {
"source": "API",
"sourceId": null,
"timestamp": 1490280388204,
"value": "hubspot.com",
"versions": [
{
"name": "domain",
"source": "API",
"sourceVid": [],
"timestamp": 1490280388204,
"value": "hubspot.com"
}
]
},
"hs_lastmodifieddate": {
"source": "CALCULATED",
"sourceId": null,
"timestamp": 1498644245669,
"value": "1498644245669",
"versions": [
{
"name": "hs_lastmodifieddate",
"source": "CALCULATED",
"sourceVid": [],
"timestamp": 1498644245669,
"value": "1498644245669"
}
]
},
"name": {
"source": "API",
"sourceId": null,
"timestamp": 1490280388204,
"value": "qweqwe2323",
"versions": [
{
"name": "name",
"source": "API",
"sourceVid": [],
"timestamp": 1490280388204,
"value": "qweqwe2323"
}
]
}
},
"stateChanges": []
}
}
],
"HubSpot - Company - Get Recently Updated": [
{
"json": {
"additionalDomains": [],
"companyId": 115200636,
"isDeleted": false,
"portalId": 62515,
"properties": {
"name": {
"source": "BIDEN",
"sourceId": "name",
"timestamp": 1464484587592,
"value": "Example Company",
"versions": [
{
"name": "name",
"source": "BIDEN",
"sourceId": "name",
"sourceVid": [],
"timestamp": 1464484587592,
"value": "Example Company"
}
]
},
"website": {
"source": "COMPANIES",
"sourceId": null,
"timestamp": 1457513066540,
"value": "example.com",
"versions": [
{
"name": "website",
"source": "COMPANIES",
"sourceVid": [],
"timestamp": 1457513066540,
"value": "example.com"
}
]
}
}
}
},
{
"json": {
"additionalDomains": [],
"companyId": 115279791,
"isDeleted": false,
"portalId": 62515,
"properties": {
"name": {
"source": "BIDEN",
"sourceId": "name",
"timestamp": 1468832771769,
"value": "Test Company",
"versions": [
{
"name": "name",
"source": "BIDEN",
"sourceId": "name",
"sourceVid": [],
"timestamp": 1468832771769,
"value": "Test Company"
}
]
},
"website": {
"source": "COMPANIES",
"sourceId": null,
"timestamp": 1457535205549,
"value": "test.com",
"versions": [
{
"name": "website",
"source": "COMPANIES",
"sourceVid": [],
"timestamp": 1457535205549,
"value": "test.com"
}
]
}
}
}
}
]
},
"connections": {
"When clicking Execute workflow": {
"main": [
[
{
"node": "HubSpot - Company - Create",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Company - Delete",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Company - Get",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Company - Get Many",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Company - Get Recently Updated",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Company - Search",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Company - Update",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "9acf7d60-9b18-46f4-8a3e-6edd75806535",
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "27cc9b56542ad45b38725555722c50a1c3fee1670bbb67980558314ee08517c4"
},
"id": "CYeIbFIs8qLoLvBe",
"tags": []
}
@@ -0,0 +1,758 @@
{
"name": "Hubspot contacts",
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [400, -368],
"id": "9b86caa6-4892-4eff-b513-3391bbd36e11",
"name": "When clicking Execute workflow"
},
{
"parameters": {
"operation": "get",
"contactId": {
"__rl": true,
"value": "123",
"mode": "id"
},
"additionalFields": {
"formSubmissionMode": "newest",
"listMemberships": true
}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [624, -656],
"id": "ec2ae603-783d-4a3a-82b8-1a7049616df6",
"name": "HubSpot - Contact - Get",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"operation": "delete",
"contactId": {
"__rl": true,
"value": "123",
"mode": "id"
}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [624, -1040],
"id": "b593dd98-8bd0-4a13-ac44-c732835c2354",
"name": "HubSpot - Contact - Delete",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"email": "elias@n8n.io",
"additionalFields": {
"annualRevenue": 123,
"associatedCompanyId": "=123",
"city": "Gent",
"closeDate": "2025-04-17T00:00:00",
"customPropertiesUi": {
"customPropertiesValues": [
{
"property": "=test_custom_prop_name",
"value": "test custom prop value"
}
]
},
"firstName": "Elias",
"postalCode": "9000",
"websiteUrl": "example.com",
"workEmail": "elias@n8n.io"
},
"options": {}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [624, -848],
"id": "29e2d75f-d62d-43ad-8162-75c4fa7dbc1d",
"name": "HubSpot - Contact - Create",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"operation": "getAll",
"limit": 2,
"additionalFields": {}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [624, -464],
"id": "1abd78f0-cf23-44e5-8575-791de126a05a",
"name": "HubSpot - Contact - Get Many",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"operation": "getRecentlyCreatedUpdated",
"limit": 2,
"additionalFields": {}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [624, -272],
"id": "6c0a7374-7d37-4ff1-b66b-84d1e27cf1b8",
"name": "HubSpot - Contact - Get Recently Updated",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"operation": "search",
"limit": 2,
"filterGroupsUi": {
"filterGroupsValues": [
{
"filtersUi": {
"filterValues": [
{
"propertyName": "=firstname",
"value": "Elias"
},
{
"propertyName": "=lastname",
"value": "Meire"
}
]
}
},
{
"filtersUi": {
"filterValues": [
{
"propertyName": "=email",
"operator": "CONTAINS_TOKEN",
"value": "n8n.io"
}
]
}
}
]
},
"additionalFields": {
"direction": "ASCENDING"
}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [624, -80],
"id": "5b28b56d-bc71-41db-a8ef-03a4c4827038",
"name": "HubSpot - Contact - Search",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"email": "test1@test.com",
"additionalFields": {},
"options": {}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [624, 128],
"id": "24dd6489-8372-43fb-877b-7bbfedbdaa9a",
"name": "HubSpot - Contact - Create - Without properties",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"email": "test2@test.com",
"additionalFields": {
"buyingRole": ["CHAMPION", "INFLUENCER"],
"countryRegionCode": "US",
"emailCustomerQuarantinedReason": "BLOCKLIST_REMEDIATION",
"employmentRole": "consulting",
"enrichedEmailBounceDetected": true,
"employmentSeniority": "director",
"employmentSubRole": "account_manager",
"inferredLanguageCodes": "en",
"latestTrafficSource": "OTHER_CAMPAIGNS",
"latestTrafficSourceDate": "2025-01-01T00:00:00",
"linkedinUrl": "https://linkedin.com/foo",
"memberEmail": "member@test.com",
"militaryStatus": "Foo",
"persona": "persona_1",
"prospectingAgentLastEnrolled": "2025-02-01T00:00:00",
"prospectingAgentTotalEnrolledCount": 2,
"stateRegionCode": "CA",
"timeZone": "us_slash_pacific",
"whatsappPhoneNumber": "123456789"
},
"options": {}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [624, 320],
"id": "e857588e-3509-47dc-a43c-2889b3b07a01",
"name": "HubSpot - Contact - Create - With new properties",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
}
],
"pinData": {
"HubSpot - Contact - Get": [
{
"json": {
"addedAt": 1390574181854,
"canonical-vid": 204727,
"form-submissions": [],
"identity-profiles": [
{
"deleted-changed-timestamp": 0,
"identities": [
{
"timestamp": 1390574181878,
"type": "LEAD_GUID",
"value": "f9d728f1-dff1-49b0-9caa-247dbdf5b8b7"
},
{
"timestamp": 1476768116137,
"type": "EMAIL",
"value": "mgnew-email@hubspot.com"
}
],
"saved-at-timestamp": 1476768116149,
"vid": 204727
}
],
"is-contact": true,
"merge-audits": [],
"merged-vids": [],
"portal-id": 62515,
"properties": {
"company": {
"value": ""
},
"firstname": {
"value": "Bob"
},
"lastmodifieddate": {
"value": "1483461406481"
},
"lastname": {
"value": "Record"
}
},
"vid": 204727
}
}
],
"HubSpot - Contact - Delete": [
{
"json": {
"addedAt": 1390574181854,
"canonical-vid": 204727,
"form-submissions": [],
"identity-profiles": [
{
"deleted-changed-timestamp": 0,
"identities": [
{
"timestamp": 1390574181878,
"type": "LEAD_GUID",
"value": "f9d728f1-dff1-49b0-9caa-247dbdf5b8b7"
},
{
"timestamp": 1476768116137,
"type": "EMAIL",
"value": "mgnew-email@hubspot.com"
}
],
"saved-at-timestamp": 1476768116149,
"vid": 204727
}
],
"is-contact": true,
"merge-audits": [],
"merged-vids": [],
"portal-id": 62515,
"properties": {
"company": {
"value": ""
},
"firstname": {
"value": "Bob"
},
"lastmodifieddate": {
"value": "1483461406481"
},
"lastname": {
"value": "Record"
}
},
"vid": 204727
}
}
],
"HubSpot - Contact - Create": [
{
"json": {
"addedAt": 1390574181854,
"canonical-vid": 204727,
"form-submissions": [],
"identity-profiles": [
{
"deleted-changed-timestamp": 0,
"identities": [
{
"timestamp": 1390574181878,
"type": "LEAD_GUID",
"value": "f9d728f1-dff1-49b0-9caa-247dbdf5b8b7"
},
{
"timestamp": 1476768116137,
"type": "EMAIL",
"value": "mgnew-email@hubspot.com"
}
],
"saved-at-timestamp": 1476768116149,
"vid": 204727
}
],
"is-contact": true,
"merge-audits": [],
"merged-vids": [],
"portal-id": 62515,
"properties": {
"company": {
"value": ""
},
"firstname": {
"value": "Bob"
},
"lastmodifieddate": {
"value": "1483461406481"
},
"lastname": {
"value": "Record"
}
},
"vid": 204727
}
}
],
"HubSpot - Contact - Get Many": [
{
"json": {
"addedAt": 1390574181854,
"canonical-vid": 204727,
"form-submissions": [],
"identity-profiles": [
{
"deleted-changed-timestamp": 0,
"identities": [
{
"timestamp": 1390574181878,
"type": "LEAD_GUID",
"value": "f9d728f1-dff1-49b0-9caa-247dbdf5b8b7"
},
{
"timestamp": 1476768116137,
"type": "EMAIL",
"value": "mgnew-email@hubspot.com"
}
],
"saved-at-timestamp": 1476768116149,
"vid": 204727
}
],
"is-contact": true,
"merge-audits": [],
"merged-vids": [],
"portal-id": 62515,
"properties": {
"company": {
"value": ""
},
"firstname": {
"value": "Bob"
},
"lastmodifieddate": {
"value": "1483461406481"
},
"lastname": {
"value": "Record"
}
},
"vid": 204727
}
},
{
"json": {
"addedAt": 1392643921079,
"canonical-vid": 207303,
"form-submissions": [],
"identity-profiles": [
{
"deleted-changed-timestamp": 0,
"identities": [
{
"timestamp": 1392643921079,
"type": "EMAIL",
"value": "email_0be34aebe5@abctest.com"
},
{
"timestamp": 1392643921082,
"type": "LEAD_GUID",
"value": "058378c6-9513-43e1-a13a-43a98d47aa22"
}
],
"saved-at-timestamp": 1392643921090,
"vid": 207303
}
],
"is-contact": true,
"merge-audits": [],
"merged-vids": [],
"portal-id": 62515,
"properties": {
"firstname": {
"value": "Ff_FirstName_0"
},
"lastmodifieddate": {
"value": "1479148429488"
},
"lastname": {
"value": "Ff_LastName_0"
}
},
"vid": 207303
}
}
],
"HubSpot - Contact - Get Recently Updated": [
{
"json": {
"addedAt": 1390574181854,
"canonical-vid": 204727,
"form-submissions": [],
"identity-profiles": [
{
"deleted-changed-timestamp": 0,
"identities": [
{
"timestamp": 1390574181878,
"type": "LEAD_GUID",
"value": "f9d728f1-dff1-49b0-9caa-247dbdf5b8b7"
},
{
"timestamp": 1476768116137,
"type": "EMAIL",
"value": "mgnew-email@hubspot.com"
}
],
"saved-at-timestamp": 1476768116149,
"vid": 204727
}
],
"is-contact": true,
"merge-audits": [],
"merged-vids": [],
"portal-id": 62515,
"properties": {
"company": {
"value": ""
},
"firstname": {
"value": "Bob"
},
"lastmodifieddate": {
"value": "1483461406481"
},
"lastname": {
"value": "Record"
}
},
"vid": 204727
}
},
{
"json": {
"addedAt": 1392643921079,
"canonical-vid": 207303,
"form-submissions": [],
"identity-profiles": [
{
"deleted-changed-timestamp": 0,
"identities": [
{
"timestamp": 1392643921079,
"type": "EMAIL",
"value": "email_0be34aebe5@abctest.com"
},
{
"timestamp": 1392643921082,
"type": "LEAD_GUID",
"value": "058378c6-9513-43e1-a13a-43a98d47aa22"
}
],
"saved-at-timestamp": 1392643921090,
"vid": 207303
}
],
"is-contact": true,
"merge-audits": [],
"merged-vids": [],
"portal-id": 62515,
"properties": {
"firstname": {
"value": "Ff_FirstName_0"
},
"lastmodifieddate": {
"value": "1479148429488"
},
"lastname": {
"value": "Ff_LastName_0"
}
},
"vid": 207303
}
}
],
"HubSpot - Contact - Search": [
{
"json": {
"archived": false,
"archivedAt": "2025-04-16T18:54:48.554Z",
"createdAt": "2025-04-16T18:54:48.554Z",
"id": "512",
"objectWriteTraceId": "string",
"properties": {
"email": "mark.s@lumon.industries",
"firstname": "Mark",
"lastname": "S."
},
"propertiesWithHistory": {
"additionalProp1": [
{
"sourceId": "string",
"sourceLabel": "string",
"sourceType": "string",
"timestamp": "2025-04-16T18:54:48.554Z",
"updatedByUserId": 0,
"value": "string"
}
],
"additionalProp2": [
{
"sourceId": "string",
"sourceLabel": "string",
"sourceType": "string",
"timestamp": "2025-04-16T18:54:48.554Z",
"updatedByUserId": 0,
"value": "string"
}
],
"additionalProp3": [
{
"sourceId": "string",
"sourceLabel": "string",
"sourceType": "string",
"timestamp": "2025-04-16T18:54:48.554Z",
"updatedByUserId": 0,
"value": "string"
}
]
},
"updatedAt": "2025-04-16T18:54:48.554Z"
}
}
],
"HubSpot - Contact - Create - Without properties": [
{
"json": {
"addedAt": 1390574181854,
"canonical-vid": 204727,
"form-submissions": [],
"identity-profiles": [
{
"deleted-changed-timestamp": 0,
"identities": [
{
"timestamp": 1390574181878,
"type": "LEAD_GUID",
"value": "f9d728f1-dff1-49b0-9caa-247dbdf5b8b7"
},
{
"timestamp": 1476768116137,
"type": "EMAIL",
"value": "mgnew-email@hubspot.com"
}
],
"saved-at-timestamp": 1476768116149,
"vid": 204727
}
],
"is-contact": true,
"merge-audits": [],
"merged-vids": [],
"portal-id": 62515,
"properties": {
"company": {
"value": ""
},
"firstname": {
"value": "Bob"
},
"lastmodifieddate": {
"value": "1483461406481"
},
"lastname": {
"value": "Record"
}
},
"vid": 204727
}
}
],
"HubSpot - Contact - Create - With new properties": [
{
"json": {
"addedAt": 1390574181854,
"canonical-vid": 204727,
"form-submissions": [],
"identity-profiles": [
{
"deleted-changed-timestamp": 0,
"identities": [
{
"timestamp": 1390574181878,
"type": "LEAD_GUID",
"value": "f9d728f1-dff1-49b0-9caa-247dbdf5b8b7"
},
{
"timestamp": 1476768116137,
"type": "EMAIL",
"value": "mgnew-email@hubspot.com"
}
],
"saved-at-timestamp": 1476768116149,
"vid": 204727
}
],
"is-contact": true,
"merge-audits": [],
"merged-vids": [],
"portal-id": 62515,
"properties": {
"company": {
"value": ""
},
"firstname": {
"value": "Bob"
},
"lastmodifieddate": {
"value": "1483461406481"
},
"lastname": {
"value": "Record"
}
},
"vid": 204727
}
}
]
},
"connections": {
"When clicking Execute workflow": {
"main": [
[
{
"node": "HubSpot - Contact - Delete",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Contact - Create",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Contact - Get",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Contact - Get Many",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Contact - Get Recently Updated",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Contact - Search",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Contact - Create - Without properties",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Contact - Create - With new properties",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "2893ac70-b652-4ada-83de-e1eb3944b0ef",
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "eeda9e3069aca300d1dfceeb64beb5b53d715db44a50461bbc5cb0cf6daa01e3"
},
"id": "ufE0Naih6reFUYf3",
"tags": []
}
@@ -0,0 +1,676 @@
{
"name": "Hubspot deals",
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [-220, 600],
"id": "4d956443-f695-467e-8ab4-3500914bb1dc",
"name": "When clicking Execute workflow"
},
{
"parameters": {
"resource": "deal",
"operation": "delete",
"dealId": {
"__rl": true,
"value": "123",
"mode": "id"
}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [0, 0],
"id": "c7db8b4e-7ceb-4070-8559-4daf1b23e63a",
"name": "HubSpot - Deal - Delete",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"resource": "deal",
"stage": "=test stage name",
"additionalFields": {
"amount": "100",
"closeDate": "2025-04-17T00:00:00",
"customPropertiesUi": {
"customPropertiesValues": [
{
"property": "=test_custom_prop_name",
"value": "test custom prop value"
}
]
},
"description": "Test Deal Desc",
"dealName": "Test Deal",
"pipeline": "=test pipeline name"
}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [0, 400],
"id": "9abda6ab-bd8c-4e9e-9e9c-178f6241c7df",
"name": "HubSpot - Deal - Create",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"resource": "deal",
"operation": "update",
"dealId": {
"__rl": true,
"value": "123",
"mode": "id"
},
"updateFields": {
"closeDate": "2025-04-22T00:00:00",
"dealName": "New Name",
"dealOwner": {
"__rl": true,
"value": "123",
"mode": "id"
},
"stage": "=1234",
"pipeline": "123"
}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [0, 200],
"id": "92854c9b-16d8-44e0-adba-2a4296476a02",
"name": "HubSpot - Deal - Update",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"resource": "deal",
"operation": "get",
"dealId": {
"__rl": true,
"value": "123",
"mode": "id"
},
"filters": {
"includePropertyVersions": true
}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [0, 600],
"id": "3566fc17-93d8-4b89-8864-a26ea2f4de51",
"name": "HubSpot - Deal - Get",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"resource": "deal",
"operation": "getAll",
"limit": 2,
"filters": {
"includeAssociations": true
}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [0, 800],
"id": "d0f5d2be-8369-494e-8526-452e6b2a51dc",
"name": "HubSpot - Deal - Get Many",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"resource": "deal",
"operation": "getRecentlyCreatedUpdated",
"limit": 2,
"filters": {
"since": "2025-04-21T00:00:00",
"includePropertyVersions": true
}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [0, 1000],
"id": "4ac5aae3-0192-40bf-83d8-d36fadc19a57",
"name": "HubSpot - Deal - Get Recently Updated",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"resource": "deal",
"operation": "search",
"limit": 2,
"filterGroupsUi": {
"filterGroupsValues": [
{
"filtersUi": {
"filterValues": [
{
"propertyName": "=name",
"value": "Test Deal Name"
}
]
}
}
]
},
"additionalFields": {
"direction": "ASCENDING",
"sortBy": "=createdate"
}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [0, 1200],
"id": "a6011494-27f9-4f09-bd30-f509f6438232",
"name": "HubSpot - Deal - Search",
"credentials": {
"hubspotApi": {
"id": "EDJsHUkhqof5gr15",
"name": "HubSpot account"
}
}
}
],
"pinData": {
"HubSpot - Deal - Delete": [
{
"json": {
"associations": {
"associatedCompanyIds": [237892],
"associatedDealIds": [],
"associatedVids": [393873, 734934]
},
"dealId": 18039629,
"imports": [],
"isDeleted": false,
"portalId": 62515,
"properties": {
"dealname": {
"source": "API",
"sourceId": null,
"timestamp": 1457040864519,
"value": "Company",
"versions": [
{
"name": "dealname",
"source": "API",
"sourceVid": [],
"timestamp": 1457040864519,
"value": "Company Name"
}
]
},
"num_associated_contacts": {
"source": "CALCULATED",
"sourceId": null,
"timestamp": 0,
"value": "2",
"versions": [
{
"name": "num_associated_contacts",
"source": "CALCULATED",
"sourceVid": [],
"value": "2"
}
]
}
}
}
}
],
"HubSpot - Deal - Create": [
{
"json": {
"associations": {
"associatedCompanyIds": [237892],
"associatedDealIds": [],
"associatedVids": [393873, 734934]
},
"dealId": 18039629,
"imports": [],
"isDeleted": false,
"portalId": 62515,
"properties": {
"dealname": {
"source": "API",
"sourceId": null,
"timestamp": 1457040864519,
"value": "Company",
"versions": [
{
"name": "dealname",
"source": "API",
"sourceVid": [],
"timestamp": 1457040864519,
"value": "Company Name"
}
]
},
"num_associated_contacts": {
"source": "CALCULATED",
"sourceId": null,
"timestamp": 0,
"value": "2",
"versions": [
{
"name": "num_associated_contacts",
"source": "CALCULATED",
"sourceVid": [],
"value": "2"
}
]
}
}
}
}
],
"HubSpot - Deal - Update": [
{
"json": {
"associations": {
"associatedCompanyIds": [237892],
"associatedDealIds": [],
"associatedVids": [393873, 734934]
},
"dealId": 18039629,
"imports": [],
"isDeleted": false,
"portalId": 62515,
"properties": {
"dealname": {
"source": "API",
"sourceId": null,
"timestamp": 1457040864519,
"value": "Company",
"versions": [
{
"name": "dealname",
"source": "API",
"sourceVid": [],
"timestamp": 1457040864519,
"value": "Company Name"
}
]
},
"num_associated_contacts": {
"source": "CALCULATED",
"sourceId": null,
"timestamp": 0,
"value": "2",
"versions": [
{
"name": "num_associated_contacts",
"source": "CALCULATED",
"sourceVid": [],
"value": "2"
}
]
}
}
}
}
],
"HubSpot - Deal - Get": [
{
"json": {
"associations": {
"associatedCompanyIds": [237892],
"associatedDealIds": [],
"associatedVids": [393873, 734934]
},
"dealId": 18039629,
"imports": [],
"isDeleted": false,
"portalId": 62515,
"properties": {
"dealname": {
"source": "API",
"sourceId": null,
"timestamp": 1457040864519,
"value": "Company",
"versions": [
{
"name": "dealname",
"source": "API",
"sourceVid": [],
"timestamp": 1457040864519,
"value": "Company Name"
}
]
},
"num_associated_contacts": {
"source": "CALCULATED",
"sourceId": null,
"timestamp": 0,
"value": "2",
"versions": [
{
"name": "num_associated_contacts",
"source": "CALCULATED",
"sourceVid": [],
"value": "2"
}
]
}
}
}
}
],
"HubSpot - Deal - Get Many": [
{
"json": {
"associations": {
"associatedCompanyIds": [237892],
"associatedDealIds": [],
"associatedVids": [393873, 734934]
},
"dealId": 18039629,
"imports": [],
"isDeleted": false,
"portalId": 62515,
"properties": {
"dealname": {
"source": "API",
"sourceId": null,
"timestamp": 1457040864519,
"value": "Company",
"versions": [
{
"name": "dealname",
"source": "API",
"sourceVid": [],
"timestamp": 1457040864519,
"value": "Company Name"
}
]
},
"num_associated_contacts": {
"source": "CALCULATED",
"sourceId": null,
"timestamp": 0,
"value": "2",
"versions": [
{
"name": "num_associated_contacts",
"source": "CALCULATED",
"sourceVid": [],
"value": "2"
}
]
}
}
}
},
{
"json": {
"associations": {
"associatedCompanyIds": [],
"associatedDealIds": [],
"associatedVids": []
},
"dealId": 18040854,
"imports": [],
"isDeleted": false,
"portalId": 62515,
"properties": {
"dealname": {
"source": "API",
"sourceId": null,
"timestamp": 1457042290572,
"value": "5678",
"versions": [
{
"name": "dealname",
"source": "API",
"sourceVid": [],
"timestamp": 1457042290572,
"value": "5678"
}
]
},
"num_associated_contacts": {
"source": "CALCULATED",
"sourceId": null,
"timestamp": 0,
"value": "0",
"versions": [
{
"name": "num_associated_contacts",
"source": "CALCULATED",
"sourceVid": [],
"value": "0"
}
]
}
}
}
}
],
"HubSpot - Deal - Get Recently Updated": [
{
"json": {
"associations": {
"associatedCompanyIds": [237892],
"associatedDealIds": [],
"associatedVids": [393873, 734934]
},
"dealId": 18039629,
"imports": [],
"isDeleted": false,
"portalId": 62515,
"properties": {
"dealname": {
"source": "API",
"sourceId": null,
"timestamp": 1457040864519,
"value": "Company",
"versions": [
{
"name": "dealname",
"source": "API",
"sourceVid": [],
"timestamp": 1457040864519,
"value": "Company Name"
}
]
},
"num_associated_contacts": {
"source": "CALCULATED",
"sourceId": null,
"timestamp": 0,
"value": "2",
"versions": [
{
"name": "num_associated_contacts",
"source": "CALCULATED",
"sourceVid": [],
"value": "2"
}
]
}
}
}
},
{
"json": {
"associations": {
"associatedCompanyIds": [],
"associatedDealIds": [],
"associatedVids": []
},
"dealId": 18040854,
"imports": [],
"isDeleted": false,
"portalId": 62515,
"properties": {
"dealname": {
"source": "API",
"sourceId": null,
"timestamp": 1457042290572,
"value": "5678",
"versions": [
{
"name": "dealname",
"source": "API",
"sourceVid": [],
"timestamp": 1457042290572,
"value": "5678"
}
]
},
"num_associated_contacts": {
"source": "CALCULATED",
"sourceId": null,
"timestamp": 0,
"value": "0",
"versions": [
{
"name": "num_associated_contacts",
"source": "CALCULATED",
"sourceVid": [],
"value": "0"
}
]
}
}
}
}
],
"HubSpot - Deal - Search": [
{
"json": {
"archived": false,
"archivedAt": "2025-04-17T07:56:45.039Z",
"createdAt": "2025-04-17T07:56:45.039Z",
"id": "512",
"objectWriteTraceId": "string",
"properties": {
"property_checkbox": "false",
"property_date": "1572480000000",
"property_dropdown": "choice_b",
"property_multiple_checkboxes": "chocolate;strawberry",
"property_number": "17",
"property_radio": "option_1",
"property_string": "value"
},
"propertiesWithHistory": {
"additionalProp1": [
{
"sourceId": "string",
"sourceLabel": "string",
"sourceType": "string",
"timestamp": "2025-04-17T07:56:45.039Z",
"updatedByUserId": 0,
"value": "string"
}
],
"additionalProp2": [
{
"sourceId": "string",
"sourceLabel": "string",
"sourceType": "string",
"timestamp": "2025-04-17T07:56:45.039Z",
"updatedByUserId": 0,
"value": "string"
}
],
"additionalProp3": [
{
"sourceId": "string",
"sourceLabel": "string",
"sourceType": "string",
"timestamp": "2025-04-17T07:56:45.039Z",
"updatedByUserId": 0,
"value": "string"
}
]
},
"updatedAt": "2025-04-17T07:56:45.039Z"
}
}
]
},
"connections": {
"When clicking Execute workflow": {
"main": [
[
{
"node": "HubSpot - Deal - Create",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Deal - Delete",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Deal - Get",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Deal - Get Many",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Deal - Get Recently Updated",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Deal - Search",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Deal - Update",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "f124628e-1023-457a-92df-c9afd1a8b0e7",
"meta": {
"instanceId": "27cc9b56542ad45b38725555722c50a1c3fee1670bbb67980558314ee08517c4"
},
"id": "dsIoAai3PXpPeSDT",
"tags": []
}
@@ -0,0 +1,266 @@
{
"name": "Hubspot - Engagements",
"nodes": [
{
"parameters": {
"authentication": "appToken",
"resource": "engagement",
"type": "task",
"dueDate": "2025-08-31T13:12:56",
"metadata": {
"body": "Hello world",
"subject": "Title"
},
"additionalFields": {
"associations": {
"ownerId": 123456789
}
}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.2,
"position": [0, 0],
"id": "942a05ef-f3ed-4511-a00f-0b1e5e1b8a49",
"name": "HubSpot - Engagement - Create with ownerId",
"credentials": {
"hubspotAppToken": {
"id": "vWZfuQawMAWdxKms",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"authentication": "appToken",
"resource": "engagement",
"type": "task",
"dueDate": "2025-08-31T13:12:56",
"metadata": {
"body": "Hello world",
"subject": "Title"
},
"additionalFields": {}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.2,
"position": [0, 200],
"id": "7fb51d0d-28b5-450d-b910-f6d91e69e934",
"name": "HubSpot - Engagement - Create",
"credentials": {
"hubspotAppToken": {
"id": "vWZfuQawMAWdxKms",
"name": "HubSpot account"
}
}
},
{
"parameters": {
"authentication": "appToken",
"resource": "engagement",
"type": "task",
"metadata": {
"body": "Hello world",
"subject": "Title"
},
"additionalFields": {}
},
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2.1,
"position": [0, 400],
"id": "7fb51d0d-28b5-450d-b910-f6d91e69e935",
"name": "HubSpot - Engagement - Create 2.1",
"credentials": {
"hubspotAppToken": {
"id": "vWZfuQawMAWdxKms",
"name": "HubSpot account"
}
}
},
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [-220, 600],
"id": "ec9e619e-c75a-41ea-8f54-16827bcd664b",
"name": "When clicking Execute workflow"
}
],
"pinData": {
"HubSpot - Engagement - Create with ownerId": [
{
"json": {
"associationCreateFailures": [],
"engagement": {
"id": 274361144556,
"portalId": 146787276,
"active": true,
"createdAt": 1756127696406,
"lastUpdated": 1756127696406,
"ownerId": 123456789,
"type": "TASK",
"timestamp": 1756645976000,
"allAccessibleTeamIds": [],
"bodyPreview": "Hello world",
"queueMembershipIds": [],
"bodyPreviewIsTruncated": false,
"bodyPreviewHtml": "<html>\n <head></head>\n <body>\n Hello world\n </body>\n</html>"
},
"associations": {
"contactIds": [],
"companyIds": [],
"dealIds": [],
"ownerIds": [],
"workflowIds": [],
"ticketIds": [],
"contentIds": [],
"quoteIds": [],
"marketingEventIds": [],
"partnerClientIds": [],
"orderIds": [],
"cartIds": []
},
"attachments": [],
"scheduledTasks": [],
"metadata": {
"body": "Hello world",
"status": "NOT_STARTED",
"forObjectType": "OWNER",
"subject": "Title",
"taskType": "TODO",
"reminders": [],
"priority": "NONE",
"isAllDay": false
}
}
}
],
"HubSpot - Engagement - Create": [
{
"json": {
"associationCreateFailures": [],
"engagement": {
"id": 274123775164,
"portalId": 146787276,
"active": true,
"createdAt": 1756127766844,
"lastUpdated": 1756127766844,
"type": "TASK",
"timestamp": 1756645976000,
"allAccessibleTeamIds": [],
"bodyPreview": "Hello world",
"queueMembershipIds": [],
"bodyPreviewIsTruncated": false,
"bodyPreviewHtml": "<html>\n <head></head>\n <body>\n Hello world\n </body>\n</html>"
},
"associations": {
"contactIds": [],
"companyIds": [],
"dealIds": [],
"ownerIds": [],
"workflowIds": [],
"ticketIds": [],
"contentIds": [],
"quoteIds": [],
"marketingEventIds": [],
"partnerClientIds": [],
"orderIds": [],
"cartIds": []
},
"attachments": [],
"scheduledTasks": [],
"metadata": {
"body": "Hello world",
"status": "NOT_STARTED",
"forObjectType": "OWNER",
"subject": "Title",
"taskType": "TODO",
"reminders": [],
"priority": "NONE",
"isAllDay": false
}
}
}
],
"HubSpot - Engagement - Create 2.1": [
{
"json": {
"associationCreateFailures": [],
"engagement": {
"id": 274123775164,
"portalId": 146787276,
"active": true,
"createdAt": 1756127766844,
"lastUpdated": 1756127766844,
"type": "TASK",
"timestamp": 1756645976000,
"allAccessibleTeamIds": [],
"bodyPreview": "Hello world",
"queueMembershipIds": [],
"bodyPreviewIsTruncated": false,
"bodyPreviewHtml": "<html>\n <head></head>\n <body>\n Hello world\n </body>\n</html>"
},
"associations": {
"contactIds": [],
"companyIds": [],
"dealIds": [],
"ownerIds": [],
"workflowIds": [],
"ticketIds": [],
"contentIds": [],
"quoteIds": [],
"marketingEventIds": [],
"partnerClientIds": [],
"orderIds": [],
"cartIds": []
},
"attachments": [],
"scheduledTasks": [],
"metadata": {
"body": "Hello world",
"status": "NOT_STARTED",
"forObjectType": "OWNER",
"subject": "Title",
"taskType": "TODO",
"reminders": [],
"priority": "NONE",
"isAllDay": false
}
}
}
]
},
"connections": {
"When clicking Execute workflow": {
"main": [
[
{
"node": "HubSpot - Engagement - Create with ownerId",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Engagement - Create",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Engagement - Create 2.1",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "7b4c4c50-0d21-4857-b36d-6392ee84ab18",
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "653b28422b2af80d4de68237267b34fdf127ab92f8fb0887c6b0a2be7e7f27c7"
},
"id": "4TOsSL2vMvJQ86E2",
"tags": []
}
@@ -0,0 +1,84 @@
{
"companies": [
{
"portalId": 62515,
"additionalDomains": [],
"properties": {
"website": {
"sourceId": null,
"timestamp": 1457513066540,
"versions": [
{
"timestamp": 1457513066540,
"sourceVid": [],
"name": "website",
"value": "example.com",
"source": "COMPANIES"
}
],
"value": "example.com",
"source": "COMPANIES"
},
"name": {
"sourceId": "name",
"timestamp": 1464484587592,
"versions": [
{
"name": "name",
"sourceId": "name",
"timestamp": 1464484587592,
"value": "Example Company",
"source": "BIDEN",
"sourceVid": []
}
],
"value": "Example Company",
"source": "BIDEN"
}
},
"isDeleted": false,
"companyId": 115200636
},
{
"portalId": 62515,
"additionalDomains": [],
"properties": {
"website": {
"sourceId": null,
"timestamp": 1457535205549,
"versions": [
{
"timestamp": 1457535205549,
"sourceVid": [],
"name": "website",
"value": "test.com",
"source": "COMPANIES"
}
],
"value": "test.com",
"source": "COMPANIES"
},
"name": {
"sourceId": "name",
"timestamp": 1468832771769,
"versions": [
{
"name": "name",
"sourceId": "name",
"timestamp": 1468832771769,
"value": "Test Company",
"source": "BIDEN",
"sourceVid": []
}
],
"value": "Test Company",
"source": "BIDEN"
}
},
"isDeleted": false,
"companyId": 115279791
}
],
"has-more": false,
"offset": 115279791
}
@@ -0,0 +1,151 @@
{
"results": [
{
"portalId": 62515,
"companyId": 184896670,
"isDeleted": false,
"properties": {
"hs_lastmodifieddate": {
"value": "1502872954691",
"timestamp": 1502872954691,
"source": "CALCULATED",
"sourceId": null,
"versions": [
{
"name": "hs_lastmodifieddate",
"value": "1502872954691",
"timestamp": 1502872954691,
"source": "CALCULATED",
"sourceVid": []
}
]
},
"domain": {
"value": "hubspot.com",
"timestamp": 1457708103847,
"source": "COMPANIES",
"sourceId": null,
"versions": [
{
"name": "domain",
"value": "hubspot.com",
"timestamp": 1457708103847,
"source": "COMPANIES",
"sourceVid": []
}
]
},
"name": {
"value": "Hubspot, Inc.",
"timestamp": 1457708103906,
"source": "BIDEN",
"sourceId": "name",
"versions": [
{
"name": "name",
"value": "Hubspot, Inc.",
"timestamp": 1457708103906,
"sourceId": "name",
"source": "BIDEN",
"sourceVid": []
}
]
},
"createdate": {
"value": "1457708103847",
"timestamp": 1457708103847,
"source": "API",
"sourceId": null,
"versions": [
{
"name": "createdate",
"value": "1457708103847",
"timestamp": 1457708103847,
"source": "API",
"sourceVid": []
}
]
}
},
"additionalDomains": [],
"stateChanges": [],
"mergeAudits": []
},
{
"portalId": 62515,
"companyId": 418736767,
"isDeleted": false,
"properties": {
"hs_lastmodifieddate": {
"value": "1498644245669",
"timestamp": 1498644245669,
"source": "CALCULATED",
"sourceId": null,
"versions": [
{
"name": "hs_lastmodifieddate",
"value": "1498644245669",
"timestamp": 1498644245669,
"source": "CALCULATED",
"sourceVid": []
}
]
},
"domain": {
"value": "hubspot.com",
"timestamp": 1490280388204,
"source": "API",
"sourceId": null,
"versions": [
{
"name": "domain",
"value": "hubspot.com",
"timestamp": 1490280388204,
"source": "API",
"sourceVid": []
}
]
},
"name": {
"value": "qweqwe2323",
"timestamp": 1490280388204,
"source": "API",
"sourceId": null,
"versions": [
{
"name": "name",
"value": "qweqwe2323",
"timestamp": 1490280388204,
"source": "API",
"sourceVid": []
}
]
},
"createdate": {
"value": "1490280388204",
"timestamp": 1490280388204,
"source": "API",
"sourceId": "API",
"versions": [
{
"name": "createdate",
"value": "1490280388204",
"timestamp": 1490280388204,
"sourceId": "API",
"source": "API",
"sourceVid": []
}
]
}
},
"additionalDomains": [],
"stateChanges": [],
"mergeAudits": []
}
],
"hasMore": true,
"offset": {
"companyId": 418736767,
"isPrimary": true
}
}
@@ -0,0 +1,89 @@
{
"contacts": [
{
"addedAt": 1390574181854,
"vid": 204727,
"canonical-vid": 204727,
"merged-vids": [],
"portal-id": 62515,
"is-contact": true,
"properties": {
"firstname": {
"value": "Bob"
},
"lastmodifieddate": {
"value": "1483461406481"
},
"company": {
"value": ""
},
"lastname": {
"value": "Record"
}
},
"form-submissions": [],
"identity-profiles": [
{
"vid": 204727,
"saved-at-timestamp": 1476768116149,
"deleted-changed-timestamp": 0,
"identities": [
{
"type": "LEAD_GUID",
"value": "f9d728f1-dff1-49b0-9caa-247dbdf5b8b7",
"timestamp": 1390574181878
},
{
"type": "EMAIL",
"value": "mgnew-email@hubspot.com",
"timestamp": 1476768116137
}
]
}
],
"merge-audits": []
},
{
"addedAt": 1392643921079,
"vid": 207303,
"canonical-vid": 207303,
"merged-vids": [],
"portal-id": 62515,
"is-contact": true,
"properties": {
"firstname": {
"value": "Ff_FirstName_0"
},
"lastmodifieddate": {
"value": "1479148429488"
},
"lastname": {
"value": "Ff_LastName_0"
}
},
"form-submissions": [],
"identity-profiles": [
{
"vid": 207303,
"saved-at-timestamp": 1392643921090,
"deleted-changed-timestamp": 0,
"identities": [
{
"type": "EMAIL",
"value": "email_0be34aebe5@abctest.com",
"timestamp": 1392643921079
},
{
"type": "LEAD_GUID",
"value": "058378c6-9513-43e1-a13a-43a98d47aa22",
"timestamp": 1392643921082
}
]
}
],
"merge-audits": []
}
],
"has-more": false,
"vid-offset": 207303
}
@@ -0,0 +1,56 @@
{
"total": 0,
"paging": {
"next": {
"link": "?after=NTI1Cg%3D%3D",
"after": "NTI1Cg%3D%3D"
}
},
"results": [
{
"createdAt": "2025-04-16T18:54:48.554Z",
"archived": false,
"archivedAt": "2025-04-16T18:54:48.554Z",
"propertiesWithHistory": {
"additionalProp1": [
{
"sourceId": "string",
"sourceType": "string",
"sourceLabel": "string",
"updatedByUserId": 0,
"value": "string",
"timestamp": "2025-04-16T18:54:48.554Z"
}
],
"additionalProp2": [
{
"sourceId": "string",
"sourceType": "string",
"sourceLabel": "string",
"updatedByUserId": 0,
"value": "string",
"timestamp": "2025-04-16T18:54:48.554Z"
}
],
"additionalProp3": [
{
"sourceId": "string",
"sourceType": "string",
"sourceLabel": "string",
"updatedByUserId": 0,
"value": "string",
"timestamp": "2025-04-16T18:54:48.554Z"
}
]
},
"id": "512",
"objectWriteTraceId": "string",
"properties": {
"email": "mark.s@lumon.industries",
"lastname": "S.",
"firstname": "Mark"
},
"updatedAt": "2025-04-16T18:54:48.554Z"
}
]
}
@@ -0,0 +1,90 @@
{
"deals": [
{
"portalId": 62515,
"dealId": 18039629,
"isDeleted": false,
"associations": {
"associatedVids": [393873, 734934],
"associatedCompanyIds": [237892],
"associatedDealIds": []
},
"properties": {
"dealname": {
"value": "Company",
"timestamp": 1457040864519,
"source": "API",
"sourceId": null,
"versions": [
{
"name": "dealname",
"value": "Company Name",
"timestamp": 1457040864519,
"source": "API",
"sourceVid": []
}
]
},
"num_associated_contacts": {
"value": "2",
"timestamp": 0,
"source": "CALCULATED",
"sourceId": null,
"versions": [
{
"name": "num_associated_contacts",
"value": "2",
"source": "CALCULATED",
"sourceVid": []
}
]
}
},
"imports": []
},
{
"portalId": 62515,
"dealId": 18040854,
"isDeleted": false,
"associations": {
"associatedVids": [],
"associatedCompanyIds": [],
"associatedDealIds": []
},
"properties": {
"dealname": {
"value": "5678",
"timestamp": 1457042290572,
"source": "API",
"sourceId": null,
"versions": [
{
"name": "dealname",
"value": "5678",
"timestamp": 1457042290572,
"source": "API",
"sourceVid": []
}
]
},
"num_associated_contacts": {
"value": "0",
"timestamp": 0,
"source": "CALCULATED",
"sourceId": null,
"versions": [
{
"name": "num_associated_contacts",
"value": "0",
"source": "CALCULATED",
"sourceVid": []
}
]
}
},
"imports": []
}
],
"hasMore": false,
"offset": 18040854
}
@@ -0,0 +1,60 @@
{
"total": 0,
"paging": {
"next": {
"link": "?after=NTI1Cg%3D%3D",
"after": "NTI1Cg%3D%3D"
}
},
"results": [
{
"createdAt": "2025-04-17T07:56:45.039Z",
"archived": false,
"archivedAt": "2025-04-17T07:56:45.039Z",
"propertiesWithHistory": {
"additionalProp1": [
{
"sourceId": "string",
"sourceType": "string",
"sourceLabel": "string",
"updatedByUserId": 0,
"value": "string",
"timestamp": "2025-04-17T07:56:45.039Z"
}
],
"additionalProp2": [
{
"sourceId": "string",
"sourceType": "string",
"sourceLabel": "string",
"updatedByUserId": 0,
"value": "string",
"timestamp": "2025-04-17T07:56:45.039Z"
}
],
"additionalProp3": [
{
"sourceId": "string",
"sourceType": "string",
"sourceLabel": "string",
"updatedByUserId": 0,
"value": "string",
"timestamp": "2025-04-17T07:56:45.039Z"
}
]
},
"id": "512",
"objectWriteTraceId": "string",
"properties": {
"property_date": "1572480000000",
"property_radio": "option_1",
"property_number": "17",
"property_string": "value",
"property_checkbox": "false",
"property_dropdown": "choice_b",
"property_multiple_checkboxes": "chocolate;strawberry"
},
"updatedAt": "2025-04-17T07:56:45.039Z"
}
]
}
@@ -0,0 +1,151 @@
{
"request": {
"createWithOwnerId": {
"engagement": { "type": "TASK", "ownerId": 123456789, "timestamp": 1756645976000 },
"metadata": { "body": "Hello world", "subject": "Title" },
"associations": {}
},
"createWithoutOwnerId": {
"engagement": { "type": "TASK", "timestamp": 1756645976000 },
"metadata": { "body": "Hello world", "subject": "Title" },
"associations": {}
},
"createV2_1": {
"engagement": { "type": "TASK" },
"metadata": { "body": "Hello world", "subject": "Title" },
"associations": {}
}
},
"response": {
"createWithOwnerId": {
"associationCreateFailures": [],
"engagement": {
"id": 274361144556,
"portalId": 146787276,
"active": true,
"createdAt": 1756127696406,
"lastUpdated": 1756127696406,
"ownerId": 123456789,
"type": "TASK",
"timestamp": 1756645976000,
"allAccessibleTeamIds": [],
"bodyPreview": "Hello world",
"queueMembershipIds": [],
"bodyPreviewIsTruncated": false,
"bodyPreviewHtml": "<html>\n <head></head>\n <body>\n Hello world\n </body>\n</html>"
},
"associations": {
"contactIds": [],
"companyIds": [],
"dealIds": [],
"ownerIds": [],
"workflowIds": [],
"ticketIds": [],
"contentIds": [],
"quoteIds": [],
"marketingEventIds": [],
"partnerClientIds": [],
"orderIds": [],
"cartIds": []
},
"attachments": [],
"scheduledTasks": [],
"metadata": {
"body": "Hello world",
"status": "NOT_STARTED",
"forObjectType": "OWNER",
"subject": "Title",
"taskType": "TODO",
"reminders": [],
"priority": "NONE",
"isAllDay": false
}
},
"createWithoutOwnerId": {
"associationCreateFailures": [],
"engagement": {
"id": 274123775164,
"portalId": 146787276,
"active": true,
"createdAt": 1756127766844,
"lastUpdated": 1756127766844,
"type": "TASK",
"timestamp": 1756645976000,
"allAccessibleTeamIds": [],
"bodyPreview": "Hello world",
"queueMembershipIds": [],
"bodyPreviewIsTruncated": false,
"bodyPreviewHtml": "<html>\n <head></head>\n <body>\n Hello world\n </body>\n</html>"
},
"associations": {
"contactIds": [],
"companyIds": [],
"dealIds": [],
"ownerIds": [],
"workflowIds": [],
"ticketIds": [],
"contentIds": [],
"quoteIds": [],
"marketingEventIds": [],
"partnerClientIds": [],
"orderIds": [],
"cartIds": []
},
"attachments": [],
"scheduledTasks": [],
"metadata": {
"body": "Hello world",
"status": "NOT_STARTED",
"forObjectType": "OWNER",
"subject": "Title",
"taskType": "TODO",
"reminders": [],
"priority": "NONE",
"isAllDay": false
}
},
"createV2_1": {
"associationCreateFailures": [],
"engagement": {
"id": 274123775164,
"portalId": 146787276,
"active": true,
"createdAt": 1756127766844,
"lastUpdated": 1756127766844,
"type": "TASK",
"timestamp": 1756645976000,
"allAccessibleTeamIds": [],
"bodyPreview": "Hello world",
"queueMembershipIds": [],
"bodyPreviewIsTruncated": false,
"bodyPreviewHtml": "<html>\n <head></head>\n <body>\n Hello world\n </body>\n</html>"
},
"associations": {
"contactIds": [],
"companyIds": [],
"dealIds": [],
"ownerIds": [],
"workflowIds": [],
"ticketIds": [],
"contentIds": [],
"quoteIds": [],
"marketingEventIds": [],
"partnerClientIds": [],
"orderIds": [],
"cartIds": []
},
"attachments": [],
"scheduledTasks": [],
"metadata": {
"body": "Hello world",
"status": "NOT_STARTED",
"forObjectType": "OWNER",
"subject": "Title",
"taskType": "TODO",
"reminders": [],
"priority": "NONE",
"isAllDay": false
}
}
}
}
@@ -0,0 +1,19 @@
import { parseToTimestamp } from '../../V2/utils/parseToTimestamp';
describe('parseToTimestamp', () => {
it('should convert a valid date string to a UTC Unix timestamp', () => {
const dateString = '2023-10-05T14:48:00Z';
const expectedTimestamp = 1696517280000;
expect(parseToTimestamp(dateString)).toBe(expectedTimestamp);
});
it('should throw an error for an invalid date string', () => {
const invalidDateString = 'invalid-date';
expect(() => parseToTimestamp(invalidDateString)).toThrow('Invalid date string');
});
it('should throw an error when input is not a string', () => {
const invalidDateString = 1234567890;
expect(() => parseToTimestamp(invalidDateString)).toThrow('Invalid date string');
});
});
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 62.883 69.883"><use xlink:href="#a" x="2.442" y="2.442"/><symbol id="a" overflow="visible"><path fill="#f8761f" fill-rule="nonzero" stroke="none" d="M55.504 30.401a16.26 16.26 0 0 0-5.904-5.864c-1.865-1.084-3.794-1.773-5.972-2.07v-7.798a5.71 5.71 0 0 0 3.525-5.357 5.86 5.86 0 0 0-5.859-5.889 5.91 5.91 0 0 0-5.908 5.889c0 2.393 1.27 4.434 3.452 5.357v7.754a17 17 0 0 0-5.195 1.631L12.769 8.247c.146-.552.273-1.123.273-1.724A6.52 6.52 0 0 0 6.519 0 6.52 6.52 0 0 0 0 6.524a6.523 6.523 0 0 0 6.524 6.524 6.47 6.47 0 0 0 3.35-.952l1.367 1.035 18.726 13.501c-.991.908-1.914 1.943-2.651 3.105-1.494 2.368-2.407 4.971-2.407 7.813v.586a16.4 16.4 0 0 0 1.025 5.645C26.5 45.324 27.33 46.73 28.361 48l-6.221 6.235a5.01 5.01 0 0 0-5.298 1.162c-.947.942-1.48 2.227-1.475 3.565s.527 2.612 1.479 3.564 2.227 1.48 3.565 1.48a5 5 0 0 0 3.565-1.48 5.05 5.05 0 0 0 1.475-3.564 5 5 0 0 0-.234-1.514l6.426-6.426a16 16 0 0 0 2.856 1.563 16.7 16.7 0 0 0 6.685 1.406h.439a15.76 15.76 0 0 0 7.627-1.929 15.77 15.77 0 0 0 5.977-5.63c1.499-2.393 2.319-5.044 2.319-7.959v-.146c0-2.866-.664-5.508-2.051-7.93zm-7.847 13.487c-1.743 1.938-3.75 3.135-6.016 3.135h-.43c-1.294 0-2.564-.356-3.799-1.011a8.8 8.8 0 0 1-3.33-3.032c-.898-1.27-1.387-2.656-1.387-4.126v-.439c0-1.445.278-2.817.977-4.111.747-1.465 1.758-2.515 3.101-3.389a7.6 7.6 0 0 1 4.297-1.294h.147c1.416 0 2.769.278 4.038.928a8.56 8.56 0 0 1 3.174 2.886 9.2 9.2 0 0 1 1.421 4.053l.034.913c0 1.987-.762 3.828-2.28 5.498z"/></symbol></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB