n8n-nodes-sevdesk-v2
Version:
n8n community node for SevDesk API v2 integration with 24 production-ready workflow templates. Direct API access without external dependencies - simplified, secure, and optimized for German accounting automation (n8n 1.101.1 compatible).
615 lines (614 loc) • 20.8 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.contactFields = exports.contactOperations = void 0;
exports.contactOperations = [
{
displayName: "Operation",
name: "operation",
type: "options",
noDataExpression: true,
displayOptions: {
show: {
resource: ["contact"],
},
},
options: [
{
name: "Check Customer Number Availability",
value: "checkCustomerNumberAvailability",
description: "Checks if a given customer number is available or already used",
action: "Check customer number availability",
routing: {
request: {
method: "GET",
url: "/Contact/Mapper/checkCustomerNumberAvailability",
qs: {
customerNumber: "={{$parameter.customerNumber}}",
},
},
output: {
postReceive: [
{ type: "rootProperty", properties: { property: "objects" } },
],
},
},
},
{
name: "Create",
value: "create",
action: "Create a contact",
description: "Create a new contact",
routing: {
request: {
method: "POST",
url: "/Contact",
body: "={{$parameter.additionalFields}}",
},
output: {
postReceive: [
{ type: "rootProperty", properties: { property: "objects" } },
],
},
},
},
{
name: "Delete",
value: "delete",
description: "Delete the contact",
action: "Delete a contact",
routing: {
request: {
method: "DELETE",
url: "/Contact/{{$parameter.contactId}}",
},
},
},
{
name: "Find By Custom Field Value",
value: "findByCustomFieldValue",
description: "Finds contacts by custom field value",
action: "Find contacts by custom field value",
routing: {
request: {
method: "GET",
url: "/Contact/Factory/findContactByCustomFieldValue",
qs: {
"customFieldSetting[id]": "={{$parameter.customFieldSetting.id}}",
"customFieldSetting[objectName]": "={{$parameter.customFieldSetting.objectName}}",
value: "={{$parameter.value}}",
},
},
output: {
postReceive: [
{ type: "rootProperty", properties: { property: "objects" } },
],
},
},
},
{
name: "Get",
value: "get",
description: "Returns a single contact",
action: "Get a contact",
routing: {
request: {
method: "GET",
url: "/Contact/{{$parameter.contactId}}",
},
output: {
postReceive: [
{ type: "rootProperty", properties: { property: "objects" } },
],
},
},
},
{
name: "Get Many",
value: "getMany",
description: "Gets a List of Contacts based on filters",
action: "Get many contacts",
routing: {
request: {
method: "GET",
url: "/Contact",
qs: {
depth: "={{$parameter.filters.depth}}",
"category[id]": "={{$parameter.filters.category.id}}",
"category[objectName]": "={{$parameter.filters.category.objectName}}",
city: "={{$parameter.filters.city}}",
"tags[id]": "={{$parameter.filters.tags.id}}",
"tags[objectName]": "={{$parameter.filters.tags.objectName}}",
customerNumber: "={{$parameter.filters.customerNumber}}",
"parent[id]": "={{$parameter.filters.parent.id}}",
"parent[objectName]": "={{$parameter.filters.parent.objectName}}",
name: "={{$parameter.filters.name}}",
zip: "={{$parameter.filters.zip}}",
"country[id]": "={{$parameter.filters.country.id}}",
"country[objectName]": "={{$parameter.filters.country.objectName}}",
createBefore: "={{$parameter.filters.createBefore}}",
createAfter: "={{$parameter.filters.createAfter}}",
updateBefore: "={{$parameter.filters.updateBefore}}",
updateAfter: "={{$parameter.filters.updateAfter}}",
"orderBy[customerNumber]": '={{$parameter.filters["orderBy[customerNumber]"]}}',
},
},
output: {
postReceive: [
{ type: "rootProperty", properties: { property: "objects" } },
],
},
},
},
{
name: "Get Next Customer Number",
value: "getNextCustomerNumber",
description: "Retrieves the next available customer number. Avoids duplicates.",
action: "Get next customer number",
routing: {
request: {
method: "GET",
url: "/Contact/Factory/getNextCustomerNumber",
},
output: {
postReceive: [
{ type: "rootProperty", properties: { property: "objects" } },
],
},
},
},
{
name: "Get Number of Items",
value: "getNumberOfItems",
description: "Get number of all invoices, orders, etc. of a specified contact.",
action: "Get number of items",
routing: {
request: {
method: "GET",
url: "/Contact/{{$parameter.contactId}}/getnumberOfAllItems",
},
output: {
postReceive: [
{ type: "rootProperty", properties: { property: "objects" } },
],
},
},
},
{
name: "Is Deletable",
value: "isDeletable",
description: "Check if a contact is deletable",
action: "Check if a contact is deletable",
routing: {
request: {
method: "GET",
url: "/Contact/{{$parameter.contactId}}/getIsDeletable",
},
output: {
postReceive: [
{ type: "rootProperty", properties: { property: "objects" } },
],
},
},
},
{
name: "Update",
value: "update",
description: "Update the contact",
action: "Update a contact",
routing: {
request: {
method: "PUT",
url: "/Contact/{{$parameter.contactId}}",
body: "={{$parameter.updateFields}}",
},
output: {
postReceive: [
{ type: "rootProperty", properties: { property: "objects" } },
],
},
},
},
],
default: "getMany",
},
];
const contactCreateAndUpdateFields = [
{
displayName: "Name",
name: "name",
type: "string",
default: "",
required: true,
description: "The organization name. Be aware that the type of contact will depend on this attribute. If it holds a value, the contact will be regarded as an organization.",
},
{
displayName: "Status",
name: "status",
type: "number",
default: 1000,
description: "Defines the status of the contact. 100 -> Lead, 500 -> Pending, 1000 -> Active.",
},
{
displayName: "Customer Number",
name: "customerNumber",
type: "string",
default: "",
required: true,
},
{
displayName: "Parent",
name: "parent",
type: "collection",
placeholder: "Add Parent Info",
default: {},
options: [
{ displayName: "ID", name: "id", type: "string", default: "" },
{
displayName: "Object Name",
name: "objectName",
type: "string",
default: "Contact",
},
],
description: "The parent contact to which this contact belongs. Must be an organization.",
},
{
displayName: "Surename",
name: "surename",
type: "string",
default: "",
description: "The first name of the contact",
},
{
displayName: "Familyname",
name: "familyname",
type: "string",
default: "",
description: "The last name of the contact",
},
{
displayName: "Title",
name: "titel",
type: "string",
default: "",
description: "A non-academic title for the contact. Not to be used for organizations.",
},
{
displayName: "Category",
name: "category",
type: "collection",
placeholder: "Add Category Info",
default: {},
required: true,
options: [
{ displayName: "ID", name: "id", type: "string", default: "" },
{
displayName: "Object Name",
name: "objectName",
type: "string",
default: "Category",
},
],
description: "Category of the contact",
},
{
displayName: "Description",
name: "description",
type: "string",
default: "",
},
{
displayName: "Academic Title",
name: "academicTitle",
type: "string",
default: "",
description: "A academic title for the contact. Not to be used for organizations.",
},
{
displayName: "Gender",
name: "gender",
type: "string",
default: "",
description: "Gender of the contact. Not to be used for organizations.",
},
{ displayName: "Name 2", name: "name2", type: "string", default: "" },
{ displayName: "Birthday", name: "birthday", type: "string", default: "" },
{ displayName: "Vat Number", name: "vatNumber", type: "string", default: "" },
{
displayName: "Bank Account",
name: "bankAccount",
type: "string",
default: "",
},
{
displayName: "Bank Number",
name: "bankNumber",
type: "string",
default: "",
},
{
displayName: "Default Cashback Time",
name: "defaultCashbackTime",
type: "number",
default: 0,
},
{
displayName: "Default Cashback Percent",
name: "defaultCashbackPercent",
type: "number",
default: 0,
},
{
displayName: "Default Discount Amount",
name: "defaultDiscountAmount",
type: "number",
default: 0,
},
{
displayName: "Default Discount Percentage",
name: "defaultDiscountPercentage",
type: "boolean",
default: false,
},
{
displayName: "Default Time To Pay",
name: "defaultTimeToPay",
type: "number",
default: 0,
},
{ displayName: "Tax Number", name: "taxNumber", type: "string", default: "" },
{
displayName: "Exempt Vat",
name: "exemptVat",
type: "boolean",
default: false,
},
{
displayName: "Buyer Reference",
name: "buyerReference",
type: "string",
default: "",
},
{
displayName: "Government Agency",
name: "governmentAgency",
type: "boolean",
default: false,
},
];
exports.contactFields = [
{
displayName: "Contact ID",
name: "contactId",
type: "string",
default: "",
required: true,
displayOptions: {
show: {
resource: ["contact"],
operation: [
"get",
"update",
"delete",
"getNumberOfItems",
"isDeletable",
],
},
},
},
{
displayName: "Customer Number",
name: "customerNumber",
description: "The customer number to be checked",
type: "string",
required: true,
default: "",
displayOptions: {
show: {
resource: ["contact"],
operation: ["checkCustomerNumberAvailability"],
},
},
},
{
displayName: "Custom Field Setting",
name: "customFieldSetting",
type: "collection",
placeholder: "Add Custom Field Setting",
default: {},
required: true,
displayOptions: {
show: {
resource: ["contact"],
operation: ["findByCustomFieldValue"],
},
},
options: [
{
displayName: "Custom Field Setting ID",
name: "id",
type: "string",
default: "",
description: "ID of ContactCustomFieldSetting for which the value has to be checked",
},
{
displayName: "Object Name",
name: "objectName",
type: "string",
default: "ContactCustomFieldSetting",
description: "Object name. Only needed if you also defined the ID of a ContactCustomFieldSetting.",
},
],
},
{
displayName: "Value",
name: "value",
type: "string",
default: "",
required: true,
displayOptions: {
show: {
resource: ["contact"],
operation: ["findByCustomFieldValue"],
},
},
description: "The value to be checked",
},
{
displayName: "Filters",
name: "filters",
type: "collection",
placeholder: "Add Filter",
default: {},
displayOptions: {
show: {
resource: ["contact"],
operation: ["getMany"],
},
},
options: [
{
displayName: "Category",
name: "category",
type: "collection",
placeholder: "Add Category Info",
default: {},
options: [
{ displayName: "ID", name: "id", type: "string", default: "" },
{
displayName: "Object Name",
name: "objectName",
type: "string",
default: "Category",
},
],
},
{ displayName: "City", name: "city", type: "string", default: "" },
{
displayName: "Country",
name: "country",
type: "collection",
placeholder: "Add Country Info",
default: {},
options: [
{ displayName: "ID", name: "id", type: "string", default: "" },
{
displayName: "Object Name",
name: "objectName",
type: "string",
default: "StaticCountry",
},
],
},
{
displayName: "Create After",
name: "createAfter",
type: "dateTime",
default: "",
},
{
displayName: "Create Before",
name: "createBefore",
type: "dateTime",
default: "",
},
{
displayName: "Customer Number",
name: "customerNumber",
type: "string",
default: "",
},
{
displayName: "Depth",
name: "depth",
type: "number",
default: 1,
description: "Defines if both organizations and persons should be returned. 0 for only organizations, 1 for organizations and persons.",
},
{ displayName: "Name", name: "name", type: "string", default: "" },
{
displayName: "Order By Customer Number",
name: "orderBy[customerNumber]",
type: "options",
options: [
{ name: "ASC", value: "ASC" },
{ name: "DESC", value: "DESC" },
],
default: "ASC",
},
{
displayName: "Parent",
name: "parent",
type: "collection",
placeholder: "Add Parent Info",
default: {},
options: [
{ displayName: "ID", name: "id", type: "string", default: "" },
{
displayName: "Object Name",
name: "objectName",
type: "string",
default: "Contact",
},
],
},
{
displayName: "Tags",
name: "tags",
type: "collection",
placeholder: "Add Tag Info",
default: {},
options: [
{ displayName: "ID", name: "id", type: "string", default: "" },
{
displayName: "Object Name",
name: "objectName",
type: "string",
default: "Tag",
},
],
},
{
displayName: "Update After",
name: "updateAfter",
type: "dateTime",
default: "",
},
{
displayName: "Update Before",
name: "updateBefore",
type: "dateTime",
default: "",
},
{ displayName: "Zip", name: "zip", type: "string", default: "" },
],
},
{
displayName: "Additional Fields",
name: "additionalFields",
type: "collection",
placeholder: "Add Field",
default: {},
displayOptions: {
show: {
resource: ["contact"],
operation: ["create"],
},
},
options: [...contactCreateAndUpdateFields],
},
{
displayName: "Update Fields",
name: "updateFields",
type: "collection",
placeholder: "Add Field",
default: {},
displayOptions: {
show: {
resource: ["contact"],
operation: ["update"],
},
},
options: [...contactCreateAndUpdateFields],
},
];