2023-01-27 03:22:44 -08:00
import type { INodeProperties } from 'n8n-workflow' ;
2020-04-01 15:10:41 -07:00
2021-12-03 00:44:16 -08:00
export const contactOperations : INodeProperties [ ] = [
2020-04-01 15:10:41 -07:00
{
displayName : 'Operation' ,
name : 'operation' ,
type : 'options' ,
2022-05-20 14:47:24 -07:00
noDataExpression : true ,
2020-04-01 15:10:41 -07:00
displayOptions : {
show : {
2022-08-17 08:50:24 -07:00
resource : [ 'contact' ] ,
2020-04-01 15:10:41 -07:00
} ,
} ,
options : [
{
2022-06-03 10:23:49 -07:00
name : 'Create or Update' ,
2020-04-02 16:37:40 -07:00
value : 'upsert' ,
2022-08-17 08:50:24 -07:00
description :
'Create a new contact, or update the current one if it already exists (upsert)' ,
2022-07-10 13:50:51 -07:00
action : 'Create or update a contact' ,
2020-04-01 15:10:41 -07:00
} ,
{
name : 'Delete' ,
value : 'delete' ,
description : 'Delete an contact' ,
2022-07-10 13:50:51 -07:00
action : 'Delete a contact' ,
2020-04-01 15:10:41 -07:00
} ,
{
name : 'Get' ,
value : 'get' ,
description : 'Retrieve an contact' ,
2022-07-10 13:50:51 -07:00
action : 'Get a contact' ,
2020-04-01 15:10:41 -07:00
} ,
{
2022-09-07 07:51:14 -07:00
name : 'Get Many' ,
2020-04-01 15:10:41 -07:00
value : 'getAll' ,
2022-09-13 03:36:36 -07:00
description : 'Retrieve many contacts' ,
2022-09-08 08:10:13 -07:00
action : 'Get many contacts' ,
2020-04-01 15:10:41 -07:00
} ,
] ,
2020-04-02 16:37:40 -07:00
default : 'upsert' ,
2020-04-01 15:10:41 -07:00
} ,
2021-12-03 00:44:16 -08:00
] ;
2020-04-01 15:10:41 -07:00
2021-12-03 00:44:16 -08:00
export const contactFields : INodeProperties [ ] = [
2022-08-17 08:50:24 -07:00
/* -------------------------------------------------------------------------- */
/* contact:upsert */
/* -------------------------------------------------------------------------- */
2020-04-01 15:10:41 -07:00
{
displayName : 'Duplicate Option' ,
name : 'duplicateOption' ,
required : true ,
type : 'options' ,
options : [
{
name : 'Email' ,
value : 'email' ,
} ,
{
name : 'Email And Name' ,
value : 'emailAndName' ,
} ,
] ,
displayOptions : {
show : {
2022-08-17 08:50:24 -07:00
operation : [ 'upsert' ] ,
resource : [ 'contact' ] ,
2020-04-01 15:10:41 -07:00
} ,
} ,
default : 'email' ,
2022-08-17 08:50:24 -07:00
description :
'Performs duplicate checking by one of the following options: Email, EmailAndName. If a match is found using the option provided, the existing contact will be updated.' ,
2020-04-01 15:10:41 -07:00
} ,
{
displayName : 'Additional Fields' ,
name : 'additionalFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
default : { } ,
displayOptions : {
show : {
2022-08-17 08:50:24 -07:00
operation : [ 'upsert' ] ,
resource : [ 'contact' ] ,
2020-04-01 15:10:41 -07:00
} ,
} ,
options : [
{
displayName : 'Anniversary' ,
name : 'anniversary' ,
type : 'dateTime' ,
default : '' ,
} ,
{
displayName : 'Company ID' ,
name : 'companyId' ,
type : 'number' ,
typeOptions : {
minValue : 0 ,
} ,
default : 0 ,
} ,
{
2022-06-03 10:23:49 -07:00
displayName : 'Contact Type Name or ID' ,
2020-04-01 15:10:41 -07:00
name : 'contactType' ,
type : 'options' ,
2022-08-17 08:50:24 -07:00
description :
'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>' ,
2020-04-01 15:10:41 -07:00
typeOptions : {
loadOptionsMethod : 'getContactTypes' ,
} ,
default : '' ,
} ,
{
displayName : 'Family Name' ,
name : 'familyName' ,
type : 'string' ,
default : '' ,
} ,
{
displayName : 'Given Name' ,
name : 'givenName' ,
type : 'string' ,
default : '' ,
} ,
{
displayName : 'IP Address' ,
name : 'ipAddress' ,
type : 'string' ,
default : '' ,
} ,
{
displayName : 'Job Title' ,
name : 'jobTitle' ,
type : 'string' ,
default : '' ,
} ,
{
displayName : 'Lead Source ID' ,
name : 'leadSourceId' ,
type : 'number' ,
default : 0 ,
} ,
{
displayName : 'Middle Name' ,
name : 'middleName' ,
type : 'string' ,
default : '' ,
} ,
{
displayName : 'Opt In Reason' ,
name : 'optInReason' ,
type : 'string' ,
default : '' ,
} ,
{
2022-06-03 10:23:49 -07:00
displayName : 'Owner Name or ID' ,
2020-04-01 15:10:41 -07:00
name : 'ownerId' ,
type : 'options' ,
2022-08-17 08:50:24 -07:00
description :
'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>' ,
2020-04-01 15:10:41 -07:00
typeOptions : {
loadOptionsMethod : 'getUsers' ,
} ,
default : '' ,
} ,
{
displayName : 'Preferred Locale' ,
name : 'preferredLocale' ,
type : 'string' ,
placeholder : 'en' ,
default : '' ,
} ,
{
displayName : 'Preferred Name' ,
name : 'preferredName' ,
type : 'string' ,
default : '' ,
} ,
{
displayName : 'Source Type' ,
name : 'sourceType' ,
type : 'options' ,
options : [
{
name : 'API' ,
value : 'API' ,
} ,
{
name : 'Import' ,
value : 'IMPORT' ,
} ,
{
name : 'Landing Page' ,
value : 'LANDINGPAGE' ,
} ,
{
name : 'Manual' ,
value : 'MANUAL' ,
} ,
{
name : 'Other' ,
value : 'OTHER' ,
} ,
{
name : 'Unknown' ,
value : 'UNKNOWN' ,
} ,
] ,
default : '' ,
} ,
{
displayName : 'Spouse Name' ,
name : 'spouseName' ,
type : 'string' ,
default : '' ,
} ,
{
2022-06-03 10:23:49 -07:00
displayName : 'Timezone Name or ID' ,
2020-04-01 15:10:41 -07:00
name : 'timezone' ,
type : 'options' ,
2022-08-17 08:50:24 -07:00
description :
'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>' ,
2020-04-01 15:10:41 -07:00
typeOptions : {
loadOptionsMethod : 'getTimezones' ,
} ,
default : '' ,
} ,
{
displayName : 'Website' ,
name : 'website' ,
type : 'string' ,
default : '' ,
} ,
] ,
} ,
{
displayName : 'Addresses' ,
name : 'addressesUi' ,
type : 'fixedCollection' ,
typeOptions : {
multipleValues : true ,
} ,
2022-04-22 09:29:51 -07:00
default : { } ,
2020-04-01 15:10:41 -07:00
placeholder : 'Add Address' ,
displayOptions : {
show : {
2022-08-17 08:50:24 -07:00
resource : [ 'contact' ] ,
operation : [ 'upsert' ] ,
2020-04-01 15:10:41 -07:00
} ,
} ,
options : [
{
name : 'addressesValues' ,
displayName : 'Address' ,
values : [
{
displayName : 'Field' ,
name : 'field' ,
type : 'options' ,
options : [
{
name : 'Billing' ,
value : 'BILLING' ,
} ,
{
name : 'Shipping' ,
value : 'SHIPPING' ,
} ,
{
name : 'Other' ,
value : 'OTHER' ,
} ,
] ,
default : '' ,
} ,
{
2022-06-03 10:23:49 -07:00
displayName : 'Country Code Name or ID' ,
2020-04-01 15:10:41 -07:00
name : 'countryCode' ,
type : 'options' ,
2022-08-17 08:50:24 -07:00
description :
'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>' ,
2020-04-01 15:10:41 -07:00
typeOptions : {
loadOptionsMethod : 'getCountries' ,
} ,
default : '' ,
} ,
{
displayName : 'Line 1' ,
name : 'line1' ,
type : 'string' ,
default : '' ,
} ,
{
displayName : 'Line 2' ,
name : 'line2' ,
type : 'string' ,
default : '' ,
} ,
{
displayName : 'Locality' ,
name : 'locality' ,
type : 'string' ,
default : '' ,
} ,
{
displayName : 'Postal Code' ,
name : 'postalCode' ,
type : 'string' ,
default : '' ,
} ,
{
displayName : 'Region' ,
name : 'region' ,
type : 'string' ,
default : '' ,
} ,
{
displayName : 'Zip Code' ,
name : 'zipCode' ,
type : 'string' ,
default : '' ,
} ,
{
displayName : 'Zip Four' ,
name : 'zipFour' ,
type : 'string' ,
default : '' ,
} ,
] ,
} ,
] ,
} ,
{
displayName : 'Emails' ,
name : 'emailsUi' ,
type : 'fixedCollection' ,
default : { } ,
typeOptions : {
multipleValues : true ,
} ,
placeholder : 'Add Email' ,
displayOptions : {
show : {
2022-08-17 08:50:24 -07:00
resource : [ 'contact' ] ,
operation : [ 'upsert' ] ,
2020-04-01 15:10:41 -07:00
} ,
} ,
options : [
{
name : 'emailsValues' ,
displayName : 'Email' ,
values : [
{
displayName : 'Field' ,
name : 'field' ,
type : 'options' ,
options : [
{
name : 'Email 1' ,
value : 'EMAIL1' ,
} ,
{
name : 'Email 2' ,
value : 'EMAIL2' ,
} ,
{
name : 'Email 3' ,
value : 'EMAIL3' ,
} ,
] ,
default : '' ,
} ,
{
displayName : 'Email' ,
name : 'email' ,
type : 'string' ,
2022-06-20 07:54:01 -07:00
placeholder : 'name@email.com' ,
2020-04-01 15:10:41 -07:00
default : '' ,
} ,
] ,
2020-10-22 06:46:03 -07:00
} ,
2020-04-01 15:10:41 -07:00
] ,
} ,
{
displayName : 'Faxes' ,
name : 'faxesUi' ,
type : 'fixedCollection' ,
default : { } ,
typeOptions : {
multipleValues : true ,
} ,
placeholder : 'Add Fax' ,
displayOptions : {
show : {
2022-08-17 08:50:24 -07:00
resource : [ 'contact' ] ,
operation : [ 'upsert' ] ,
2020-04-01 15:10:41 -07:00
} ,
} ,
options : [
{
name : 'faxesValues' ,
displayName : 'Fax' ,
values : [
{
displayName : 'Field' ,
name : 'field' ,
type : 'options' ,
options : [
{
name : 'Fax 1' ,
value : 'FAX1' ,
} ,
{
name : 'Fax 2' ,
value : 'FAX2' ,
} ,
] ,
default : '' ,
} ,
{
displayName : 'Number' ,
name : 'number' ,
type : 'string' ,
default : '' ,
} ,
] ,
2020-10-22 06:46:03 -07:00
} ,
2020-04-01 15:10:41 -07:00
] ,
} ,
{
displayName : 'Phones' ,
name : 'phonesUi' ,
type : 'fixedCollection' ,
default : { } ,
typeOptions : {
multipleValues : true ,
} ,
placeholder : 'Add Phone' ,
displayOptions : {
show : {
2022-08-17 08:50:24 -07:00
resource : [ 'contact' ] ,
operation : [ 'upsert' ] ,
2020-04-01 15:10:41 -07:00
} ,
} ,
options : [
{
name : 'phonesValues' ,
displayName : 'Phones' ,
values : [
{
displayName : 'Field' ,
name : 'field' ,
type : 'options' ,
options : [
{
name : 'Phone 1' ,
value : 'PHONE1' ,
} ,
{
name : 'Phone 2' ,
value : 'PHONE2' ,
} ,
{
name : 'Phone 3' ,
value : 'PHONE3' ,
} ,
{
name : 'Phone 4' ,
value : 'PHONE4' ,
} ,
{
name : 'Phone 5' ,
value : 'PHONE5' ,
} ,
] ,
default : '' ,
} ,
{
displayName : 'Number' ,
name : 'number' ,
type : 'string' ,
default : '' ,
} ,
] ,
} ,
] ,
} ,
{
displayName : 'Social Accounts' ,
name : 'socialAccountsUi' ,
type : 'fixedCollection' ,
typeOptions : {
multipleValues : true ,
} ,
2022-04-22 09:29:51 -07:00
default : { } ,
2020-04-01 15:10:41 -07:00
placeholder : 'Add Social Account' ,
displayOptions : {
show : {
2022-08-17 08:50:24 -07:00
resource : [ 'contact' ] ,
operation : [ 'upsert' ] ,
2020-04-01 15:10:41 -07:00
} ,
} ,
options : [
{
name : 'socialAccountsValues' ,
displayName : 'Social Account' ,
values : [
{
displayName : 'Type' ,
name : 'type' ,
type : 'options' ,
options : [
{
name : 'Facebook' ,
value : 'Facebook' ,
} ,
{
name : 'Twitter' ,
value : 'Twitter' ,
} ,
{
name : 'LinkedIn' ,
value : 'LinkedIn' ,
} ,
] ,
default : '' ,
} ,
{
displayName : 'Name' ,
name : 'name' ,
type : 'string' ,
default : '' ,
} ,
] ,
} ,
] ,
} ,
2022-08-17 08:50:24 -07:00
/* -------------------------------------------------------------------------- */
/* contact:delete */
/* -------------------------------------------------------------------------- */
2020-04-01 15:10:41 -07:00
{
displayName : 'Contact ID' ,
name : 'contactId' ,
type : 'string' ,
required : true ,
displayOptions : {
show : {
2022-08-17 08:50:24 -07:00
operation : [ 'delete' ] ,
resource : [ 'contact' ] ,
2020-04-01 15:10:41 -07:00
} ,
} ,
default : '' ,
} ,
2022-08-17 08:50:24 -07:00
/* -------------------------------------------------------------------------- */
/* contact:get */
/* -------------------------------------------------------------------------- */
2020-04-01 15:10:41 -07:00
{
displayName : 'Contact ID' ,
name : 'contactId' ,
type : 'string' ,
required : true ,
displayOptions : {
show : {
2022-08-17 08:50:24 -07:00
operation : [ 'get' ] ,
resource : [ 'contact' ] ,
2020-04-01 15:10:41 -07:00
} ,
} ,
default : '' ,
} ,
{
displayName : 'Options' ,
name : 'options' ,
type : 'collection' ,
2024-07-29 05:27:23 -07:00
placeholder : 'Add option' ,
2020-04-01 15:10:41 -07:00
default : { } ,
displayOptions : {
show : {
2022-08-17 08:50:24 -07:00
operation : [ 'get' ] ,
resource : [ 'contact' ] ,
2020-04-01 15:10:41 -07:00
} ,
} ,
options : [
{
displayName : 'Fields' ,
name : 'fields' ,
type : 'string' ,
default : '' ,
2022-08-17 08:50:24 -07:00
description :
"Comma-delimited list of Contact properties to include in the response. (Some fields such as lead_source_id, custom_fields, and job_title aren't included, by default.)." ,
2020-04-01 15:10:41 -07:00
} ,
] ,
} ,
2022-08-17 08:50:24 -07:00
/* -------------------------------------------------------------------------- */
/* contact:getAll */
/* -------------------------------------------------------------------------- */
2020-04-01 15:10:41 -07:00
{
displayName : 'Return All' ,
name : 'returnAll' ,
type : 'boolean' ,
displayOptions : {
show : {
2022-08-17 08:50:24 -07:00
operation : [ 'getAll' ] ,
resource : [ 'contact' ] ,
2020-04-01 15:10:41 -07:00
} ,
} ,
default : false ,
2022-05-06 14:01:25 -07:00
description : 'Whether to return all results or only up to a given limit' ,
2020-04-01 15:10:41 -07:00
} ,
{
displayName : 'Limit' ,
name : 'limit' ,
type : 'number' ,
displayOptions : {
show : {
2022-08-17 08:50:24 -07:00
operation : [ 'getAll' ] ,
resource : [ 'contact' ] ,
returnAll : [ false ] ,
2020-04-01 15:10:41 -07:00
} ,
} ,
typeOptions : {
minValue : 1 ,
maxValue : 200 ,
} ,
default : 100 ,
2022-05-06 14:01:25 -07:00
description : 'Max number of results to return' ,
2020-04-01 15:10:41 -07:00
} ,
{
displayName : 'Options' ,
name : 'options' ,
type : 'collection' ,
2024-07-29 05:27:23 -07:00
placeholder : 'Add option' ,
2020-04-01 15:10:41 -07:00
default : { } ,
displayOptions : {
show : {
2022-08-17 08:50:24 -07:00
operation : [ 'getAll' ] ,
resource : [ 'contact' ] ,
2020-04-01 15:10:41 -07:00
} ,
} ,
options : [
{
displayName : 'Email' ,
name : 'email' ,
type : 'string' ,
2022-06-20 07:54:01 -07:00
placeholder : 'name@email.com' ,
2020-04-01 15:10:41 -07:00
default : '' ,
} ,
{
displayName : 'Given Name' ,
name : 'givenName' ,
type : 'string' ,
default : '' ,
} ,
{
displayName : 'Family Name' ,
name : 'familyName' ,
type : 'string' ,
default : '' ,
} ,
{
displayName : 'Order' ,
name : 'order' ,
type : 'options' ,
options : [
{
name : 'Date' ,
value : 'date' ,
} ,
{
name : 'Email' ,
value : 'email' ,
} ,
{
name : 'ID' ,
value : 'id' ,
} ,
{
name : 'Name' ,
value : 'name' ,
} ,
] ,
default : '' ,
description : 'Attribute to order items by' ,
} ,
{
displayName : 'Order Direction' ,
name : 'orderDirection' ,
type : 'options' ,
options : [
{
name : 'ASC' ,
value : 'ascending' ,
} ,
{
name : 'DES' ,
value : 'descending' ,
} ,
] ,
default : '' ,
} ,
{
displayName : 'Since' ,
name : 'since' ,
type : 'dateTime' ,
default : '' ,
description : 'Date to start searching from on LastUpdated' ,
} ,
{
displayName : 'Until' ,
name : 'until' ,
type : 'dateTime' ,
default : '' ,
description : 'Date to search to on LastUpdated' ,
} ,
] ,
} ,
2021-12-03 00:44:16 -08:00
] ;