From a0bb6b10c2aee600684a8064516fb33fcbcfb119 Mon Sep 17 00:00:00 2001 From: michelle0927 Date: Wed, 5 Jun 2024 16:19:38 -0400 Subject: [PATCH 1/3] updates --- .../slack/actions/common/build-blocks.mjs | 3 +- .../slack/actions/common/send-message.mjs | 93 +++++++++++++++++-- .../reply-to-a-message/reply-to-a-message.mjs | 4 +- .../send-message-advanced.mjs} | 21 +---- .../actions/send-message/send-message.mjs | 11 ++- components/slack/common/constants.mjs | 8 +- components/slack/slack.app.mjs | 8 +- .../send-message-advanced.mjs} | 4 +- 8 files changed, 109 insertions(+), 43 deletions(-) rename components/slack/actions/{send-custom-message/send-custom-message.mjs => send-message-advanced/send-message-advanced.mjs} (77%) rename components/slack_bot/actions/{send-custom-message/send-custom-message.mjs => send-message-advanced/send-message-advanced.mjs} (80%) diff --git a/components/slack/actions/common/build-blocks.mjs b/components/slack/actions/common/build-blocks.mjs index e16cb03cfdb42..fdbc9a70e4b17 100644 --- a/components/slack/actions/common/build-blocks.mjs +++ b/components/slack/actions/common/build-blocks.mjs @@ -81,7 +81,8 @@ export default { } }, }, - async additionalProps() { + async additionalProps(existingProps) { + await common.additionalProps.call(this, existingProps); const props = {}; const sectionDescription = "Add a **section** block to your message and configure with plain text or mrkdwn. See [Slack's docs](https://api.slack.com/reference/block-kit/blocks?ref=bk#section) for more info."; const contextDescription = "Add a **context** block to your message and configure with plain text or mrkdwn. Define multiple items if you'd like multiple elements in the context block. See [Slack's docs](https://api.slack.com/reference/block-kit/blocks?ref=bk#context) for more info."; diff --git a/components/slack/actions/common/send-message.mjs b/components/slack/actions/common/send-message.mjs index 0f2765d7c8c6a..bd10d44017542 100644 --- a/components/slack/actions/common/send-message.mjs +++ b/components/slack/actions/common/send-message.mjs @@ -9,62 +9,128 @@ export default { "as_user", ], }, + post_at: { + propDefinition: [ + slack, + "post_at", + ], + }, + include_sent_via_pipedream_flag: { + type: "boolean", + optional: true, + default: true, + label: "Include link to workflow", + description: "Defaults to `true`, includes a link to the workflow at the end of your Slack message.", + }, + customizeBotSettings: { + type: "boolean", + label: "Customize Bot Settings", + description: "Customize the username and/or icon of the Bot", + optional: true, + reloadProps: true, + }, username: { propDefinition: [ slack, "username", ], + hidden: true, }, icon_emoji: { propDefinition: [ slack, "icon_emoji", ], + hidden: true, }, icon_url: { propDefinition: [ slack, "icon_url", ], + hidden: true, }, - post_at: { + replyToThread: { + type: "boolean", + label: "Reply to Thread", + description: "Reply to an existing thread", + optional: true, + reloadProps: true, + }, + thread_ts: { propDefinition: [ slack, - "post_at", + "messageTs", + (c) => ({ + channel: c.conversation, + }), ], + description: "Provide another message's `ts` value to make this message a reply (e.g., if triggering on new Slack messages, enter `{{event.ts}}`). Avoid using a reply's `ts` value; use its parent instead.", + optional: true, + hidden: true, }, - include_sent_via_pipedream_flag: { + addMessageMetadata: { type: "boolean", + label: "Add Message Metadata", + description: "Set the metadata event type and payload", optional: true, - default: true, - label: "Include link to workflow", - description: "Defaults to `true`, includes a link to the workflow at the end of your Slack message.", + reloadProps: true, }, metadata_event_type: { propDefinition: [ slack, "metadata_event_type", ], + hidden: true, }, metadata_event_payload: { propDefinition: [ slack, "metadata_event_payload", ], + hidden: true, + }, + configureUnfurlSettings: { + type: "boolean", + label: "Configure Unfurl Settings", + description: "Configure settings for unfurling links and media", + optional: true, + reloadProps: true, }, unfurl_links: { propDefinition: [ slack, "unfurl_links", ], + hidden: true, }, unfurl_media: { propDefinition: [ slack, "unfurl_media", ], + hidden: true, }, }, + async additionalProps(props) { + if (this.conversation && this.replyToThread) { + props.thread_ts.hidden = false; + } + if (this.customizeBotSettings) { + props.username.hidden = false; + props.icon_emoji.hidden = false; + props.icon_url.hidden = false; + } + if (this.addMessageMetadata) { + props.metadata_event_type.hidden = false; + props.metadata_event_payload.hidden = false; + } + if (this.configureUnfurlSettings) { + props.unfurl_links.hidden = false; + props.unfurl_media.hidden = false; + } + return {}; + }, methods: { _makeSentViaPipedreamBlock() { const workflowId = process.env.PIPEDREAM_WORKFLOW_ID; @@ -120,7 +186,7 @@ export default { if (this.metadata_event_type) { - if (typeof metadataEventPayload === "string") { + if (typeof this.metadata_event_payload === "string") { try { metadataEventPayload = JSON.parse(this.metadata_event_payload); } catch (error) { @@ -148,7 +214,7 @@ export default { mrkdwn: this.mrkdwn, blocks, link_names: this.link_names, - reply_broadcast: this.reply_broadcast, + thread_broadcast: this.thread_broadcast, thread_ts: this.thread_ts, metadata: this.metadata || null, }; @@ -158,7 +224,16 @@ export default { return await this.slack.sdk().chat.scheduleMessage(obj); } const resp = await this.slack.sdk().chat.postMessage(obj); - $.export("$summary", "Successfully sent a message to channel ID " + resp.channel); + const { channel } = await this.slack.conversationsInfo({ + channel: resp.channel, + }); + const usernames = await this.slack.userNames(); + const channelName = channel.is_im + ? `@${usernames[channel.user]}` + : channel.is_mpim + ? channel.purpose.value + : channel.name; + $.export("$summary", `Successfully sent a message to ${channelName}`); return resp; }, }; diff --git a/components/slack/actions/reply-to-a-message/reply-to-a-message.mjs b/components/slack/actions/reply-to-a-message/reply-to-a-message.mjs index b27f5a5c98bce..1457716f4a8d8 100644 --- a/components/slack/actions/reply-to-a-message/reply-to-a-message.mjs +++ b/components/slack/actions/reply-to-a-message/reply-to-a-message.mjs @@ -25,10 +25,10 @@ export default { }), ], }, - reply_broadcast: { + thread_broadcast: { propDefinition: [ slack, - "reply_broadcast", + "thread_broadcast", ], }, text: { diff --git a/components/slack/actions/send-custom-message/send-custom-message.mjs b/components/slack/actions/send-message-advanced/send-message-advanced.mjs similarity index 77% rename from components/slack/actions/send-custom-message/send-custom-message.mjs rename to components/slack/actions/send-message-advanced/send-message-advanced.mjs index e7ee923e84e16..73802b46e4e5f 100644 --- a/components/slack/actions/send-custom-message/send-custom-message.mjs +++ b/components/slack/actions/send-message-advanced/send-message-advanced.mjs @@ -4,10 +4,10 @@ import buildBlocks from "../common/build-blocks.mjs"; export default { ...common, ...buildBlocks, - key: "slack-send-custom-message", - name: "Send a Custom Message", + key: "slack-send-message-advanced", + name: "Send Message (Advanced)", description: "Customize advanced setttings and send a message to a channel, group or user. See [postMessage](https://api.slack.com/methods/chat.postMessage) or [scheduleMessage](https://api.slack.com/methods/chat.scheduleMessage) docs here", - version: "0.2.21", + version: "0.0.1", type: "action", props: { slack: common.props.slack, @@ -48,23 +48,12 @@ export default { "link_names", ], }, - reply_broadcast: { + thread_broadcast: { propDefinition: [ common.props.slack, - "reply_broadcast", + "thread_broadcast", ], }, - thread_ts: { - propDefinition: [ - common.props.slack, - "messageTs", - (c) => ({ - channel: c.conversation, - }), - ], - description: "Provide another message's `ts` value to make this message a reply (e.g., if triggering on new Slack messages, enter `{{event.ts}}`). Avoid using a reply's `ts` value; use its parent instead.", - optional: true, - }, ...common.props, ...buildBlocks.props, }, diff --git a/components/slack/actions/send-message/send-message.mjs b/components/slack/actions/send-message/send-message.mjs index ee5f5244b89d0..ee4077def19fb 100644 --- a/components/slack/actions/send-message/send-message.mjs +++ b/components/slack/actions/send-message/send-message.mjs @@ -23,9 +23,14 @@ export default { common.props.slack, "channelId", (c) => ({ - types: [ - c.channelType, - ], + types: c.channelType === "Channels" + ? [ + constants.CHANNEL_TYPE.PUBLIC, + constants.CHANNEL_TYPE.PRIVATE, + ] + : [ + c.channelType, + ], }), ], }, diff --git a/components/slack/common/constants.mjs b/components/slack/common/constants.mjs index 2a94069238485..c96e534bc3936 100644 --- a/components/slack/common/constants.mjs +++ b/components/slack/common/constants.mjs @@ -10,12 +10,8 @@ const CHANNEL_TYPE = { const CHANNEL_TYPE_OPTIONS = [ { - label: "Public Channel", - value: CHANNEL_TYPE.PUBLIC, - }, - { - label: "Private Channel", - value: CHANNEL_TYPE.PRIVATE, + label: "Channels", + value: "Channels", }, { label: "Group", diff --git a/components/slack/slack.app.mjs b/components/slack/slack.app.mjs index 447c94d9f370d..0961a30feccd5 100644 --- a/components/slack/slack.app.mjs +++ b/components/slack/slack.app.mjs @@ -381,9 +381,9 @@ export default { description: "Find and link channel names and usernames.", optional: true, }, - reply_broadcast: { + thread_broadcast: { type: "boolean", - label: "Reply Broadcasts", + label: "Thread Broadcasts", description: "Used in conjunction with thread_ts and indicates whether reply should be made visible to everyone in the channel or conversation. Defaults to false.", default: false, optional: true, @@ -414,13 +414,13 @@ export default { metadata_event_type: { type: "string", label: "Metadata Event Type", - description: "The name of the metadata event", + description: "The name of the metadata event. Example: `task_created`", optional: true, }, metadata_event_payload: { type: "string", label: "Metadata Event Payload", - description: "The payload of the metadata event. Must be a JSON string e.g. `{\"key\": \"value\"}`", + description: "The payload of the metadata event. Must be a JSON string. Example: `{ \"id\": \"11223\", \"title\": \"Redesign Homepage\"}`", optional: true, }, ignoreMyself: { diff --git a/components/slack_bot/actions/send-custom-message/send-custom-message.mjs b/components/slack_bot/actions/send-message-advanced/send-message-advanced.mjs similarity index 80% rename from components/slack_bot/actions/send-custom-message/send-custom-message.mjs rename to components/slack_bot/actions/send-message-advanced/send-message-advanced.mjs index 1a4a5a8a93d1b..8761fe2d488e7 100644 --- a/components/slack_bot/actions/send-custom-message/send-custom-message.mjs +++ b/components/slack_bot/actions/send-message-advanced/send-message-advanced.mjs @@ -1,4 +1,4 @@ -import component from "../../../slack/actions/send-custom-message/send-custom-message.mjs"; +import component from "../../../slack/actions/send-message-advanced/send-message-advanced.mjs"; import utils from "../../common/utils.mjs"; /* eslint-disable pipedream/required-properties-type */ @@ -12,7 +12,7 @@ export default { "as_user", ], }), - key: "slack_bot-send-custom-message", + key: "slack_bot-send-message-advanced", description: "Customize advanced setttings and send a message to a channel, group or user (Bot). See [postMessage](https://api.slack.com/methods/chat.postMessage) or [scheduleMessage](https://api.slack.com/methods/chat.scheduleMessage) docs here", version: "0.0.3", }; From 9643cf014330e172a94ebade43aa9320b2a5cdd5 Mon Sep 17 00:00:00 2001 From: michelle0927 Date: Wed, 5 Jun 2024 16:25:34 -0400 Subject: [PATCH 2/3] versions --- .../slack/actions/add-emoji-reaction/add-emoji-reaction.mjs | 2 +- components/slack/actions/archive-channel/archive-channel.mjs | 2 +- components/slack/actions/create-channel/create-channel.mjs | 2 +- components/slack/actions/create-reminder/create-reminder.mjs | 2 +- components/slack/actions/delete-file/delete-file.mjs | 2 +- components/slack/actions/delete-message/delete-message.mjs | 2 +- components/slack/actions/find-message/find-message.mjs | 2 +- .../slack/actions/find-user-by-email/find-user-by-email.mjs | 2 +- components/slack/actions/get-file/get-file.mjs | 2 +- .../actions/invite-user-to-channel/invite-user-to-channel.mjs | 2 +- components/slack/actions/kick-user/kick-user.mjs | 2 +- components/slack/actions/list-channels/list-channels.mjs | 2 +- components/slack/actions/list-files/list-files.mjs | 2 +- .../slack/actions/list-group-members/list-group-members.mjs | 2 +- .../actions/list-members-in-channel/list-members-in-channel.mjs | 2 +- components/slack/actions/list-replies/list-replies.mjs | 2 +- components/slack/actions/list-users/list-users.mjs | 2 +- .../slack/actions/reply-to-a-message/reply-to-a-message.mjs | 2 +- .../slack/actions/send-large-message/send-large-message.mjs | 2 +- components/slack/actions/send-message/send-message.mjs | 2 +- .../actions/set-channel-description/set-channel-description.mjs | 2 +- .../slack/actions/set-channel-topic/set-channel-topic.mjs | 2 +- components/slack/actions/set-status/set-status.mjs | 2 +- .../slack/actions/update-group-members/update-group-members.mjs | 2 +- components/slack/actions/update-message/update-message.mjs | 2 +- components/slack/actions/update-profile/update-profile.mjs | 2 +- components/slack/actions/upload-file/upload-file.mjs | 2 +- .../actions/verify-slack-signature/verify-slack-signature.mjs | 2 +- components/slack/package.json | 2 +- .../slack/sources/new-channel-created/new-channel-created.mjs | 2 +- .../slack/sources/new-direct-message/new-direct-message.mjs | 2 +- .../new-interaction-event-received.mjs | 2 +- .../slack/sources/new-keyword-mention/new-keyword-mention.mjs | 2 +- .../sources/new-message-in-channels/new-message-in-channels.mjs | 2 +- .../slack/sources/new-reaction-added/new-reaction-added.mjs | 2 +- components/slack/sources/new-user-mention/new-user-mention.mjs | 2 +- .../slack_bot/actions/reply-to-a-message/reply-to-a-message.mjs | 2 +- .../slack_bot/actions/send-large-message/send-large-message.mjs | 2 +- .../actions/send-message-advanced/send-message-advanced.mjs | 2 +- components/slack_bot/actions/send-message/send-message.mjs | 2 +- components/slack_bot/package.json | 2 +- 41 files changed, 41 insertions(+), 41 deletions(-) diff --git a/components/slack/actions/add-emoji-reaction/add-emoji-reaction.mjs b/components/slack/actions/add-emoji-reaction/add-emoji-reaction.mjs index b2732b3128d5d..a291a44d3eab8 100644 --- a/components/slack/actions/add-emoji-reaction/add-emoji-reaction.mjs +++ b/components/slack/actions/add-emoji-reaction/add-emoji-reaction.mjs @@ -4,7 +4,7 @@ export default { key: "slack-add-emoji-reaction", name: "Add Emoji Reaction", description: "Add an emoji reaction to a message. [See the documentation](https://api.slack.com/methods/reactions.add)", - version: "0.0.9", + version: "0.0.10", type: "action", props: { slack, diff --git a/components/slack/actions/archive-channel/archive-channel.mjs b/components/slack/actions/archive-channel/archive-channel.mjs index 338d1e1062109..b17170b6828f1 100644 --- a/components/slack/actions/archive-channel/archive-channel.mjs +++ b/components/slack/actions/archive-channel/archive-channel.mjs @@ -5,7 +5,7 @@ export default { key: "slack-archive-channel", name: "Archive Channel", description: "Archive a channel. [See the documentation](https://api.slack.com/methods/conversations.archive)", - version: "0.0.17", + version: "0.0.18", type: "action", props: { slack, diff --git a/components/slack/actions/create-channel/create-channel.mjs b/components/slack/actions/create-channel/create-channel.mjs index c4584dcd2c104..c2b2503b00510 100644 --- a/components/slack/actions/create-channel/create-channel.mjs +++ b/components/slack/actions/create-channel/create-channel.mjs @@ -4,7 +4,7 @@ export default { key: "slack-create-channel", name: "Create a Channel", description: "Create a new channel. [See the documentation](https://api.slack.com/methods/conversations.create)", - version: "0.0.18", + version: "0.0.19", type: "action", props: { slack, diff --git a/components/slack/actions/create-reminder/create-reminder.mjs b/components/slack/actions/create-reminder/create-reminder.mjs index 8a63fa26b91e0..66124ff94ec53 100644 --- a/components/slack/actions/create-reminder/create-reminder.mjs +++ b/components/slack/actions/create-reminder/create-reminder.mjs @@ -4,7 +4,7 @@ export default { key: "slack-create-reminder", name: "Create Reminder", description: "Create a reminder. [See the documentation](https://api.slack.com/methods/reminders.add)", - version: "0.0.18", + version: "0.0.19", type: "action", props: { slack, diff --git a/components/slack/actions/delete-file/delete-file.mjs b/components/slack/actions/delete-file/delete-file.mjs index fa6f8b18cfb60..3a13d1ade0aa1 100644 --- a/components/slack/actions/delete-file/delete-file.mjs +++ b/components/slack/actions/delete-file/delete-file.mjs @@ -4,7 +4,7 @@ export default { key: "slack-delete-file", name: "Delete File", description: "Delete a file. [See the documentation](https://api.slack.com/methods/files.delete)", - version: "0.0.17", + version: "0.0.18", type: "action", props: { slack, diff --git a/components/slack/actions/delete-message/delete-message.mjs b/components/slack/actions/delete-message/delete-message.mjs index e06306b787ad6..4ac4d24265c99 100644 --- a/components/slack/actions/delete-message/delete-message.mjs +++ b/components/slack/actions/delete-message/delete-message.mjs @@ -4,7 +4,7 @@ export default { key: "slack-delete-message", name: "Delete Message", description: "Delete a message. [See the documentation](https://api.slack.com/methods/chat.delete)", - version: "0.0.17", + version: "0.0.18", type: "action", props: { slack, diff --git a/components/slack/actions/find-message/find-message.mjs b/components/slack/actions/find-message/find-message.mjs index cd2bd970de76c..898ea2385a717 100644 --- a/components/slack/actions/find-message/find-message.mjs +++ b/components/slack/actions/find-message/find-message.mjs @@ -4,7 +4,7 @@ export default { key: "slack-find-message", name: "Find Message", description: "Find a Slack message. [See the documentation](https://api.slack.com/methods/search.messages)", - version: "0.0.17", + version: "0.0.18", type: "action", props: { slack, diff --git a/components/slack/actions/find-user-by-email/find-user-by-email.mjs b/components/slack/actions/find-user-by-email/find-user-by-email.mjs index 0c343e889f901..7ac42bc011373 100644 --- a/components/slack/actions/find-user-by-email/find-user-by-email.mjs +++ b/components/slack/actions/find-user-by-email/find-user-by-email.mjs @@ -4,7 +4,7 @@ export default { key: "slack-find-user-by-email", name: "Find User by Email", description: "Find a user by matching against their email. [See the documentation](https://api.slack.com/methods/users.lookupByEmail)", - version: "0.0.17", + version: "0.0.18", type: "action", props: { slack, diff --git a/components/slack/actions/get-file/get-file.mjs b/components/slack/actions/get-file/get-file.mjs index 6f12424e3b0cd..41e7064afb16e 100644 --- a/components/slack/actions/get-file/get-file.mjs +++ b/components/slack/actions/get-file/get-file.mjs @@ -4,7 +4,7 @@ export default { key: "slack-get-file", name: "Get File", description: "Return information about a file. [See the documentation](https://api.slack.com/methods/files.info)", - version: "0.0.17", + version: "0.0.18", type: "action", props: { slack, diff --git a/components/slack/actions/invite-user-to-channel/invite-user-to-channel.mjs b/components/slack/actions/invite-user-to-channel/invite-user-to-channel.mjs index c160ecff84cfe..863e95d41716d 100644 --- a/components/slack/actions/invite-user-to-channel/invite-user-to-channel.mjs +++ b/components/slack/actions/invite-user-to-channel/invite-user-to-channel.mjs @@ -4,7 +4,7 @@ export default { key: "slack-invite-user-to-channel", name: "Invite User to Channel", description: "Invite a user to an existing channel. [See the documentation](https://api.slack.com/methods/conversations.invite)", - version: "0.0.17", + version: "0.0.18", type: "action", props: { slack, diff --git a/components/slack/actions/kick-user/kick-user.mjs b/components/slack/actions/kick-user/kick-user.mjs index d40974adcd942..797e4f4719bfe 100644 --- a/components/slack/actions/kick-user/kick-user.mjs +++ b/components/slack/actions/kick-user/kick-user.mjs @@ -5,7 +5,7 @@ export default { key: "slack-kick-user", name: "Kick User", description: "Remove a user from a conversation. [See the documentation](https://api.slack.com/methods/conversations.kick)", - version: "0.0.17", + version: "0.0.18", type: "action", props: { slack, diff --git a/components/slack/actions/list-channels/list-channels.mjs b/components/slack/actions/list-channels/list-channels.mjs index 10e6e21119cd0..cfd21f29cba12 100644 --- a/components/slack/actions/list-channels/list-channels.mjs +++ b/components/slack/actions/list-channels/list-channels.mjs @@ -4,7 +4,7 @@ export default { key: "slack-list-channels", name: "List Channels", description: "Return a list of all channels in a workspace. [See the documentation](https://api.slack.com/methods/conversations.list)", - version: "0.0.17", + version: "0.0.18", type: "action", props: { slack, diff --git a/components/slack/actions/list-files/list-files.mjs b/components/slack/actions/list-files/list-files.mjs index 9210e99d749a2..0cf60bceaa1e4 100644 --- a/components/slack/actions/list-files/list-files.mjs +++ b/components/slack/actions/list-files/list-files.mjs @@ -4,7 +4,7 @@ export default { key: "slack-list-files", name: "List Files", description: "Return a list of files within a team. [See the documentation](https://api.slack.com/methods/files.list)", - version: "0.0.45", + version: "0.0.46", type: "action", props: { slack, diff --git a/components/slack/actions/list-group-members/list-group-members.mjs b/components/slack/actions/list-group-members/list-group-members.mjs index f8efc84c8d6fd..78eb298ce5443 100644 --- a/components/slack/actions/list-group-members/list-group-members.mjs +++ b/components/slack/actions/list-group-members/list-group-members.mjs @@ -4,7 +4,7 @@ export default { key: "slack-list-group-members", name: "List Group Members", description: "List all users in a User Group. [See the documentation](https://api.slack.com/methods/usergroups.users.list)", - version: "0.0.2", + version: "0.0.3", type: "action", props: { slack, diff --git a/components/slack/actions/list-members-in-channel/list-members-in-channel.mjs b/components/slack/actions/list-members-in-channel/list-members-in-channel.mjs index 7f2b1952f5e3c..dd99a36543e46 100644 --- a/components/slack/actions/list-members-in-channel/list-members-in-channel.mjs +++ b/components/slack/actions/list-members-in-channel/list-members-in-channel.mjs @@ -4,7 +4,7 @@ export default { key: "slack-list-members-in-channel", name: "List Members in Channel", description: "Retrieve members of a channel. [See the documentation](https://api.slack.com/methods/conversations.members)", - version: "0.0.17", + version: "0.0.18", type: "action", props: { slack, diff --git a/components/slack/actions/list-replies/list-replies.mjs b/components/slack/actions/list-replies/list-replies.mjs index b8532a59c68f2..4ce4a08ff450c 100644 --- a/components/slack/actions/list-replies/list-replies.mjs +++ b/components/slack/actions/list-replies/list-replies.mjs @@ -4,7 +4,7 @@ export default { key: "slack-list-replies", name: "List Replies", description: "Retrieve a thread of messages posted to a conversation. [See the documentation](https://api.slack.com/methods/conversations.replies)", - version: "0.0.17", + version: "0.0.18", type: "action", props: { slack, diff --git a/components/slack/actions/list-users/list-users.mjs b/components/slack/actions/list-users/list-users.mjs index c2b7a9b0eed79..2123bed9bf3f2 100644 --- a/components/slack/actions/list-users/list-users.mjs +++ b/components/slack/actions/list-users/list-users.mjs @@ -4,7 +4,7 @@ export default { key: "slack-list-users", name: "List Users", description: "Return a list of all users in a workspace. [See the documentation](https://api.slack.com/methods/users.list)", - version: "0.0.17", + version: "0.0.18", type: "action", props: { slack, diff --git a/components/slack/actions/reply-to-a-message/reply-to-a-message.mjs b/components/slack/actions/reply-to-a-message/reply-to-a-message.mjs index 1457716f4a8d8..c58653fbc6dff 100644 --- a/components/slack/actions/reply-to-a-message/reply-to-a-message.mjs +++ b/components/slack/actions/reply-to-a-message/reply-to-a-message.mjs @@ -6,7 +6,7 @@ export default { key: "slack-reply-to-a-message", name: "Reply to a Message Thread", description: "Send a message as a threaded reply. See [postMessage](https://api.slack.com/methods/chat.postMessage) or [scheduleMessage](https://api.slack.com/methods/chat.scheduleMessage) docs here", - version: "0.1.22", + version: "0.1.23", type: "action", props: { slack: common.props.slack, diff --git a/components/slack/actions/send-large-message/send-large-message.mjs b/components/slack/actions/send-large-message/send-large-message.mjs index 0330a32466ad2..259a668327d26 100644 --- a/components/slack/actions/send-large-message/send-large-message.mjs +++ b/components/slack/actions/send-large-message/send-large-message.mjs @@ -5,7 +5,7 @@ export default { key: "slack-send-large-message", name: "Send a Large Message (3000+ characters)", description: "Send a large message (more than 3000 characters) to a channel, group or user. See [postMessage](https://api.slack.com/methods/chat.postMessage) or [scheduleMessage](https://api.slack.com/methods/chat.scheduleMessage) docs here", - version: "0.0.17", + version: "0.0.18", type: "action", props: { slack: common.props.slack, diff --git a/components/slack/actions/send-message/send-message.mjs b/components/slack/actions/send-message/send-message.mjs index ee4077def19fb..cdadf318a4455 100644 --- a/components/slack/actions/send-message/send-message.mjs +++ b/components/slack/actions/send-message/send-message.mjs @@ -6,7 +6,7 @@ export default { key: "slack-send-message", name: "Send Message", description: "Send a message to a user, group, private channel or public channel. [See the documentation](https://api.slack.com/methods/chat.postMessage)", - version: "0.0.12", + version: "0.0.13", type: "action", props: { slack: common.props.slack, diff --git a/components/slack/actions/set-channel-description/set-channel-description.mjs b/components/slack/actions/set-channel-description/set-channel-description.mjs index 1740b9e067e47..2382ef046de09 100644 --- a/components/slack/actions/set-channel-description/set-channel-description.mjs +++ b/components/slack/actions/set-channel-description/set-channel-description.mjs @@ -4,7 +4,7 @@ export default { key: "slack-set-channel-description", name: "Set Channel Description", description: "Change the description or purpose of a channel. [See the documentation](https://api.slack.com/methods/conversations.setPurpose)", - version: "0.0.2", + version: "0.0.3", type: "action", props: { slack, diff --git a/components/slack/actions/set-channel-topic/set-channel-topic.mjs b/components/slack/actions/set-channel-topic/set-channel-topic.mjs index 21b7550c6ee25..408e57ab291f0 100644 --- a/components/slack/actions/set-channel-topic/set-channel-topic.mjs +++ b/components/slack/actions/set-channel-topic/set-channel-topic.mjs @@ -4,7 +4,7 @@ export default { key: "slack-set-channel-topic", name: "Set Channel Topic", description: "Set the topic on a selected channel. [See the documentation](https://api.slack.com/methods/conversations.setTopic)", - version: "0.0.17", + version: "0.0.18", type: "action", props: { slack, diff --git a/components/slack/actions/set-status/set-status.mjs b/components/slack/actions/set-status/set-status.mjs index f564dc483cc78..40e9f39f25015 100644 --- a/components/slack/actions/set-status/set-status.mjs +++ b/components/slack/actions/set-status/set-status.mjs @@ -4,7 +4,7 @@ export default { key: "slack-set-status", name: "Set Status", description: "Set the current status for a user. [See the documentation](https://api.slack.com/methods/users.profile.set)", - version: "0.0.2", + version: "0.0.3", type: "action", props: { slack, diff --git a/components/slack/actions/update-group-members/update-group-members.mjs b/components/slack/actions/update-group-members/update-group-members.mjs index d4c5d776a1b77..dbda6cbca46c6 100644 --- a/components/slack/actions/update-group-members/update-group-members.mjs +++ b/components/slack/actions/update-group-members/update-group-members.mjs @@ -4,7 +4,7 @@ export default { key: "slack-update-group-members", name: "Update Groups Members", description: "Update the list of users for a User Group. [See the documentation](https://api.slack.com/methods/usergroups.users.update)", - version: "0.0.2", + version: "0.0.3", type: "action", props: { slack, diff --git a/components/slack/actions/update-message/update-message.mjs b/components/slack/actions/update-message/update-message.mjs index 747a63e6532de..2d381f6907041 100644 --- a/components/slack/actions/update-message/update-message.mjs +++ b/components/slack/actions/update-message/update-message.mjs @@ -4,7 +4,7 @@ export default { key: "slack-update-message", name: "Update Message", description: "Update a message. [See the documentation](https://api.slack.com/methods/chat.update)", - version: "0.1.17", + version: "0.1.18", type: "action", props: { slack, diff --git a/components/slack/actions/update-profile/update-profile.mjs b/components/slack/actions/update-profile/update-profile.mjs index 4b512494e6ddb..b649007a264e6 100644 --- a/components/slack/actions/update-profile/update-profile.mjs +++ b/components/slack/actions/update-profile/update-profile.mjs @@ -5,7 +5,7 @@ export default { key: "slack-update-profile", name: "Update Profile", description: "Update basic profile field such as name or title. [See the documentation](https://api.slack.com/methods/users.profile.set)", - version: "0.0.17", + version: "0.0.18", type: "action", props: { slack, diff --git a/components/slack/actions/upload-file/upload-file.mjs b/components/slack/actions/upload-file/upload-file.mjs index 769ce54741195..003a5a0688cdc 100644 --- a/components/slack/actions/upload-file/upload-file.mjs +++ b/components/slack/actions/upload-file/upload-file.mjs @@ -6,7 +6,7 @@ export default { key: "slack-upload-file", name: "Upload File", description: "Upload a file. [See the documentation](https://api.slack.com/methods/files.upload)", - version: "0.0.20", + version: "0.0.21", type: "action", props: { slack, diff --git a/components/slack/actions/verify-slack-signature/verify-slack-signature.mjs b/components/slack/actions/verify-slack-signature/verify-slack-signature.mjs index 9bca6c22b66a8..3629c92cd8166 100644 --- a/components/slack/actions/verify-slack-signature/verify-slack-signature.mjs +++ b/components/slack/actions/verify-slack-signature/verify-slack-signature.mjs @@ -5,7 +5,7 @@ export default { key: "slack-verify-slack-signature", name: "Verify Slack Signature", description: "Verifying requests from Slack, slack signs its requests using a secret that's unique to your app. [See the documentation](https://api.slack.com/authentication/verifying-requests-from-slack)", - version: "0.0.10", + version: "0.0.11", type: "action", props: { slack, diff --git a/components/slack/package.json b/components/slack/package.json index f1e9d09c7c126..52dde1eaf3fb9 100644 --- a/components/slack/package.json +++ b/components/slack/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/slack", - "version": "0.6.2", + "version": "0.6.3", "description": "Pipedream Slack Components", "main": "slack.app.mjs", "keywords": [ diff --git a/components/slack/sources/new-channel-created/new-channel-created.mjs b/components/slack/sources/new-channel-created/new-channel-created.mjs index bd1e965bee853..0951ee895720b 100644 --- a/components/slack/sources/new-channel-created/new-channel-created.mjs +++ b/components/slack/sources/new-channel-created/new-channel-created.mjs @@ -5,7 +5,7 @@ export default { ...common, key: "slack-new-channel-created", name: "New Channel Created (Instant)", - version: "0.0.4", + version: "0.0.5", description: "Emit new event when a new channel is created.", type: "source", dedupe: "unique", diff --git a/components/slack/sources/new-direct-message/new-direct-message.mjs b/components/slack/sources/new-direct-message/new-direct-message.mjs index a3fb2ddf68fa5..330c7d3e66b2d 100644 --- a/components/slack/sources/new-direct-message/new-direct-message.mjs +++ b/components/slack/sources/new-direct-message/new-direct-message.mjs @@ -5,7 +5,7 @@ export default { ...common, key: "slack-new-direct-message", name: "New Direct Message (Instant)", - version: "1.0.16", + version: "1.0.17", description: "Emit new event when a message was posted in a direct message channel", type: "source", dedupe: "unique", diff --git a/components/slack/sources/new-interaction-event-received/new-interaction-event-received.mjs b/components/slack/sources/new-interaction-event-received/new-interaction-event-received.mjs index 686af6931cbe4..a651e1e36d451 100644 --- a/components/slack/sources/new-interaction-event-received/new-interaction-event-received.mjs +++ b/components/slack/sources/new-interaction-event-received/new-interaction-event-received.mjs @@ -3,7 +3,7 @@ import sampleEmit from "./test-event.mjs"; export default { name: "New Interaction Events (Instant)", - version: "0.0.14", + version: "0.0.15", key: "slack-new-interaction-event-received", description: "Emit new events on new Slack [interactivity events](https://api.slack.com/interactivity) sourced from [Block Kit interactive elements](https://api.slack.com/interactivity/components), [Slash commands](https://api.slack.com/interactivity/slash-commands), or [Shortcuts](https://api.slack.com/interactivity/shortcuts).", type: "source", diff --git a/components/slack/sources/new-keyword-mention/new-keyword-mention.mjs b/components/slack/sources/new-keyword-mention/new-keyword-mention.mjs index d69be5e348f01..a0c9856ccbd94 100644 --- a/components/slack/sources/new-keyword-mention/new-keyword-mention.mjs +++ b/components/slack/sources/new-keyword-mention/new-keyword-mention.mjs @@ -6,7 +6,7 @@ export default { ...common, key: "slack-new-keyword-mention", name: "New Keyword Mention (Instant)", - version: "0.0.2", + version: "0.0.3", description: "Emit new event when a specific keyword is mentioned in a channel", type: "source", dedupe: "unique", diff --git a/components/slack/sources/new-message-in-channels/new-message-in-channels.mjs b/components/slack/sources/new-message-in-channels/new-message-in-channels.mjs index cef02aabbcc5f..98eb9a4de15fb 100644 --- a/components/slack/sources/new-message-in-channels/new-message-in-channels.mjs +++ b/components/slack/sources/new-message-in-channels/new-message-in-channels.mjs @@ -6,7 +6,7 @@ export default { ...common, key: "slack-new-message-in-channels", name: "New Message In Channels (Instant)", - version: "1.0.18", + version: "1.0.19", description: "Emit new event when a new message is posted to one or more channels", type: "source", dedupe: "unique", diff --git a/components/slack/sources/new-reaction-added/new-reaction-added.mjs b/components/slack/sources/new-reaction-added/new-reaction-added.mjs index 687fdef36e2fa..346e2ef3fab36 100644 --- a/components/slack/sources/new-reaction-added/new-reaction-added.mjs +++ b/components/slack/sources/new-reaction-added/new-reaction-added.mjs @@ -5,7 +5,7 @@ export default { ...common, key: "slack-new-reaction-added", name: "New Reaction Added (Instant)", - version: "1.1.20", + version: "1.1.21", description: "Emit new event when a member has added an emoji reaction to a message", type: "source", dedupe: "unique", diff --git a/components/slack/sources/new-user-mention/new-user-mention.mjs b/components/slack/sources/new-user-mention/new-user-mention.mjs index 2eaeacd93145b..d72819f0bbdf5 100644 --- a/components/slack/sources/new-user-mention/new-user-mention.mjs +++ b/components/slack/sources/new-user-mention/new-user-mention.mjs @@ -6,7 +6,7 @@ export default { ...common, key: "slack-new-user-mention", name: "New User Mention (Instant)", - version: "0.0.2", + version: "0.0.3", description: "Emit new event when a username or specific keyword is mentioned in a channel", type: "source", dedupe: "unique", diff --git a/components/slack_bot/actions/reply-to-a-message/reply-to-a-message.mjs b/components/slack_bot/actions/reply-to-a-message/reply-to-a-message.mjs index f0dbf1fc62a71..e6bb725002c45 100644 --- a/components/slack_bot/actions/reply-to-a-message/reply-to-a-message.mjs +++ b/components/slack_bot/actions/reply-to-a-message/reply-to-a-message.mjs @@ -14,5 +14,5 @@ export default { }), key: "slack_bot-reply-to-a-message", description: "Send a message as a threaded reply (Bot). See [postMessage](https://api.slack.com/methods/chat.postMessage) or [scheduleMessage](https://api.slack.com/methods/chat.scheduleMessage) docs here", - version: "0.0.3", + version: "0.0.4", }; diff --git a/components/slack_bot/actions/send-large-message/send-large-message.mjs b/components/slack_bot/actions/send-large-message/send-large-message.mjs index 5791146012515..264b592c698c9 100644 --- a/components/slack_bot/actions/send-large-message/send-large-message.mjs +++ b/components/slack_bot/actions/send-large-message/send-large-message.mjs @@ -14,5 +14,5 @@ export default { }), key: "slack_bot-send-large-message", description: "Send a large message (more than 3000 characters) to a channel, group or user (Bot). See [postMessage](https://api.slack.com/methods/chat.postMessage) or [scheduleMessage](https://api.slack.com/methods/chat.scheduleMessage) docs here", - version: "0.0.3", + version: "0.0.4", }; diff --git a/components/slack_bot/actions/send-message-advanced/send-message-advanced.mjs b/components/slack_bot/actions/send-message-advanced/send-message-advanced.mjs index 8761fe2d488e7..decda437eb473 100644 --- a/components/slack_bot/actions/send-message-advanced/send-message-advanced.mjs +++ b/components/slack_bot/actions/send-message-advanced/send-message-advanced.mjs @@ -14,5 +14,5 @@ export default { }), key: "slack_bot-send-message-advanced", description: "Customize advanced setttings and send a message to a channel, group or user (Bot). See [postMessage](https://api.slack.com/methods/chat.postMessage) or [scheduleMessage](https://api.slack.com/methods/chat.scheduleMessage) docs here", - version: "0.0.3", + version: "0.0.4", }; diff --git a/components/slack_bot/actions/send-message/send-message.mjs b/components/slack_bot/actions/send-message/send-message.mjs index 114102c209fa2..de57af6ca782e 100644 --- a/components/slack_bot/actions/send-message/send-message.mjs +++ b/components/slack_bot/actions/send-message/send-message.mjs @@ -14,5 +14,5 @@ export default { }), key: "slack_bot-send-message", description: "Send a message to a user, group, private channel or public channel (Bot). See [postMessage](https://api.slack.com/methods/chat.postMessage) or [scheduleMessage](https://api.slack.com/methods/chat.scheduleMessage) docs here", - version: "0.0.2", + version: "0.0.3", }; diff --git a/components/slack_bot/package.json b/components/slack_bot/package.json index 589c960cee38a..ac759119d4272 100644 --- a/components/slack_bot/package.json +++ b/components/slack_bot/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/slack_bot", - "version": "0.5.1", + "version": "0.5.2", "description": "Pipedream Slack_bot Components", "main": "slack_bot.app.mjs", "keywords": [ From ac0d4cbefa6419095c680144ed75304fe709eda2 Mon Sep 17 00:00:00 2001 From: michelle0927 Date: Thu, 6 Jun 2024 13:26:13 -0400 Subject: [PATCH 3/3] updates --- .../slack/actions/common/send-message.mjs | 23 ++++++++++----- .../reply-to-a-message/reply-to-a-message.mjs | 28 +++++++++++-------- .../send-large-message/send-large-message.mjs | 27 ++++++++++++++---- .../send-message-advanced.mjs | 6 ---- components/slack/slack.app.mjs | 10 +++---- 5 files changed, 58 insertions(+), 36 deletions(-) diff --git a/components/slack/actions/common/send-message.mjs b/components/slack/actions/common/send-message.mjs index bd10d44017542..72e3a2cc09096 100644 --- a/components/slack/actions/common/send-message.mjs +++ b/components/slack/actions/common/send-message.mjs @@ -69,6 +69,13 @@ export default { optional: true, hidden: true, }, + thread_broadcast: { + propDefinition: [ + slack, + "thread_broadcast", + ], + hidden: true, + }, addMessageMetadata: { type: "boolean", label: "Add Message Metadata", @@ -115,6 +122,7 @@ export default { async additionalProps(props) { if (this.conversation && this.replyToThread) { props.thread_ts.hidden = false; + props.thread_broadcast.hidden = false; } if (this.customizeBotSettings) { props.username.hidden = false; @@ -214,7 +222,7 @@ export default { mrkdwn: this.mrkdwn, blocks, link_names: this.link_names, - thread_broadcast: this.thread_broadcast, + reply_broadcast: this.thread_broadcast, thread_ts: this.thread_ts, metadata: this.metadata || null, }; @@ -227,12 +235,13 @@ export default { const { channel } = await this.slack.conversationsInfo({ channel: resp.channel, }); - const usernames = await this.slack.userNames(); - const channelName = channel.is_im - ? `@${usernames[channel.user]}` - : channel.is_mpim - ? channel.purpose.value - : channel.name; + let channelName = `#${channel?.name}`; + if (channel.is_im) { + const usernames = await this.slack.userNames(); + channelName = `@${usernames[channel.user]}`; + } else if (channel.is_mpim) { + channelName = `@${channel.purpose.value}`; + } $.export("$summary", `Successfully sent a message to ${channelName}`); return resp; }, diff --git a/components/slack/actions/reply-to-a-message/reply-to-a-message.mjs b/components/slack/actions/reply-to-a-message/reply-to-a-message.mjs index c58653fbc6dff..caa210686cd0a 100644 --- a/components/slack/actions/reply-to-a-message/reply-to-a-message.mjs +++ b/components/slack/actions/reply-to-a-message/reply-to-a-message.mjs @@ -16,33 +16,37 @@ export default { "conversation", ], }, - thread_ts: { + text: { propDefinition: [ slack, - "messageTs", - (c) => ({ - channel: c.conversation, - }), + "text", ], }, - thread_broadcast: { + mrkdwn: { propDefinition: [ slack, - "thread_broadcast", + "mrkdwn", ], }, - text: { + ...common.props, + replyToThread: { + ...common.props.replyToThread, + hidden: true, + }, + thread_ts: { propDefinition: [ slack, - "text", + "messageTs", + (c) => ({ + channel: c.conversation, + }), ], }, - mrkdwn: { + thread_broadcast: { propDefinition: [ slack, - "mrkdwn", + "thread_broadcast", ], }, - ...common.props, }, }; diff --git a/components/slack/actions/send-large-message/send-large-message.mjs b/components/slack/actions/send-large-message/send-large-message.mjs index 259a668327d26..e5de4c09f4275 100644 --- a/components/slack/actions/send-large-message/send-large-message.mjs +++ b/components/slack/actions/send-large-message/send-large-message.mjs @@ -38,10 +38,12 @@ export default { let metadataEventPayload; if (this.metadata_event_type) { - try { - metadataEventPayload = JSON.parse(this.metadata_event_payload); - } catch (error) { - throw new Error(`Invalid JSON in metadata_event_payload: ${error.message}`); + if (typeof this.metadata_event_payload === "string") { + try { + metadataEventPayload = JSON.parse(this.metadata_event_payload); + } catch (error) { + throw new Error(`Invalid JSON in metadata_event_payload: ${error.message}`); + } } this.metadata = { @@ -59,6 +61,10 @@ export default { icon_url: this.icon_url, mrkdwn: this.mrkdwn, metadata: this.metadata || null, + reply_broadcast: this.thread_broadcast, + thread_ts: this.thread_ts, + unfurl_links: this.unfurl_links, + unfurl_media: this.unfurl_media, }; let response; @@ -68,8 +74,17 @@ export default { } response = await this.slack.sdk().chat.postMessage(obj); - - $.export("$summary", "Successfully sent a message to channel ID " + this.conversation); + const { channel } = await this.slack.conversationsInfo({ + channel: response.channel, + }); + let channelName = `#${channel?.name}`; + if (channel.is_im) { + const usernames = await this.slack.userNames(); + channelName = `@${usernames[channel.user]}`; + } else if (channel.is_mpim) { + channelName = `@${channel.purpose.value}`; + } + $.export("$summary", `Successfully sent a message to ${channelName}`); return response; }, }; diff --git a/components/slack/actions/send-message-advanced/send-message-advanced.mjs b/components/slack/actions/send-message-advanced/send-message-advanced.mjs index 73802b46e4e5f..763abf0d70666 100644 --- a/components/slack/actions/send-message-advanced/send-message-advanced.mjs +++ b/components/slack/actions/send-message-advanced/send-message-advanced.mjs @@ -48,12 +48,6 @@ export default { "link_names", ], }, - thread_broadcast: { - propDefinition: [ - common.props.slack, - "thread_broadcast", - ], - }, ...common.props, ...buildBlocks.props, }, diff --git a/components/slack/slack.app.mjs b/components/slack/slack.app.mjs index 0961a30feccd5..e9fdcf9a9d523 100644 --- a/components/slack/slack.app.mjs +++ b/components/slack/slack.app.mjs @@ -352,7 +352,7 @@ export default { username: { type: "string", label: "Bot Username", - description: "Optionally customize your bot's user name (default is `Pipedream`). Must be used in conjunction with `as_user` set to false, otherwise ignored.", + description: "Optionally customize your bot's user name (default is `Pipedream`). Must be used in conjunction with `Send as User` set to false, otherwise ignored.", optional: true, }, blocks: { @@ -364,7 +364,7 @@ export default { icon_emoji: { type: "string", label: "Icon (emoji)", - description: "Optionally provide an emoji to use as the icon for this message. E.g., `:fire:` Overrides `icon_url`. Must be used in conjunction with `as_user` set to `false`, otherwise ignored.", + description: "Optionally provide an emoji to use as the icon for this message. E.g., `:fire:` Overrides `icon_url`. Must be used in conjunction with `Send as User` set to `false`, otherwise ignored.", optional: true, async options() { return await this.getCustomEmojis(); @@ -383,8 +383,8 @@ export default { }, thread_broadcast: { type: "boolean", - label: "Thread Broadcasts", - description: "Used in conjunction with thread_ts and indicates whether reply should be made visible to everyone in the channel or conversation. Defaults to false.", + label: "Send Channel Message", + description: "If `true`, posts in the thread and channel. Used in conjunction with `Message Timestamp` and indicates whether reply should be made visible to everyone in the channel. Defaults to `false`.", default: false, optional: true, }, @@ -397,7 +397,7 @@ export default { icon_url: { type: "string", label: "Icon (image URL)", - description: "Optionally provide an image URL to use as the icon for this message. Must be used in conjunction with `as_user` set to `false`, otherwise ignored.", + description: "Optionally provide an image URL to use as the icon for this message. Must be used in conjunction with `Send as User` set to `false`, otherwise ignored.", optional: true, }, initial_comment: {