mirror of
https://github.com/n8n-io/n8n.git
synced 2024-12-26 21:19:43 -08:00
4df69428f1
* 🔥 Remove useless tooltips * Slack change additional fields to Options in node * 🥅 Add error handeling for out of Scope request * ♻️ Refactor channel visibility * ♻️ refactor user ressource * Update user profile * 🔥 remove JSON parameter * 🔥 remove attchmant json and block json * 🎨 refactors message post * 🎨 refactor ts property into timestamps * 🎨 change action name for messages * ✨ add new operation to message ressouce * ✨ add search backend logic + channel RLC * 🎨 improve timestamp description and plaecholder * 🎨 change timestamp disaplay name * ✨ add RLC for channels * ✨ add versioning * 🐛 Fix imports for versioning * ✨ Add RLC for users when sending messages * ✨ RLC for user presence * ✨ Add json builder for slack blocks * 🐛 Fix option in search query * Add loadoption for search in channels * Fix indentation issue * ✨ Add more scopes to Oauth2 * 🐛 Fix lint issue * 🐛 oauth fix * ✨ Merge user and user profile * ✨ Improve reactions and star resource * ⚡️Merges ephemeral operation into one * ⚡️Merge image and emoji in profile picture * 🐛Fix bug for replying to messages * ⚡️Add username type to User Rlc * 🐛 Fix typo * 🎨 Improves tooltip and naming for ephemeral messages * 🎨 Improve display name and description * ⚡️Add the ability to delete within username channel * 🎨 Add informations on how to use the emojis and add doc * 🎨 Fix typos and improve display names * ✨ Improve FE validation for timestamp * 🎨 Change block description * 🚨 Fix linting * 🚨 More lint fixes * 🐛 Fix timestamps bug * 🐛 Fix timestamp not showing up * 🐛 More small fixes * 🐛 Fix logic error * Add searchable to slack rlc channels and users * Fix lint rules * ⚡️Message Search -> fix limit request using qs count * ⚡️Message Search -> sort by relevance use qs score * Fix messages by username rlc * 🐛 fix messages search all operation * Add error when using username with ephemeral message * 🎨 fix linting errors * 🎨 send message ephemeral error message improvement --------- Co-authored-by: Marcus <marcus@n8n.io>
1596 lines
40 KiB
TypeScript
1596 lines
40 KiB
TypeScript
import type { INodeProperties } from 'n8n-workflow';
|
|
|
|
export const messageOperations: INodeProperties[] = [
|
|
{
|
|
displayName: 'Operation',
|
|
name: 'operation',
|
|
type: 'options',
|
|
noDataExpression: true,
|
|
displayOptions: {
|
|
show: {
|
|
resource: ['message'],
|
|
},
|
|
},
|
|
options: [
|
|
{
|
|
name: 'Delete',
|
|
value: 'delete',
|
|
description: 'Deletes a message',
|
|
action: 'Delete a message',
|
|
},
|
|
{
|
|
name: 'Get Permalink',
|
|
value: 'getPermalink',
|
|
description: 'Get Permanent Link of a message',
|
|
action: 'Get a message permalink',
|
|
},
|
|
{
|
|
name: 'Post',
|
|
value: 'post',
|
|
description: 'Post a message into a channel',
|
|
action: 'Post a message',
|
|
},
|
|
{
|
|
name: 'Post (Ephemeral)',
|
|
value: 'postEphemeral',
|
|
description: 'Post an ephemeral message to a user in channel',
|
|
action: 'Post an ephemeral message',
|
|
},
|
|
{
|
|
name: 'Update',
|
|
value: 'update',
|
|
description: 'Updates a message',
|
|
action: 'Update a message',
|
|
},
|
|
],
|
|
default: 'post',
|
|
},
|
|
];
|
|
|
|
export const messageFields: INodeProperties[] = [
|
|
/* ----------------------------------------------------------------------- */
|
|
/* message:getPermalink
|
|
/* ----------------------------------------------------------------------- */
|
|
{
|
|
displayName: 'Channel Name or ID',
|
|
name: 'channelId',
|
|
type: 'options',
|
|
typeOptions: {
|
|
loadOptionsMethod: 'getChannels',
|
|
},
|
|
required: true,
|
|
default: '',
|
|
displayOptions: {
|
|
show: {
|
|
resource: ['message'],
|
|
operation: ['getPermalink'],
|
|
},
|
|
},
|
|
description:
|
|
'Channel containing the message. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>.',
|
|
},
|
|
{
|
|
displayName: 'Timestamp',
|
|
name: 'timestamp',
|
|
type: 'string',
|
|
required: true,
|
|
default: '',
|
|
displayOptions: {
|
|
show: {
|
|
resource: ['message'],
|
|
operation: ['getPermalink'],
|
|
},
|
|
},
|
|
description: 'Timestamp of the message to get permanent link',
|
|
},
|
|
|
|
/* -------------------------------------------------------------------------- */
|
|
/* message:post/postEphemeral */
|
|
/* -------------------------------------------------------------------------- */
|
|
{
|
|
displayName: 'Channel',
|
|
name: 'channel',
|
|
type: 'string',
|
|
default: '',
|
|
placeholder: 'Channel name',
|
|
displayOptions: {
|
|
show: {
|
|
operation: ['post', 'postEphemeral'],
|
|
resource: ['message'],
|
|
},
|
|
},
|
|
required: true,
|
|
description: 'The channel to send the message to',
|
|
},
|
|
{
|
|
displayName: 'User',
|
|
name: 'user',
|
|
type: 'string',
|
|
default: '',
|
|
placeholder: 'User ID',
|
|
displayOptions: {
|
|
show: {
|
|
operation: ['postEphemeral'],
|
|
resource: ['message'],
|
|
},
|
|
},
|
|
required: true,
|
|
description: 'The user ID to send the message to',
|
|
},
|
|
{
|
|
displayName: 'Text',
|
|
name: 'text',
|
|
type: 'string',
|
|
default: '',
|
|
displayOptions: {
|
|
show: {
|
|
operation: ['post', 'postEphemeral'],
|
|
resource: ['message'],
|
|
},
|
|
},
|
|
description: 'The text to send',
|
|
},
|
|
{
|
|
displayName: 'JSON Parameters',
|
|
name: 'jsonParameters',
|
|
type: 'boolean',
|
|
default: false,
|
|
displayOptions: {
|
|
show: {
|
|
operation: ['post', 'postEphemeral'],
|
|
resource: ['message'],
|
|
},
|
|
},
|
|
},
|
|
{
|
|
displayName: 'Options',
|
|
name: 'otherOptions',
|
|
type: 'collection',
|
|
displayOptions: {
|
|
show: {
|
|
operation: ['post', 'postEphemeral'],
|
|
resource: ['message'],
|
|
},
|
|
},
|
|
default: {},
|
|
description: 'Other options to set',
|
|
placeholder: 'Add options',
|
|
options: [
|
|
{
|
|
displayName: 'Icon Emoji',
|
|
name: 'icon_emoji',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Emoji to use as the icon for this message. Overrides icon_url.',
|
|
},
|
|
{
|
|
displayName: 'Icon URL',
|
|
name: 'icon_url',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'URL to an image to use as the icon for this message',
|
|
},
|
|
{
|
|
displayName: 'Link Names',
|
|
name: 'link_names',
|
|
type: 'boolean',
|
|
default: false,
|
|
description: 'Whether to find and link channel names and usernames',
|
|
},
|
|
{
|
|
displayName: 'Make Reply',
|
|
name: 'thread_ts',
|
|
type: 'string',
|
|
default: '',
|
|
description: "Provide another message's ts value to make this message a reply",
|
|
},
|
|
{
|
|
displayName: 'Markdown',
|
|
name: 'mrkdwn',
|
|
type: 'boolean',
|
|
default: true,
|
|
description: 'Whether to use Slack Markdown parsing',
|
|
},
|
|
{
|
|
displayName: 'Reply Broadcast',
|
|
name: 'reply_broadcast',
|
|
type: 'boolean',
|
|
default: false,
|
|
description:
|
|
'Whether the reply should be made visible to everyone in the channel or conversation. Use in conjunction with thread_ts.',
|
|
},
|
|
{
|
|
displayName: 'Unfurl Links',
|
|
name: 'unfurl_links',
|
|
type: 'boolean',
|
|
default: false,
|
|
description: 'Whether to enable unfurling of primarily text-based content',
|
|
},
|
|
{
|
|
displayName: 'Unfurl Media',
|
|
name: 'unfurl_media',
|
|
type: 'boolean',
|
|
default: true,
|
|
description: 'Whether to disable unfurling of media content',
|
|
},
|
|
{
|
|
displayName: 'Send as User',
|
|
name: 'sendAsUser',
|
|
type: 'string',
|
|
displayOptions: {
|
|
show: {
|
|
'/authentication': ['accessToken'],
|
|
},
|
|
},
|
|
default: '',
|
|
description:
|
|
'The message will be sent from this username (i.e. as if this individual sent the message).',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
displayName: 'Attachments',
|
|
name: 'attachments',
|
|
type: 'collection',
|
|
typeOptions: {
|
|
multipleValues: true,
|
|
multipleValueButtonText: 'Add attachment',
|
|
},
|
|
displayOptions: {
|
|
show: {
|
|
operation: ['post', 'postEphemeral'],
|
|
resource: ['message'],
|
|
},
|
|
},
|
|
default: {}, // TODO: Remove comment: has to make default array for the main property, check where that happens in UI
|
|
description: 'The attachment to add',
|
|
placeholder: 'Add attachment item',
|
|
options: [
|
|
{
|
|
displayName: 'Fallback Text',
|
|
name: 'fallback',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Required plain-text summary of the attachment',
|
|
},
|
|
{
|
|
displayName: 'Text',
|
|
name: 'text',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Text to send',
|
|
},
|
|
{
|
|
displayName: 'Title',
|
|
name: 'title',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Title of the message',
|
|
},
|
|
{
|
|
displayName: 'Title Link',
|
|
name: 'title_link',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Link of the title',
|
|
},
|
|
{
|
|
displayName: 'Color',
|
|
name: 'color',
|
|
type: 'color',
|
|
default: '#ff0000',
|
|
description: 'Color of the line left of text',
|
|
},
|
|
{
|
|
displayName: 'Pretext',
|
|
name: 'pretext',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Text which appears before the message block',
|
|
},
|
|
{
|
|
displayName: 'Author Name',
|
|
name: 'author_name',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Name that should appear',
|
|
},
|
|
{
|
|
displayName: 'Author Link',
|
|
name: 'author_link',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Link for the author',
|
|
},
|
|
{
|
|
displayName: 'Author Icon',
|
|
name: 'author_icon',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Icon which should appear for the user',
|
|
},
|
|
{
|
|
displayName: 'Image URL',
|
|
name: 'image_url',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'URL of image',
|
|
},
|
|
{
|
|
displayName: 'Thumbnail URL',
|
|
name: 'thumb_url',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'URL of thumbnail',
|
|
},
|
|
{
|
|
displayName: 'Footer',
|
|
name: 'footer',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Text of footer to add',
|
|
},
|
|
{
|
|
displayName: 'Footer Icon',
|
|
name: 'footer_icon',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Icon which should appear next to footer',
|
|
},
|
|
{
|
|
displayName: 'Timestamp',
|
|
name: 'ts',
|
|
type: 'dateTime',
|
|
default: '',
|
|
description: 'Time message relates to',
|
|
},
|
|
{
|
|
displayName: 'Fields',
|
|
name: 'fields',
|
|
placeholder: 'Add Fields',
|
|
description: 'Fields to add to message',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: true,
|
|
},
|
|
default: {},
|
|
options: [
|
|
{
|
|
name: 'item',
|
|
displayName: 'Item',
|
|
values: [
|
|
{
|
|
displayName: 'Title',
|
|
name: 'title',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Title of the item',
|
|
},
|
|
{
|
|
displayName: 'Value',
|
|
name: 'value',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Value of the item',
|
|
},
|
|
{
|
|
displayName: 'Short',
|
|
name: 'short',
|
|
type: 'boolean',
|
|
default: true,
|
|
description: 'Whether items can be displayed next to each other',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
|
|
/* ----------------------------------------------------------------------- */
|
|
/* message:update */
|
|
/* ----------------------------------------------------------------------- */
|
|
{
|
|
displayName: 'Channel Name or ID',
|
|
name: 'channelId',
|
|
type: 'options',
|
|
typeOptions: {
|
|
loadOptionsMethod: 'getChannels',
|
|
},
|
|
required: true,
|
|
default: '',
|
|
displayOptions: {
|
|
show: {
|
|
resource: ['message'],
|
|
operation: ['update'],
|
|
},
|
|
},
|
|
description:
|
|
'Channel containing the message to be updated. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>.',
|
|
},
|
|
{
|
|
displayName: 'Text',
|
|
name: 'text',
|
|
type: 'string',
|
|
default: '',
|
|
displayOptions: {
|
|
show: {
|
|
resource: ['message'],
|
|
operation: ['update'],
|
|
},
|
|
},
|
|
description:
|
|
"New text for the message, using the default formatting rules. It's not required when presenting attachments.",
|
|
},
|
|
{
|
|
displayName: 'TS',
|
|
name: 'ts',
|
|
type: 'string',
|
|
required: true,
|
|
default: '',
|
|
displayOptions: {
|
|
show: {
|
|
resource: ['message'],
|
|
operation: ['update'],
|
|
},
|
|
},
|
|
description: 'Timestamp of the message to be updated',
|
|
},
|
|
{
|
|
displayName: 'JSON Parameters',
|
|
name: 'jsonParameters',
|
|
type: 'boolean',
|
|
default: false,
|
|
displayOptions: {
|
|
show: {
|
|
operation: ['update'],
|
|
resource: ['message'],
|
|
},
|
|
},
|
|
},
|
|
{
|
|
displayName: 'Update Fields',
|
|
name: 'updateFields',
|
|
type: 'collection',
|
|
placeholder: 'Add Field',
|
|
default: {},
|
|
displayOptions: {
|
|
show: {
|
|
resource: ['message'],
|
|
operation: ['update'],
|
|
},
|
|
},
|
|
options: [
|
|
{
|
|
displayName: 'Link Names',
|
|
name: 'link_names',
|
|
type: 'boolean',
|
|
default: false,
|
|
description: 'Whether to find and link channel names and usernames',
|
|
},
|
|
{
|
|
displayName: 'Parse',
|
|
name: 'parse',
|
|
type: 'options',
|
|
options: [
|
|
{
|
|
name: 'Client',
|
|
value: 'client',
|
|
},
|
|
{
|
|
name: 'Full',
|
|
value: 'full',
|
|
},
|
|
{
|
|
name: 'None',
|
|
value: 'none',
|
|
},
|
|
],
|
|
default: 'client',
|
|
description: 'Change how messages are treated',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
displayName: 'Attachments',
|
|
name: 'attachmentsJson',
|
|
type: 'json',
|
|
default: '',
|
|
typeOptions: {
|
|
alwaysOpenEditWindow: true,
|
|
},
|
|
displayOptions: {
|
|
show: {
|
|
resource: ['message'],
|
|
operation: ['update'],
|
|
jsonParameters: [true],
|
|
},
|
|
},
|
|
description: 'The attachments to add',
|
|
},
|
|
{
|
|
displayName: 'Blocks',
|
|
name: 'blocksJson',
|
|
type: 'json',
|
|
default: '',
|
|
typeOptions: {
|
|
alwaysOpenEditWindow: true,
|
|
},
|
|
displayOptions: {
|
|
show: {
|
|
resource: ['message'],
|
|
operation: ['update'],
|
|
jsonParameters: [true],
|
|
},
|
|
},
|
|
description: 'The blocks to add',
|
|
},
|
|
{
|
|
displayName: 'Blocks',
|
|
name: 'blocksUi',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: true,
|
|
multipleValueButtonText: 'Add Block',
|
|
},
|
|
displayOptions: {
|
|
show: {
|
|
operation: ['post'],
|
|
resource: ['message'],
|
|
jsonParameters: [false],
|
|
},
|
|
},
|
|
default: {},
|
|
description: 'The blocks to add',
|
|
placeholder: 'Add Block',
|
|
options: [
|
|
{
|
|
name: 'blocksValues',
|
|
displayName: 'Block',
|
|
values: [
|
|
{
|
|
displayName: 'Type',
|
|
name: 'type',
|
|
type: 'options',
|
|
options: [
|
|
{
|
|
name: 'Actions',
|
|
value: 'actions',
|
|
},
|
|
{
|
|
name: 'Section',
|
|
value: 'section',
|
|
},
|
|
],
|
|
default: 'actions',
|
|
},
|
|
{
|
|
displayName: 'Block ID',
|
|
name: 'blockId',
|
|
type: 'string',
|
|
displayOptions: {
|
|
show: {
|
|
type: ['actions'],
|
|
},
|
|
},
|
|
default: '',
|
|
description:
|
|
'A string acting as a unique identifier for a block. You can use this block_id when you receive an interaction payload to identify the source of the action. If not specified, a block_id will be generated. Maximum length for this field is 255 characters.',
|
|
},
|
|
{
|
|
displayName: 'Elements',
|
|
name: 'elementsUi',
|
|
placeholder: 'Add Element',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: true,
|
|
},
|
|
displayOptions: {
|
|
show: {
|
|
type: ['actions'],
|
|
},
|
|
},
|
|
default: {},
|
|
options: [
|
|
{
|
|
name: 'elementsValues',
|
|
displayName: 'Element',
|
|
values: [
|
|
{
|
|
displayName: 'Type',
|
|
name: 'type',
|
|
type: 'options',
|
|
options: [
|
|
{
|
|
name: 'Button',
|
|
value: 'button',
|
|
},
|
|
],
|
|
default: 'button',
|
|
description: 'The type of element',
|
|
},
|
|
{
|
|
displayName: 'Text',
|
|
name: 'text',
|
|
type: 'string',
|
|
displayOptions: {
|
|
show: {
|
|
type: ['button'],
|
|
},
|
|
},
|
|
default: '',
|
|
description: 'The text for the block',
|
|
},
|
|
{
|
|
displayName: 'Emoji',
|
|
name: 'emoji',
|
|
type: 'boolean',
|
|
displayOptions: {
|
|
show: {
|
|
type: ['button'],
|
|
},
|
|
},
|
|
default: false,
|
|
description:
|
|
'Whether emojis in a text field should be escaped into the colon emoji format',
|
|
},
|
|
{
|
|
displayName: 'Action ID',
|
|
name: 'actionId',
|
|
type: 'string',
|
|
displayOptions: {
|
|
show: {
|
|
type: ['button'],
|
|
},
|
|
},
|
|
default: '',
|
|
description:
|
|
'An identifier for this action. You can use this when you receive an interaction payload to identify the source of the action. Should be unique among all other action_ids used elsewhere by your app.',
|
|
},
|
|
{
|
|
displayName: 'URL',
|
|
name: 'url',
|
|
type: 'string',
|
|
displayOptions: {
|
|
show: {
|
|
type: ['button'],
|
|
},
|
|
},
|
|
default: '',
|
|
description:
|
|
"A URL to load in the user's browser when the button is clicked. Maximum length for this field is 3000 characters. If you're using URL, you'll still receive an interaction payload and will need to send an acknowledgement response.",
|
|
},
|
|
{
|
|
displayName: 'Value',
|
|
name: 'value',
|
|
type: 'string',
|
|
displayOptions: {
|
|
show: {
|
|
type: ['button'],
|
|
},
|
|
},
|
|
default: '',
|
|
description: 'The value to send along with the interaction payload',
|
|
},
|
|
{
|
|
displayName: 'Style',
|
|
name: 'style',
|
|
type: 'options',
|
|
displayOptions: {
|
|
show: {
|
|
type: ['button'],
|
|
},
|
|
},
|
|
options: [
|
|
{
|
|
name: 'Danger',
|
|
value: 'danger',
|
|
},
|
|
{
|
|
name: 'Default',
|
|
value: 'default',
|
|
},
|
|
{
|
|
name: 'Primary',
|
|
value: 'primary',
|
|
},
|
|
],
|
|
default: 'default',
|
|
description: 'Decorates buttons with alternative visual color schemes',
|
|
},
|
|
{
|
|
displayName: 'Confirm',
|
|
name: 'confirmUi',
|
|
placeholder: 'Add Confirm',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: false,
|
|
},
|
|
default: {},
|
|
options: [
|
|
{
|
|
name: 'confirmValue',
|
|
displayName: 'Confirm',
|
|
values: [
|
|
{
|
|
displayName: 'Title',
|
|
name: 'titleUi',
|
|
placeholder: 'Add Title',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: false,
|
|
},
|
|
default: {},
|
|
options: [
|
|
{
|
|
name: 'titleValue',
|
|
displayName: 'Title',
|
|
values: [
|
|
{
|
|
displayName: 'Text',
|
|
name: 'text',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Text of the title',
|
|
},
|
|
{
|
|
displayName: 'Emoji',
|
|
name: 'emoji',
|
|
type: 'boolean',
|
|
default: false,
|
|
description:
|
|
'Whether emojis in a text field should be escaped into the colon emoji format',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
description: "Defines the dialog's title",
|
|
},
|
|
{
|
|
displayName: 'Text',
|
|
name: 'textUi',
|
|
placeholder: 'Add Text',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: false,
|
|
},
|
|
default: {},
|
|
options: [
|
|
{
|
|
name: 'textValue',
|
|
displayName: 'Text',
|
|
values: [
|
|
{
|
|
displayName: 'Text',
|
|
name: 'text',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'The text for the block',
|
|
},
|
|
{
|
|
displayName: 'Emoji',
|
|
name: 'emoji',
|
|
type: 'boolean',
|
|
default: false,
|
|
description:
|
|
'Whether emojis in a text field should be escaped into the colon emoji format',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
description:
|
|
'Defines the explanatory text that appears in the confirm dialog',
|
|
},
|
|
{
|
|
displayName: 'Confirm',
|
|
name: 'confirmTextUi',
|
|
placeholder: 'Add Confirm',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: false,
|
|
},
|
|
default: {},
|
|
options: [
|
|
{
|
|
name: 'confirmValue',
|
|
displayName: 'Confirm',
|
|
values: [
|
|
{
|
|
displayName: 'Text',
|
|
name: 'text',
|
|
type: 'string',
|
|
default: '',
|
|
description:
|
|
'Defines the explanatory text that appears in the confirm dialog',
|
|
},
|
|
{
|
|
displayName: 'Emoji',
|
|
name: 'emoji',
|
|
type: 'boolean',
|
|
default: false,
|
|
description:
|
|
'Whether emojis in a text field should be escaped into the colon emoji format',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
description: 'Defines the text of the button that confirms the action',
|
|
},
|
|
{
|
|
displayName: 'Deny',
|
|
name: 'denyUi',
|
|
placeholder: 'Add Deny',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: false,
|
|
},
|
|
default: {},
|
|
options: [
|
|
{
|
|
name: 'denyValue',
|
|
displayName: 'Deny',
|
|
values: [
|
|
{
|
|
displayName: 'Text',
|
|
name: 'text',
|
|
type: 'string',
|
|
default: '',
|
|
description:
|
|
'Defines the text of the button that cancels the action',
|
|
},
|
|
{
|
|
displayName: 'Emoji',
|
|
name: 'emoji',
|
|
type: 'boolean',
|
|
default: false,
|
|
description:
|
|
'Whether emojis in a text field should be escaped into the colon emoji format',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
description: 'Defines the text of the button that cancels the action',
|
|
},
|
|
{
|
|
displayName: 'Style',
|
|
name: 'style',
|
|
type: 'options',
|
|
options: [
|
|
{
|
|
name: 'Danger',
|
|
value: 'danger',
|
|
},
|
|
{
|
|
name: 'Default',
|
|
value: 'default',
|
|
},
|
|
{
|
|
name: 'Primary',
|
|
value: 'primary',
|
|
},
|
|
],
|
|
default: 'default',
|
|
description: 'Defines the color scheme applied to the confirm button',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
description:
|
|
'Defines an optional confirmation dialog after the button is clicked',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
displayName: 'Block ID',
|
|
name: 'blockId',
|
|
type: 'string',
|
|
displayOptions: {
|
|
show: {
|
|
type: ['section'],
|
|
},
|
|
},
|
|
default: '',
|
|
description:
|
|
'A string acting as a unique identifier for a block. You can use this block_id when you receive an interaction payload to identify the source of the action. If not specified, a block_id will be generated. Maximum length for this field is 255 characters.',
|
|
},
|
|
{
|
|
displayName: 'Text',
|
|
name: 'textUi',
|
|
placeholder: 'Add Text',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: false,
|
|
},
|
|
displayOptions: {
|
|
show: {
|
|
type: ['section'],
|
|
},
|
|
},
|
|
default: {},
|
|
options: [
|
|
{
|
|
name: 'textValue',
|
|
displayName: 'Text',
|
|
values: [
|
|
{
|
|
displayName: 'Type',
|
|
name: 'type',
|
|
type: 'options',
|
|
options: [
|
|
{
|
|
name: 'Markdown',
|
|
value: 'mrkwdn',
|
|
},
|
|
{
|
|
name: 'Plain Text',
|
|
value: 'plainText',
|
|
},
|
|
],
|
|
default: 'mrkwdn',
|
|
description: 'The formatting to use for this text object',
|
|
},
|
|
{
|
|
displayName: 'Text',
|
|
name: 'text',
|
|
type: 'string',
|
|
default: '',
|
|
description:
|
|
'The text for the block. This field accepts any of the standard text formatting markup when type is mrkdwn.',
|
|
},
|
|
{
|
|
displayName: 'Emoji',
|
|
name: 'emoji',
|
|
displayOptions: {
|
|
show: {
|
|
type: ['plainText'],
|
|
},
|
|
},
|
|
type: 'boolean',
|
|
default: false,
|
|
description:
|
|
'Whether emojis in a text field should be escaped into the colon emoji format. This field is only usable when type is plain_text.',
|
|
},
|
|
{
|
|
displayName: 'Verbatim',
|
|
name: 'verbatim',
|
|
displayOptions: {
|
|
show: {
|
|
type: ['mrkwdn'],
|
|
},
|
|
},
|
|
type: 'boolean',
|
|
default: false,
|
|
description:
|
|
'Whether to set to false (as is default) URLs will be auto-converted into links, conversation names will be link-ified, and certain mentions will be automatically parsed',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
description: 'Define the text of the button that cancels the action',
|
|
},
|
|
{
|
|
displayName: 'Fields',
|
|
name: 'fieldsUi',
|
|
placeholder: 'Add Fields',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: true,
|
|
},
|
|
displayOptions: {
|
|
show: {
|
|
type: ['section'],
|
|
},
|
|
},
|
|
default: {},
|
|
options: [
|
|
{
|
|
name: 'fieldsValues',
|
|
displayName: 'Text',
|
|
values: [
|
|
{
|
|
displayName: 'Type',
|
|
name: 'type',
|
|
type: 'options',
|
|
options: [
|
|
{
|
|
name: 'Markdown',
|
|
value: 'mrkwdn',
|
|
},
|
|
{
|
|
name: 'Plain Text',
|
|
value: 'plainText',
|
|
},
|
|
],
|
|
default: 'mrkwdn',
|
|
description: 'The formatting to use for this text object',
|
|
},
|
|
{
|
|
displayName: 'Text',
|
|
name: 'text',
|
|
type: 'string',
|
|
default: '',
|
|
description:
|
|
'The text for the block. This field accepts any of the standard text formatting markup when type is mrkdwn.',
|
|
},
|
|
{
|
|
displayName: 'Emoji',
|
|
name: 'emoji',
|
|
type: 'boolean',
|
|
displayOptions: {
|
|
show: {
|
|
type: ['plainText'],
|
|
},
|
|
},
|
|
default: false,
|
|
description:
|
|
'Whether emojis in a text field should be escaped into the colon emoji format. This field is only usable when type is plain_text.',
|
|
},
|
|
{
|
|
displayName: 'Verbatim',
|
|
name: 'verbatim',
|
|
displayOptions: {
|
|
show: {
|
|
type: ['mrkwdn'],
|
|
},
|
|
},
|
|
type: 'boolean',
|
|
default: false,
|
|
// eslint-disable-next-line n8n-nodes-base/node-param-description-boolean-without-whether
|
|
description:
|
|
'When set to false (as is default) URLs will be auto-converted into links, conversation names will be link-ified, and certain mentions will be automatically parsed',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
description:
|
|
'An array of text objects. Any text objects included with fields will be rendered in a compact format that allows for 2 columns of side-by-side text. Maximum number of items is 10.',
|
|
},
|
|
{
|
|
displayName: 'Accessory',
|
|
name: 'accessoryUi',
|
|
placeholder: 'Add Accessory',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: false,
|
|
},
|
|
displayOptions: {
|
|
show: {
|
|
type: ['section'],
|
|
},
|
|
},
|
|
default: {},
|
|
options: [
|
|
{
|
|
name: 'accessoriesValues',
|
|
displayName: 'Accessory',
|
|
values: [
|
|
{
|
|
displayName: 'Type',
|
|
name: 'type',
|
|
type: 'options',
|
|
options: [
|
|
{
|
|
name: 'Button',
|
|
value: 'button',
|
|
},
|
|
],
|
|
default: 'button',
|
|
description: 'The type of element',
|
|
},
|
|
{
|
|
displayName: 'Text',
|
|
name: 'text',
|
|
displayOptions: {
|
|
show: {
|
|
type: ['button'],
|
|
},
|
|
},
|
|
type: 'string',
|
|
default: '',
|
|
description: 'The text for the block',
|
|
},
|
|
{
|
|
displayName: 'Emoji',
|
|
name: 'emoji',
|
|
displayOptions: {
|
|
show: {
|
|
type: ['button'],
|
|
},
|
|
},
|
|
type: 'boolean',
|
|
default: false,
|
|
description:
|
|
'Whether emojis in a text field should be escaped into the colon emoji format',
|
|
},
|
|
{
|
|
displayName: 'Action ID',
|
|
name: 'actionId',
|
|
displayOptions: {
|
|
show: {
|
|
type: ['button'],
|
|
},
|
|
},
|
|
type: 'string',
|
|
default: '',
|
|
description:
|
|
'An identifier for this action. You can use this when you receive an interaction payload to identify the source of the action. Should be unique among all other action_ids used elsewhere by your app.',
|
|
},
|
|
{
|
|
displayName: 'URL',
|
|
name: 'url',
|
|
displayOptions: {
|
|
show: {
|
|
type: ['button'],
|
|
},
|
|
},
|
|
type: 'string',
|
|
default: '',
|
|
description:
|
|
"A URL to load in the user's browser when the button is clicked. Maximum length for this field is 3000 characters. If you're using URL, you'll still receive an interaction payload and will need to send an acknowledgement response.",
|
|
},
|
|
{
|
|
displayName: 'Value',
|
|
name: 'value',
|
|
displayOptions: {
|
|
show: {
|
|
type: ['button'],
|
|
},
|
|
},
|
|
type: 'string',
|
|
default: '',
|
|
description: 'The value to send along with the interaction payload',
|
|
},
|
|
{
|
|
displayName: 'Style',
|
|
name: 'style',
|
|
displayOptions: {
|
|
show: {
|
|
type: ['button'],
|
|
},
|
|
},
|
|
type: 'options',
|
|
options: [
|
|
{
|
|
name: 'Danger',
|
|
value: 'danger',
|
|
},
|
|
{
|
|
name: 'Default',
|
|
value: 'default',
|
|
},
|
|
{
|
|
name: 'Primary',
|
|
value: 'primary',
|
|
},
|
|
],
|
|
default: 'default',
|
|
description: 'Decorates buttons with alternative visual color schemes',
|
|
},
|
|
{
|
|
displayName: 'Confirm',
|
|
name: 'confirmUi',
|
|
placeholder: 'Add Confirm',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: false,
|
|
},
|
|
displayOptions: {
|
|
show: {
|
|
type: ['button'],
|
|
},
|
|
},
|
|
default: {},
|
|
options: [
|
|
{
|
|
name: 'confirmValue',
|
|
displayName: 'Confirm',
|
|
values: [
|
|
{
|
|
displayName: 'Title',
|
|
name: 'titleUi',
|
|
placeholder: 'Add Title',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: false,
|
|
},
|
|
default: {},
|
|
options: [
|
|
{
|
|
name: 'titleValue',
|
|
displayName: 'Title',
|
|
values: [
|
|
{
|
|
displayName: 'Text',
|
|
name: 'text',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Text of the title',
|
|
},
|
|
{
|
|
displayName: 'Emoji',
|
|
name: 'emoji',
|
|
type: 'boolean',
|
|
default: false,
|
|
description:
|
|
'Whether emojis in a text field should be escaped into the colon emoji format',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
description:
|
|
'Defines an optional confirmation dialog after the button is clicked',
|
|
},
|
|
{
|
|
displayName: 'Text',
|
|
name: 'textUi',
|
|
placeholder: 'Add Text',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: false,
|
|
},
|
|
default: {},
|
|
options: [
|
|
{
|
|
name: 'textValue',
|
|
displayName: 'Text',
|
|
values: [
|
|
{
|
|
displayName: 'Text',
|
|
name: 'text',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'The text for the block',
|
|
},
|
|
{
|
|
displayName: 'Emoji',
|
|
name: 'emoji',
|
|
type: 'boolean',
|
|
default: false,
|
|
description:
|
|
'Whether emojis in a text field should be escaped into the colon emoji format',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
description:
|
|
'Defines the explanatory text that appears in the confirm dialog',
|
|
},
|
|
{
|
|
displayName: 'Confirm',
|
|
name: 'confirmTextUi',
|
|
placeholder: 'Add Confirm',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: false,
|
|
},
|
|
default: {},
|
|
options: [
|
|
{
|
|
name: 'confirmValue',
|
|
displayName: 'Confirm',
|
|
values: [
|
|
{
|
|
displayName: 'Text',
|
|
name: 'text',
|
|
type: 'string',
|
|
default: '',
|
|
description:
|
|
'Defines the explanatory text that appears in the confirm dialog',
|
|
},
|
|
{
|
|
displayName: 'Emoji',
|
|
name: 'emoji',
|
|
type: 'boolean',
|
|
default: false,
|
|
description:
|
|
'Whether emojis in a text field should be escaped into the colon emoji format',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
description:
|
|
'Defines the explanatory text that appears in the confirm dialog',
|
|
},
|
|
{
|
|
displayName: 'Deny',
|
|
name: 'denyUi',
|
|
placeholder: 'Add Deny',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: false,
|
|
},
|
|
default: {},
|
|
options: [
|
|
{
|
|
name: 'denyValue',
|
|
displayName: 'Deny',
|
|
values: [
|
|
{
|
|
displayName: 'Text',
|
|
name: 'text',
|
|
type: 'string',
|
|
default: '',
|
|
description:
|
|
'Define the text of the button that cancels the action',
|
|
},
|
|
{
|
|
displayName: 'Emoji',
|
|
name: 'emoji',
|
|
type: 'boolean',
|
|
default: false,
|
|
description:
|
|
'Whether emojis in a text field should be escaped into the colon emoji format',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
description: 'Define the text of the button that cancels the action',
|
|
},
|
|
{
|
|
displayName: 'Style',
|
|
name: 'style',
|
|
type: 'options',
|
|
options: [
|
|
{
|
|
name: 'Danger',
|
|
value: 'danger',
|
|
},
|
|
{
|
|
name: 'Default',
|
|
value: 'default',
|
|
},
|
|
{
|
|
name: 'Primary',
|
|
value: 'primary',
|
|
},
|
|
],
|
|
default: 'default',
|
|
description: 'Defines the color scheme applied to the confirm button',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
description:
|
|
'Defines an optional confirmation dialog after the button is clicked',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
displayName: 'Attachments',
|
|
name: 'attachmentsJson',
|
|
type: 'json',
|
|
default: '',
|
|
typeOptions: {
|
|
alwaysOpenEditWindow: true,
|
|
},
|
|
displayOptions: {
|
|
show: {
|
|
resource: ['message'],
|
|
operation: ['post'],
|
|
jsonParameters: [true],
|
|
},
|
|
},
|
|
description: 'The attachments to add',
|
|
},
|
|
{
|
|
displayName: 'Blocks',
|
|
name: 'blocksJson',
|
|
type: 'json',
|
|
default: '',
|
|
typeOptions: {
|
|
alwaysOpenEditWindow: true,
|
|
},
|
|
displayOptions: {
|
|
show: {
|
|
resource: ['message'],
|
|
operation: ['post'],
|
|
jsonParameters: [true],
|
|
},
|
|
},
|
|
description: 'The blocks to add',
|
|
},
|
|
{
|
|
displayName: 'Attachments',
|
|
name: 'attachments',
|
|
type: 'collection',
|
|
typeOptions: {
|
|
multipleValues: true,
|
|
multipleValueButtonText: 'Add attachment',
|
|
},
|
|
displayOptions: {
|
|
show: {
|
|
jsonParameters: [false],
|
|
operation: ['update'],
|
|
resource: ['message'],
|
|
},
|
|
},
|
|
default: {}, // TODO: Remove comment: has to make default array for the main property, check where that happens in UI
|
|
description: 'The attachment to add',
|
|
placeholder: 'Add attachment item',
|
|
options: [
|
|
{
|
|
displayName: 'Fallback Text',
|
|
name: 'fallback',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Required plain-text summary of the attachment',
|
|
},
|
|
{
|
|
displayName: 'Text',
|
|
name: 'text',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Text to send',
|
|
},
|
|
{
|
|
displayName: 'Title',
|
|
name: 'title',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Title of the message',
|
|
},
|
|
{
|
|
displayName: 'Title Link',
|
|
name: 'title_link',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Link of the title',
|
|
},
|
|
{
|
|
displayName: 'Color',
|
|
name: 'color',
|
|
type: 'color',
|
|
default: '#ff0000',
|
|
description: 'Color of the line left of text',
|
|
},
|
|
{
|
|
displayName: 'Pretext',
|
|
name: 'pretext',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Text which appears before the message block',
|
|
},
|
|
{
|
|
displayName: 'Author Name',
|
|
name: 'author_name',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Name that should appear',
|
|
},
|
|
{
|
|
displayName: 'Author Link',
|
|
name: 'author_link',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Link for the author',
|
|
},
|
|
{
|
|
displayName: 'Author Icon',
|
|
name: 'author_icon',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Icon which should appear for the user',
|
|
},
|
|
{
|
|
displayName: 'Image URL',
|
|
name: 'image_url',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'URL of image',
|
|
},
|
|
{
|
|
displayName: 'Thumbnail URL',
|
|
name: 'thumb_url',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'URL of thumbnail',
|
|
},
|
|
{
|
|
displayName: 'Footer',
|
|
name: 'footer',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Text of footer to add',
|
|
},
|
|
{
|
|
displayName: 'Footer Icon',
|
|
name: 'footer_icon',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Icon which should appear next to footer',
|
|
},
|
|
{
|
|
displayName: 'Timestamp',
|
|
name: 'ts',
|
|
type: 'dateTime',
|
|
default: '',
|
|
description: 'Time message relates to',
|
|
},
|
|
{
|
|
displayName: 'Fields',
|
|
name: 'fields',
|
|
placeholder: 'Add Fields',
|
|
description: 'Fields to add to message',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: true,
|
|
},
|
|
default: {},
|
|
options: [
|
|
{
|
|
name: 'item',
|
|
displayName: 'Item',
|
|
values: [
|
|
{
|
|
displayName: 'Title',
|
|
name: 'title',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Title of the item',
|
|
},
|
|
{
|
|
displayName: 'Value',
|
|
name: 'value',
|
|
type: 'string',
|
|
default: '',
|
|
description: 'Value of the item',
|
|
},
|
|
{
|
|
displayName: 'Short',
|
|
name: 'short',
|
|
type: 'boolean',
|
|
default: true,
|
|
description: 'Whether items can be displayed next to each other',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
|
|
/* ----------------------------------------------------------------------- */
|
|
/* message:delete
|
|
/* ----------------------------------------------------------------------- */
|
|
{
|
|
displayName: 'Channel Name or ID',
|
|
name: 'channelId',
|
|
type: 'options',
|
|
typeOptions: {
|
|
loadOptionsMethod: 'getChannels',
|
|
},
|
|
required: true,
|
|
default: '',
|
|
displayOptions: {
|
|
show: {
|
|
resource: ['message'],
|
|
operation: ['delete'],
|
|
},
|
|
},
|
|
description:
|
|
'Channel containing the message to be deleted. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>.',
|
|
},
|
|
{
|
|
displayName: 'Timestamp',
|
|
name: 'timestamp',
|
|
type: 'string',
|
|
required: true,
|
|
default: '',
|
|
displayOptions: {
|
|
show: {
|
|
resource: ['message'],
|
|
operation: ['delete'],
|
|
},
|
|
},
|
|
description: 'Timestamp of the message to be deleted',
|
|
},
|
|
];
|