Hello, I am working on my first custom node (declarative style) and noticed that expressions in input parameters don’t evaluate correctly (salutation and lastName). Object created in my application will have the literal value ={{$json[“salutation”]}} for salutation and ={{$json[“lastName”]}} for lastName and not the actual result of the expressions, which would be: “Mr.”, “Johnson”.
Workflow code:
{
"nodes": [
{
"parameters": {
"operation": "createPersonAsCustomer",
"personDetailsUI": {
"personDetails": {
"salutation": "={{$json[\"salutation\"]}}",
"firstName": "Fred",
"lastName": "={{$json[\"lastName\"]}}"
}
},
"emailAddressesUI": {
"emailAddresses": {
"business": "[email protected]"
}
},
"phoneNumbersUI": {
"phoneNumbers": {
"mobile": "0923212132",
"private": "0923212132"
}
}
},
}
]
Custom node request:
{
name: 'Create Person - Customer',
value: 'createPersonAsCustomer',
action: 'Create person with customer role',
description: 'Create person with customer role',
routing: {
request: {
method: 'POST',
url: '/v1/contacts',
body: {
version: 0,
roles: {
customer: {},
},
person: '={{$parameter.personDetailsUI.personDetails}}',
addresses: {
billing: '={{$parameter.billingUI.billing}}',
},
emailAddresses: {
business: ['={{$parameter.emailAddressesUI.emailAddresses.business}}'],
},
phoneNumbers: {
mobile: ['={{$parameter.phoneNumbersUI.phoneNumbers.mobile}}'],
private: ['={{$parameter.phoneNumbersUI.phoneNumbers.private}}'],
},
},
},
},
}
Custom node fields:
{
displayName: 'Person Details',
name: 'personDetailsUI',
placeholder: 'Add Person Details',
type: 'fixedCollection',
default: {},
typeOptions: {
multipleValues: false,
},
description: 'Add Person Details',
options: [
{
name: 'personDetails',
displayName: 'Person Details',
values: [
{
displayName: 'Salutation',
name: 'salutation',
type: 'string',
default: '',
description: 'Type in salutation for person',
hint: 'Herr or Frau',
},
{
displayName: 'First Name',
name: 'firstName',
type: 'string',
default: '',
description: 'Type in first name for person',
},
{
displayName: 'Last Name',
name: 'lastName',
required: true,
type: 'string',
default: '',
description: 'Type in last name for person',
},
],
},
],
displayOptions: {
show: {
resource: ['contactsEndpoint'],
operation: [
'createPersonAsCustomer',
'createPersonAsCustomerAndVendor',
'createPersonAsVendor',
],
},
},
},
Thank you!