@tuanltntu/n8n-nodes-bitrix24
Version:
Comprehensive n8n community node for Bitrix24 API integration with CRM, Tasks, Chat, Telephony, and more
665 lines • 25.1 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.userFieldConfigFields = exports.userFieldConfigOperations = void 0;
const ModuleManager_1 = require("../ModuleManager");
/**
* Operations for user field configuration
*/
exports.userFieldConfigOperations = [
ModuleManager_1.ModuleManager.createSimpleField({
displayName: "Operation",
name: "operation",
type: "options",
noDataExpression: true,
options: [
{
name: "Add",
value: "add",
description: "Create a new user field configuration (userfieldconfig.add)",
action: "Add a user field configuration",
},
{
name: "Add Multiple",
value: "addMultiple",
description: "Create multiple user field configurations at once",
action: "Add multiple user field configurations",
},
{
name: "Delete",
value: "delete",
description: "Delete a user field configuration (userfieldconfig.delete)",
action: "Delete a user field configuration",
},
{
name: "Get",
value: "get",
description: "Retrieve a user field configuration (userfieldconfig.get)",
action: "Get a user field configuration",
},
{
name: "Get List",
value: "getList",
description: "Get a list of user field configurations (userfieldconfig.list)",
action: "Get a list of user field configurations",
},
{
name: "Update",
value: "update",
description: "Update a user field configuration (userfieldconfig.update)",
action: "Update a user field configuration",
},
],
default: "add",
}, ModuleManager_1.BITRIX24_MODULES.USER_FIELD_CONFIG),
];
/**
* Fields for user field configuration operations
*/
exports.userFieldConfigFields = [
/* -------------------------------------------------------------------------- */
/* All Operations */
/* -------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------- */
/* Get Operation */
/* -------------------------------------------------------------------------- */
ModuleManager_1.ModuleManager.createSimpleField({
displayName: "ID",
name: "id",
type: "string",
required: true,
default: "",
description: "ID of the user field configuration to operate on",
}, ModuleManager_1.BITRIX24_MODULES.USER_FIELD_CONFIG, {
operation: ["delete", "get", "update"],
}),
// Add Entity ID field for delete operation
ModuleManager_1.ModuleManager.createSimpleField({
displayName: "Entity ID",
name: "entityId",
type: "string",
required: true,
default: "",
description: "Entity ID (e.g., DEAL, LEAD, CONTACT, CRM_7 for Smart Process). For Smart Process use CRM_[ID] format.",
}, ModuleManager_1.BITRIX24_MODULES.USER_FIELD_CONFIG, {
operation: ["delete"],
}),
// Add Entity ID field for get operation
ModuleManager_1.ModuleManager.createSimpleField({
displayName: "Entity ID",
name: "getEntityId",
type: "string",
required: false,
default: "CRM",
description: "Entity ID (e.g., DEAL, LEAD, CONTACT, CRM_7 for Smart Process). For Smart Process use CRM_[ID] format.",
}, ModuleManager_1.BITRIX24_MODULES.USER_FIELD_CONFIG, {
operation: ["get"],
}),
/* -------------------------------------------------------------------------- */
/* Get List Operation */
/* -------------------------------------------------------------------------- */
ModuleManager_1.ModuleManager.createSimpleField({
displayName: "Filter",
name: "filter",
type: "json",
default: "{}",
description: "Filter criteria in JSON format",
}, ModuleManager_1.BITRIX24_MODULES.USER_FIELD_CONFIG, {
operation: ["getList"],
}),
ModuleManager_1.ModuleManager.createSimpleField({
displayName: "Order",
name: "order",
type: "json",
default: "{}",
description: "Order criteria in JSON format",
}, ModuleManager_1.BITRIX24_MODULES.USER_FIELD_CONFIG, {
operation: ["getList"],
}),
ModuleManager_1.ModuleManager.createSimpleField({
displayName: "Select",
name: "select",
type: "multiOptions",
typeOptions: {
loadOptionsMethod: "getUserFieldConfigListOptions",
},
default: [],
description: "Select specific fields to return. Empty means all fields.",
}, ModuleManager_1.BITRIX24_MODULES.USER_FIELD_CONFIG, {
operation: ["getList"],
}),
ModuleManager_1.ModuleManager.createSimpleField({
displayName: "Start",
name: "start",
type: "number",
default: 0,
description: "The offset to start retrieving records from",
}, ModuleManager_1.BITRIX24_MODULES.USER_FIELD_CONFIG, {
operation: ["getList"],
}),
/* -------------------------------------------------------------------------- */
/* Add Operation */
/* -------------------------------------------------------------------------- */
ModuleManager_1.ModuleManager.createSimpleField({
displayName: "Use Structure Builder",
name: "useStructureBuilder",
type: "boolean",
default: true,
description: "Whether to use the structured form or provide the parameters directly as JSON",
}, ModuleManager_1.BITRIX24_MODULES.USER_FIELD_CONFIG, {
operation: ["add"],
}),
// Entity Type Selection (moved outside collections)
{
displayName: "Entity Type",
name: "entityType",
type: "options",
options: [
{ name: "Deal", value: "DEAL" },
{ name: "Lead", value: "LEAD" },
{ name: "Contact", value: "CONTACT" },
{ name: "Company", value: "COMPANY" },
{ name: "Quote", value: "QUOTE" },
{ name: "Smart Process", value: "DYNAMIC_ENTITY" },
{ name: "Custom", value: "CUSTOM" },
],
default: "DEAL",
required: true,
description: "Type of entity for which the user field is being configured",
displayOptions: {
show: {
operation: ["add"],
useStructureBuilder: [true],
},
},
},
// Custom Entity Type field (only shown when Custom is selected)
{
displayName: "Custom Entity Type",
name: "customEntityType",
type: "string",
default: "",
description: "Custom entity type if 'Custom' is selected as entity type",
displayOptions: {
show: {
operation: ["add"],
useStructureBuilder: [true],
entityType: ["CUSTOM"],
},
},
},
// Smart Process Type field (only shown when Smart Process is selected)
{
displayName: "Smart Process Type",
name: "smartProcessType",
type: "options",
typeOptions: {
loadOptionsMethod: "getUserFieldSmartProcessTypes",
},
default: "",
description: "Smart Process type if 'Smart Process' is selected as entity type",
displayOptions: {
show: {
operation: ["add"],
useStructureBuilder: [true],
entityType: ["DYNAMIC_ENTITY"],
},
},
},
// Field Type Selection (moved outside collections)
{
displayName: "Field Type",
name: "fieldType",
type: "options",
options: [
{ name: "String", value: "string" },
{ name: "Integer", value: "integer" },
{ name: "Double", value: "double" },
{ name: "Boolean", value: "boolean" },
{ name: "Date", value: "date" },
{ name: "DateTime", value: "datetime" },
{ name: "Enumeration", value: "enumeration" },
{ name: "File", value: "file" },
{ name: "Employee", value: "employee" },
{ name: "Money", value: "money" },
{ name: "URL", value: "url" },
{ name: "Address", value: "address" },
{ name: "Resource Booking", value: "resourcebooking" },
{ name: "CRM Entity", value: "crm_entity" },
{ name: "CRM Status", value: "crm_status" },
{ name: "CRM Category", value: "crm_category" },
{ name: "HTML", value: "html" },
],
default: "string",
required: true,
description: "Type of field to create",
displayOptions: {
show: {
operation: ["add"],
useStructureBuilder: [true],
},
},
},
// Field Name (moved outside collections)
{
displayName: "Field Name",
name: "fieldName",
type: "string",
default: "",
required: true,
placeholder: "CUSTOM_FIELD",
description: "Name of the field (Latin letters, numbers, and underscores only). The appropriate prefix will be added automatically.",
displayOptions: {
show: {
operation: ["add"],
useStructureBuilder: [true],
},
},
},
// Label field (moved outside collections)
{
displayName: "Label",
name: "label",
type: "string",
default: "",
required: true,
description: "User-friendly label for the field",
displayOptions: {
show: {
operation: ["add"],
useStructureBuilder: [true],
},
},
},
// Multi-language support
{
displayName: "Use Multi-Language Labels",
name: "useMultiLanguageLabels",
type: "boolean",
default: false,
description: "Whether to provide labels in multiple languages",
displayOptions: {
show: {
operation: ["add"],
useStructureBuilder: [true],
},
},
},
// Language-specific labels
{
displayName: "Language Labels",
name: "languageLabelsUi",
placeholder: "Add Language Label",
type: "fixedCollection",
typeOptions: {
multipleValues: true,
},
default: {},
options: [
{
name: "languageLabels",
displayName: "Language Label",
values: [
{
displayName: "Language Code",
name: "language",
type: "options",
options: [
{ name: "English", value: "en" },
{ name: "Russian", value: "ru" },
{ name: "German", value: "de" },
{ name: "French", value: "fr" },
{ name: "Spanish", value: "es" },
{ name: "Vietnamese", value: "vn" },
{ name: "Chinese", value: "zh" },
{ name: "Custom", value: "custom" },
],
default: "en",
description: "Language code (ISO)",
},
{
displayName: "Custom Language Code",
name: "customLanguage",
type: "string",
default: "",
description: "Custom language code (ISO format)",
},
{
displayName: "Label",
name: "label",
type: "string",
default: "",
description: "Label text in this language",
},
],
},
],
description: "Labels in different languages",
},
// Field properties - Boolean options
{
displayName: "Is Multiple",
name: "isMultiple",
type: "boolean",
default: false,
description: "Whether the field can have multiple values",
displayOptions: {
show: {
operation: ["add"],
useStructureBuilder: [true],
},
},
},
{
displayName: "Is Mandatory",
name: "isMandatory",
type: "boolean",
default: false,
description: "Whether the field is required",
displayOptions: {
show: {
operation: ["add"],
useStructureBuilder: [true],
},
},
},
{
displayName: "Show In List",
name: "showInList",
type: "boolean",
default: true,
description: "Whether to show the field in lists",
displayOptions: {
show: {
operation: ["add"],
useStructureBuilder: [true],
},
},
},
{
displayName: "Edit In List",
name: "editInList",
type: "boolean",
default: true,
description: "Whether the field can be edited in lists",
displayOptions: {
show: {
operation: ["add"],
useStructureBuilder: [true],
},
},
},
// Enumeration values for enum type
{
displayName: "List Values",
name: "listValues",
type: "string",
typeOptions: {
rows: 4,
},
default: "Option 1\nOption 2\nOption 3",
displayOptions: {
show: {
operation: ["add"],
useStructureBuilder: [true],
fieldType: ["enumeration"],
},
},
description: "Values for enumeration field. Enter one option per line. The first option will be set as default.",
},
// Direct JSON approach for advanced users
{
displayName: "Fields (JSON)",
name: "fields",
type: "json",
default: '{\n "entityId": "DEAL",\n "fieldName": "UF_CRM_CUSTOM_FIELD",\n "userTypeId": "string",\n "editFormLabel": "My Custom Field"\n}',
required: true,
description: "User field configuration in JSON format according to Bitrix24 API. Reference: https://apidocs.bitrix24.com/api-reference/crm/universal/userfieldconfig/userfieldconfig/userfieldconfig-add.html",
displayOptions: {
show: {
operation: ["add"],
useStructureBuilder: [false],
},
},
},
/* -------------------------------------------------------------------------- */
/* Add Multiple Operation */
/* -------------------------------------------------------------------------- */
{
displayName: "Entity Type",
name: "multipleEntityType",
type: "options",
options: [
{ name: "Deal", value: "DEAL" },
{ name: "Lead", value: "LEAD" },
{ name: "Contact", value: "CONTACT" },
{ name: "Company", value: "COMPANY" },
{ name: "Quote", value: "QUOTE" },
{ name: "Smart Process", value: "DYNAMIC_ENTITY" },
{ name: "Custom", value: "CUSTOM" },
],
default: "DEAL",
required: true,
description: "Type of entity for which the fields will be configured",
displayOptions: {
show: {
operation: ["addMultiple"],
},
},
},
// Custom Entity Type field (only shown when Custom is selected)
{
displayName: "Custom Entity Type",
name: "multipleCustomEntityType",
type: "string",
default: "",
description: "Custom entity type if 'Custom' is selected as entity type",
displayOptions: {
show: {
operation: ["addMultiple"],
multipleEntityType: ["CUSTOM"],
},
},
},
// Smart Process Type field for multiple operation
{
displayName: "Smart Process Type",
name: "multipleSmartProcessType",
type: "options",
typeOptions: {
loadOptionsMethod: "getUserFieldSmartProcessTypes",
},
default: "",
required: true,
description: "Select the Smart Process type. The ID number shown will be used in the field name format (UF_CRM_[ID]_FIELDNAME)",
displayOptions: {
show: {
operation: ["addMultiple"],
multipleEntityType: ["DYNAMIC_ENTITY"],
},
},
},
// Multiple Field Definitions
{
displayName: "Field Definitions",
name: "fieldDefinitions",
type: "fixedCollection",
typeOptions: {
multipleValues: true,
sortable: true,
},
default: {},
placeholder: "Add Field Definition",
description: "Define multiple fields to create",
options: [
{
name: "fields",
displayName: "Fields",
values: [
{
displayName: "Field Type",
name: "USER_TYPE_ID",
type: "options",
options: [
{ name: "String", value: "string" },
{ name: "Integer", value: "integer" },
{ name: "Double", value: "double" },
{ name: "Boolean", value: "boolean" },
{ name: "Date", value: "date" },
{ name: "DateTime", value: "datetime" },
{ name: "Enumeration", value: "enumeration" },
{ name: "File", value: "file" },
{ name: "Employee", value: "employee" },
{ name: "Money", value: "money" },
{ name: "URL", value: "url" },
{ name: "Address", value: "address" },
{ name: "Resource Booking", value: "resourcebooking" },
{ name: "CRM Entity", value: "crm_entity" },
{ name: "CRM Status", value: "crm_status" },
{ name: "CRM Category", value: "crm_category" },
{ name: "HTML", value: "html" },
],
default: "string",
required: true,
description: "Type of field to create",
},
{
displayName: "Field Name",
name: "FIELD_NAME",
type: "string",
default: "",
required: true,
placeholder: "CUSTOM_FIELD",
description: "Name of the field (Latin letters, numbers, and underscores only). The appropriate prefix will be added automatically.",
},
{
displayName: "Label",
name: "EDIT_FORM_LABEL",
type: "string",
default: "",
required: true,
description: "User-friendly label for the field",
},
{
displayName: "Multiple Values",
name: "MULTIPLE",
type: "boolean",
default: false,
description: "Whether the field can have multiple values",
},
{
displayName: "Mandatory",
name: "MANDATORY",
type: "boolean",
default: false,
description: "Whether the field is required",
},
{
displayName: "Filterable",
name: "SHOW_FILTER",
type: "boolean",
default: false,
description: "Whether the field can be used in filters",
},
{
displayName: "Searchable",
name: "IS_SEARCHABLE",
type: "boolean",
default: false,
description: "Whether the field is searchable",
},
{
displayName: "Default Value",
name: "DEFAULT_VALUE",
type: "string",
default: "",
description: "Default value for the field",
},
{
displayName: "Additional Settings (JSON)",
name: "additionalSettings",
type: "json",
default: "{}",
description: "Additional settings for the field in JSON format",
},
],
},
],
},
/* -------------------------------------------------------------------------- */
/* Update Operation */
/* -------------------------------------------------------------------------- */
{
displayName: "Update Fields",
name: "updateFields",
type: "fixedCollection",
typeOptions: {
multipleValues: true,
},
default: {},
placeholder: "Add Field To Update",
description: "Select the fields to update",
options: [
{
name: "fields",
displayName: "Fields",
values: [
{
displayName: "Field Name",
name: "name",
type: "string",
default: "",
required: true,
description: "Name of the field to update (API field name)",
},
{
displayName: "Field Value",
name: "value",
type: "string",
default: "",
description: "New value for the field",
},
{
displayName: "Boolean Value",
name: "boolValue",
type: "boolean",
default: false,
description: "Use this for boolean fields (Y/N values)",
},
{
displayName: "Is Boolean",
name: "isBoolean",
type: "boolean",
default: false,
description: "Whether this field should be treated as a boolean (Y/N) value",
},
],
},
],
},
// Options for all operations
{
displayName: "Options",
name: "options",
type: "collection",
placeholder: "Add Option",
default: {},
options: [
{
displayName: "Access Token",
name: "accessToken",
type: "string",
default: "",
placeholder: "Enter the access token to use instead of credentials.",
description: "Access token to use for API requests. If provided, will take priority over token in credentials.",
},
{
displayName: "Custom Parameters",
name: "customParameters",
type: "json",
default: "{}",
description: "Additional parameters to include in the request",
},
],
},
];
//# sourceMappingURL=UserFieldConfigDescription.js.map