2020-07-12 09:12:32 -07:00
import {
INodeProperties ,
} from 'n8n-workflow' ;
export const contactOperations = [
{
displayName : 'Operation' ,
name : 'operation' ,
type : 'options' ,
displayOptions : {
show : {
resource : [
'contact' ,
] ,
} ,
} ,
options : [
{
name : 'Create' ,
value : 'create' ,
description : 'create a contact' ,
} ,
{
name : 'Get' ,
value : 'get' ,
description : 'Get a contact' ,
} ,
{
name : 'Get All' ,
value : 'getAll' ,
description : 'Get all contacts' ,
} ,
{
name : 'Update' ,
value : 'update' ,
description : 'Update a contact' ,
} ,
] ,
default : 'create' ,
description : 'The operation to perform.' ,
} ,
] as INodeProperties [ ] ;
export const contactFields = [
/* -------------------------------------------------------------------------- */
/* contact:create */
/* -------------------------------------------------------------------------- */
{
displayName : 'Organization ID' ,
name : 'organizationId' ,
type : 'options' ,
typeOptions : {
loadOptionsMethod : 'getTenants' ,
} ,
default : '' ,
displayOptions : {
show : {
resource : [
'contact' ,
] ,
operation : [
'create' ,
] ,
} ,
} ,
required : true ,
} ,
{
displayName : 'Name' ,
name : 'name' ,
type : 'string' ,
default : '' ,
displayOptions : {
show : {
resource : [
'contact' ,
] ,
operation : [
'create' ,
] ,
} ,
} ,
description : 'Full name of contact/organisation' ,
required : true ,
} ,
{
displayName : 'Additional Fields' ,
name : 'additionalFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
default : { } ,
displayOptions : {
show : {
resource : [
'contact' ,
] ,
operation : [
'create' ,
] ,
} ,
} ,
options : [
{
displayName : 'Account Number' ,
name : 'accountNumber' ,
type : 'string' ,
default : '' ,
description : 'A user defined account number' ,
} ,
// {
// displayName: 'Addresses',
// name: 'addressesUi',
// type: 'fixedCollection',
// typeOptions: {
// multipleValues: true,
// },
// default: '',
// placeholder: 'Add Address',
// options: [
// {
// name: 'addressesValues',
// displayName: 'Address',
// values: [
// {
// displayName: 'Type',
// name: 'type',
// type: 'options',
// options: [
// {
// name: 'PO Box',
// value: 'POBOX',
// },
// {
// name: 'Street',
// value: 'STREET',
// },
// ],
// default: '',
// },
// {
// displayName: 'Line 1',
// name: 'line1',
// type: 'string',
// default: '',
// },
// {
// displayName: 'Line 2',
// name: 'line2',
// type: 'string',
// default: '',
// },
// {
// displayName: 'City',
// name: 'city',
// type: 'string',
// default: '',
// },
// {
// displayName: 'Region',
// name: 'region',
// type: 'string',
// default: '',
// },
// {
// displayName: 'Postal Code',
// name: 'postalCode',
// type: 'string',
// default: '',
// },
// {
// displayName: 'Country',
// name: 'country',
// type: 'string',
// default: '',
// },
// {
// displayName: 'Attention To',
// name: 'attentionTo',
// type: 'string',
// default: '',
// },
// ],
// },
// ],
// },
{
displayName : 'Bank Account Details' ,
name : 'bankAccountDetails' ,
type : 'string' ,
default : '' ,
description : 'Bank account number of contact' ,
} ,
{
displayName : 'Contact Number' ,
name : 'contactNumber' ,
type : 'string' ,
default : '' ,
description : 'This field is read only on the Xero contact screen, used to identify contacts in external systems' ,
} ,
{
displayName : 'Contact Status' ,
name : 'contactStatus' ,
type : 'options' ,
options : [
{
name : 'Active' ,
value : 'ACTIVE' ,
description : 'The Contact is active and can be used in transactions' ,
} ,
{
name : 'Archived' ,
value : 'ARCHIVED' ,
description : 'The Contact is archived and can no longer be used in transactions' ,
} ,
{
name : 'GDPR Request' ,
value : 'GDPRREQUEST' ,
description : 'The Contact is the subject of a GDPR erasure request' ,
} ,
] ,
default : '' ,
description : 'Current status of a contact - see contact status types' ,
} ,
{
displayName : 'Default Currency' ,
name : 'defaultCurrency' ,
type : 'string' ,
default : '' ,
description : 'Default currency for raising invoices against contact' ,
} ,
{
displayName : 'Email' ,
name : 'emailAddress' ,
type : 'string' ,
default : '' ,
description : 'Email address of contact person (umlauts not supported) (max length = 255)' ,
} ,
{
displayName : 'First Name' ,
name : 'firstName' ,
type : 'string' ,
default : '' ,
description : 'First name of contact person (max length = 255)' ,
} ,
{
displayName : 'Last Name' ,
name : 'lastName' ,
type : 'string' ,
default : '' ,
description : 'Last name of contact person (max length = 255)' ,
} ,
// {
// displayName: 'Phones',
// name: 'phonesUi',
// type: 'fixedCollection',
// typeOptions: {
// multipleValues: true,
// },
// default: '',
// placeholder: 'Add Phone',
// options: [
// {
// name: 'phonesValues',
// displayName: 'Phones',
// values: [
// {
// displayName: 'Type',
// name: 'type',
// type: 'options',
// options: [
// {
// name: 'Default',
// value: 'DEFAULT',
// },
// {
// name: 'DDI',
// value: 'DDI',
// },
// {
// name: 'Mobile',
// value: 'MOBILE',
// },
// {
// name: 'Fax',
// value: 'FAX',
// },
// ],
// default: '',
// },
// {
// displayName: 'Number',
// name: 'phoneNumber',
// type: 'string',
// default: '',
// },
// {
// displayName: 'Area Code',
// name: 'phoneAreaCode',
// type: 'string',
// default: '',
// },
// {
// displayName: 'Country Code',
// name: 'phoneCountryCode',
// type: 'string',
// default: '',
// },
// ],
// },
// ],
// },
{
displayName : 'Purchase Default Account Code' ,
name : 'purchasesDefaultAccountCode' ,
type : 'options' ,
typeOptions : {
loadOptionsMethod : 'getAccountCodes' ,
} ,
default : '' ,
description : 'The default purchases account code for contacts' ,
} ,
{
displayName : 'Sales Default Account Code' ,
name : 'salesDefaultAccountCode' ,
type : 'options' ,
typeOptions : {
loadOptionsMethod : 'getAccountCodes' ,
} ,
default : '' ,
description : 'The default sales account code for contacts' ,
} ,
{
displayName : 'Skype' ,
name : 'skypeUserName' ,
type : 'string' ,
default : '' ,
description : 'Skype user name of contact' ,
} ,
{
displayName : 'Tax Number' ,
name : 'taxNumber' ,
type : 'string' ,
default : '' ,
description : 'Tax number of contact' ,
} ,
{
displayName : 'Xero Network Key' ,
name : 'xeroNetworkKey' ,
type : 'string' ,
default : '' ,
description : 'Store XeroNetworkKey for contacts' ,
} ,
] ,
} ,
/* -------------------------------------------------------------------------- */
/* contact:get */
/* -------------------------------------------------------------------------- */
{
displayName : 'Organization ID' ,
name : 'organizationId' ,
type : 'options' ,
typeOptions : {
loadOptionsMethod : 'getTenants' ,
} ,
default : '' ,
displayOptions : {
show : {
resource : [
'contact' ,
] ,
operation : [
'get' ,
] ,
} ,
} ,
required : true ,
} ,
{
displayName : 'Contact ID' ,
name : 'contactId' ,
type : 'string' ,
default : '' ,
displayOptions : {
show : {
resource : [
'contact' ,
] ,
operation : [
'get' ,
] ,
} ,
} ,
required : true ,
} ,
/* -------------------------------------------------------------------------- */
/* contact:getAll */
/* -------------------------------------------------------------------------- */
{
displayName : 'Organization ID' ,
name : 'organizationId' ,
type : 'options' ,
typeOptions : {
loadOptionsMethod : 'getTenants' ,
} ,
default : '' ,
displayOptions : {
show : {
resource : [
'contact' ,
] ,
operation : [
'getAll' ,
] ,
} ,
} ,
required : true ,
} ,
{
displayName : 'Return All' ,
name : 'returnAll' ,
type : 'boolean' ,
displayOptions : {
show : {
resource : [
'contact' ,
] ,
operation : [
'getAll' ,
] ,
} ,
} ,
default : false ,
description : 'If all results should be returned or only up to a given limit.' ,
} ,
{
displayName : 'Limit' ,
name : 'limit' ,
type : 'number' ,
displayOptions : {
show : {
resource : [
'contact' ,
] ,
operation : [
'getAll' ,
] ,
returnAll : [
false ,
] ,
} ,
} ,
typeOptions : {
minValue : 1 ,
maxValue : 100 ,
} ,
default : 100 ,
description : 'How many results to return.' ,
} ,
{
displayName : 'Options' ,
name : 'options' ,
type : 'collection' ,
placeholder : 'Add Option' ,
default : { } ,
displayOptions : {
show : {
resource : [
'contact' ,
] ,
operation : [
'getAll' ,
] ,
} ,
} ,
options : [
{
displayName : 'Include Archived' ,
name : 'includeArchived' ,
type : 'boolean' ,
default : false ,
description : ` Contacts with a status of ARCHIVED will be included in the response ` ,
} ,
{
displayName : 'Order By' ,
name : 'orderBy' ,
type : 'string' ,
placeholder : 'contactID' ,
default : '' ,
description : 'Order by any element returned' ,
} ,
{
displayName : 'Sort Order' ,
name : 'sortOrder' ,
type : 'options' ,
options : [
{
name : 'Asc' ,
value : 'ASC' ,
} ,
{
name : 'Desc' ,
value : 'DESC' ,
} ,
] ,
default : '' ,
description : 'Sort order' ,
} ,
{
displayName : 'Where' ,
name : 'where' ,
type : 'string' ,
typeOptions : {
alwaysOpenEditWindow : true ,
} ,
placeholder : 'EmailAddress!=null&&EmailAddress.StartsWith("boom")' ,
default : '' ,
2021-08-26 10:42:38 -07:00
description : ` The where parameter allows you to filter on endpoints and elements that don't have explicit parameters. <a href="https://developer.xero.com/documentation/api/requests-and-responses#get-modified">Examples Here</a> ` ,
2020-07-12 09:12:32 -07:00
} ,
] ,
} ,
/* -------------------------------------------------------------------------- */
/* contact:update */
/* -------------------------------------------------------------------------- */
{
displayName : 'Organization ID' ,
name : 'organizationId' ,
type : 'options' ,
typeOptions : {
loadOptionsMethod : 'getTenants' ,
} ,
default : '' ,
displayOptions : {
show : {
resource : [
'contact' ,
] ,
operation : [
'update' ,
] ,
} ,
} ,
required : true ,
} ,
{
displayName : 'Contact ID' ,
name : 'contactId' ,
type : 'string' ,
default : '' ,
displayOptions : {
show : {
resource : [
'contact' ,
] ,
operation : [
'update' ,
] ,
} ,
} ,
required : true ,
} ,
{
displayName : 'Update Fields' ,
name : 'updateFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
default : { } ,
displayOptions : {
show : {
resource : [
'contact' ,
] ,
operation : [
'update' ,
] ,
} ,
} ,
options : [
{
displayName : 'Account Number' ,
name : 'accountNumber' ,
type : 'string' ,
default : '' ,
description : 'A user defined account number' ,
} ,
// {
// displayName: 'Addresses',
// name: 'addressesUi',
// type: 'fixedCollection',
// typeOptions: {
// multipleValues: true,
// },
// default: '',
// placeholder: 'Add Address',
// options: [
// {
// name: 'addressesValues',
// displayName: 'Address',
// values: [
// {
// displayName: 'Type',
// name: 'type',
// type: 'options',
// options: [
// {
// name: 'PO Box',
// value: 'POBOX',
// },
// {
// name: 'Street',
// value: 'STREET',
// },
// ],
// default: '',
// },
// {
// displayName: 'Line 1',
// name: 'line1',
// type: 'string',
// default: '',
// },
// {
// displayName: 'Line 2',
// name: 'line2',
// type: 'string',
// default: '',
// },
// {
// displayName: 'City',
// name: 'city',
// type: 'string',
// default: '',
// },
// {
// displayName: 'Region',
// name: 'region',
// type: 'string',
// default: '',
// },
// {
// displayName: 'Postal Code',
// name: 'postalCode',
// type: 'string',
// default: '',
// },
// {
// displayName: 'Country',
// name: 'country',
// type: 'string',
// default: '',
// },
// {
// displayName: 'Attention To',
// name: 'attentionTo',
// type: 'string',
// default: '',
// },
// ],
// },
// ],
// },
{
displayName : 'Bank Account Details' ,
name : 'bankAccountDetails' ,
type : 'string' ,
default : '' ,
description : 'Bank account number of contact' ,
} ,
{
displayName : 'Contact Number' ,
name : 'contactNumber' ,
type : 'string' ,
default : '' ,
description : 'This field is read only on the Xero contact screen, used to identify contacts in external systems' ,
} ,
{
displayName : 'Contact Status' ,
name : 'contactStatus' ,
type : 'options' ,
options : [
{
name : 'Active' ,
value : 'ACTIVE' ,
description : 'The Contact is active and can be used in transactions' ,
} ,
{
name : 'Archived' ,
value : 'ARCHIVED' ,
description : 'The Contact is archived and can no longer be used in transactions' ,
} ,
{
name : 'GDPR Request' ,
value : 'GDPRREQUEST' ,
description : 'The Contact is the subject of a GDPR erasure request' ,
} ,
] ,
default : '' ,
description : 'Current status of a contact - see contact status types' ,
} ,
{
displayName : 'Default Currency' ,
name : 'defaultCurrency' ,
type : 'string' ,
default : '' ,
description : 'Default currency for raising invoices against contact' ,
} ,
{
displayName : 'Email' ,
name : 'emailAddress' ,
type : 'string' ,
default : '' ,
description : 'Email address of contact person (umlauts not supported) (max length = 255)' ,
} ,
{
displayName : 'First Name' ,
name : 'firstName' ,
type : 'string' ,
default : '' ,
description : 'First name of contact person (max length = 255)' ,
} ,
{
displayName : 'Last Name' ,
name : 'lastName' ,
type : 'string' ,
default : '' ,
description : 'Last name of contact person (max length = 255)' ,
} ,
{
displayName : 'Name' ,
name : 'name' ,
type : 'string' ,
default : '' ,
description : 'Full name of contact/organisation' ,
} ,
// {
// displayName: 'Phones',
// name: 'phonesUi',
// type: 'fixedCollection',
// typeOptions: {
// multipleValues: true,
// },
// default: '',
// placeholder: 'Add Phone',
// options: [
// {
// name: 'phonesValues',
// displayName: 'Phones',
// values: [
// {
// displayName: 'Type',
// name: 'type',
// type: 'options',
// options: [
// {
// name: 'Default',
// value: 'DEFAULT',
// },
// {
// name: 'DDI',
// value: 'DDI',
// },
// {
// name: 'Mobile',
// value: 'MOBILE',
// },
// {
// name: 'Fax',
// value: 'FAX',
// },
// ],
// default: '',
// },
// {
// displayName: 'Number',
// name: 'phoneNumber',
// type: 'string',
// default: '',
// },
// {
// displayName: 'Area Code',
// name: 'phoneAreaCode',
// type: 'string',
// default: '',
// },
// {
// displayName: 'Country Code',
// name: 'phoneCountryCode',
// type: 'string',
// default: '',
// },
// ],
// },
// ],
// },
{
displayName : 'Purchase Default Account Code' ,
name : 'purchasesDefaultAccountCode' ,
type : 'options' ,
typeOptions : {
loadOptionsMethod : 'getAccountCodes' ,
} ,
default : '' ,
description : 'The default purchases account code for contacts' ,
} ,
{
displayName : 'Sales Default Account Code' ,
name : 'salesDefaultAccountCode' ,
type : 'options' ,
typeOptions : {
loadOptionsMethod : 'getAccountCodes' ,
} ,
default : '' ,
description : 'The default sales account code for contacts' ,
} ,
{
displayName : 'Skype' ,
name : 'skypeUserName' ,
type : 'string' ,
default : '' ,
description : 'Skype user name of contact' ,
} ,
{
displayName : 'Tax Number' ,
name : 'taxNumber' ,
type : 'string' ,
default : '' ,
description : 'Tax number of contact' ,
} ,
{
displayName : 'Xero Network Key' ,
name : 'xeroNetworkKey' ,
type : 'string' ,
default : '' ,
description : 'Store XeroNetworkKey for contacts' ,
} ,
] ,
} ,
] as INodeProperties [ ] ;