Add Activepieces integration for workflow automation
- Add Activepieces fork with SmoothSchedule custom piece - Create integrations app with Activepieces service layer - Add embed token endpoint for iframe integration - Create Automations page with embedded workflow builder - Add sidebar visibility fix for embed mode - Add list inactive customers endpoint to Public API - Include SmoothSchedule triggers: event created/updated/cancelled - Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,158 @@
|
||||
{
|
||||
"Slack": "Slack",
|
||||
"Channel-based messaging platform": "Channel-based messaging platform",
|
||||
"Add Reaction to Message": "Add Reaction to Message",
|
||||
"Send Message To A User": "Send Message To A User",
|
||||
"Send Message To A Channel": "Send Message To A Channel",
|
||||
"Request Approval from A User": "Request Approval from A User",
|
||||
"Request Approval in a Channel": "Request Approval in a Channel",
|
||||
"Request Action from A User": "Request Action from A User",
|
||||
"Request Action in A Channel": "Request Action in A Channel",
|
||||
"Upload file": "Upload file",
|
||||
"Get File": "Get File",
|
||||
"Search messages": "Search messages",
|
||||
"Find User by Email": "Find User by Email",
|
||||
"Find User by Handle": "Find User by Handle",
|
||||
"Find User by ID": "Find User by ID",
|
||||
"Update message": "Update message",
|
||||
"Create Channel": "Create Channel",
|
||||
"Update Profile": "Update Profile",
|
||||
"Get channel history": "Get channel history",
|
||||
"Set User Status": "Set User Status",
|
||||
"Markdown to Slack format": "Markdown to Slack format",
|
||||
"Retrieve Thread Messages": "Retrieve Thread Messages",
|
||||
"Set Channel Topic": "Set Channel Topic",
|
||||
"Get Message by Timestamp": "Get Message by Timestamp",
|
||||
"Invite User to Channel": "Invite User to Channel",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Add an emoji reaction to a message.": "Add an emoji reaction to a message.",
|
||||
"Send message to a user": "Send message to a user",
|
||||
"Send message to a channel": "Send message to a channel",
|
||||
"Send approval message to a user and then wait until the message is approved or disapproved": "Send approval message to a user and then wait until the message is approved or disapproved",
|
||||
"Send approval message to a channel and then wait until the message is approved or disapproved": "Send approval message to a channel and then wait until the message is approved or disapproved",
|
||||
"Send a message to a user and wait until the user selects an action": "Send a message to a user and wait until the user selects an action",
|
||||
"Send a message in a channel and wait until an action is selected": "Send a message in a channel and wait until an action is selected",
|
||||
"Upload file without sharing it to a channel or user": "Upload file without sharing it to a channel or user",
|
||||
"Return information about a given file ID.": "Return information about a given file ID.",
|
||||
"Searches for messages matching a query": "Searches for messages matching a query",
|
||||
"Finds a user by matching against their email address.": "Finds a user by matching against their email address.",
|
||||
"Finds a user by matching against their Slack handle.": "Finds a user by matching against their Slack handle.",
|
||||
"Finds a user by their ID.": "Finds a user by their ID.",
|
||||
"Update an existing message": "Update an existing message",
|
||||
"Creates a new channel.": "Creates a new channel.",
|
||||
"Update basic profile field such as name or title.": "Update basic profile field such as name or title.",
|
||||
"Retrieve all messages from a specific channel (\"conversation\") between specified timestamps": "Retrieve all messages from a specific channel (\"conversation\") between specified timestamps",
|
||||
"Sets a user's custom status": "Sets a user's custom status",
|
||||
"Convert Markdown-formatted text to Slack's pseudo - markdown syntax": "Convert Markdown-formatted text to Slack's pseudo - markdown syntax",
|
||||
"Retrieves thread messages by channel and thread timestamp.": "Retrieves thread messages by channel and thread timestamp.",
|
||||
"Sets the topic on a selected channel.": "Sets the topic on a selected channel.",
|
||||
"Retrieves a specific message from a channel history using the message's timestamp.": "Retrieves a specific message from a channel history using the message's timestamp.",
|
||||
"Invites an existing User to an existing channel.": "Invites an existing User to an existing channel.",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"Markdown": "Markdown",
|
||||
"Channel": "Channel",
|
||||
"Message Timestamp": "Message Timestamp",
|
||||
"Reaction (emoji) name": "Reaction (emoji) name",
|
||||
"User": "User",
|
||||
"Message": "Message",
|
||||
"Username": "Username",
|
||||
"Profile Picture": "Profile Picture",
|
||||
"Block Kit blocks": "Block Kit blocks",
|
||||
"Attachment": "Attachment",
|
||||
"Thread ts": "Thread ts",
|
||||
"Unfurl Links": "Unfurl Links",
|
||||
"Action Buttons": "Action Buttons",
|
||||
"Title": "Title",
|
||||
"Filename": "Filename",
|
||||
"File ID": "File ID",
|
||||
"Search query": "Search query",
|
||||
"Email": "Email",
|
||||
"Handle": "Handle",
|
||||
"ID": "ID",
|
||||
"Channel Name": "Channel Name",
|
||||
"Is Private?": "Is Private?",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Oldest": "Oldest",
|
||||
"Latest": "Latest",
|
||||
"Inclusive": "Inclusive",
|
||||
"Include all metadata": "Include all metadata",
|
||||
"Text": "Text",
|
||||
"Emoji": "Emoji",
|
||||
"Expires at": "Expires at",
|
||||
"Markdown text": "Markdown text",
|
||||
"Topic": "Topic",
|
||||
"Method": "Method",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Query Parameters",
|
||||
"Body": "Body",
|
||||
"No Error on Failure": "No Error on Failure",
|
||||
"Timeout (in seconds)": "Timeout (in seconds)",
|
||||
"Use user token": "Use user token",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ",
|
||||
"You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'": "You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'",
|
||||
"Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.",
|
||||
"e.g.`thumbsup`": "e.g.`thumbsup`",
|
||||
"The username of the bot": "The username of the bot",
|
||||
"The profile picture of the bot": "The profile picture of the bot",
|
||||
"See https://api.slack.com/block-kit for specs": "See https://api.slack.com/block-kit for specs",
|
||||
"The text of your message": "The text of your message",
|
||||
"Provide the ts (timestamp) value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Provide the ts (timestamp) value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.",
|
||||
"You can pass the file ID from the New Message Trigger payload.": "You can pass the file ID from the New Message Trigger payload.",
|
||||
"User handle (display name), without the leading @": "User handle (display name), without the leading @",
|
||||
"Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.",
|
||||
"The updated text of your message": "The updated text of your message",
|
||||
"Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.": "Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.",
|
||||
"ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.": "ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.",
|
||||
"Only messages after this timestamp will be included in results": "Only messages after this timestamp will be included in results",
|
||||
"Only messages before this timestamp will be included in results. Default is the current time": "Only messages before this timestamp will be included in results. Default is the current time",
|
||||
"Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified": "Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified",
|
||||
"Return all metadata associated with each message": "Return all metadata associated with each message",
|
||||
"Emoji shortname (standard or custom), e.g. :tada: or :train:": "Emoji shortname (standard or custom), e.g. :tada: or :train:",
|
||||
"Unix timestamp - if not set, the status will not expire": "Unix timestamp - if not set, the status will not expire",
|
||||
"Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.",
|
||||
"Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.",
|
||||
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
|
||||
"Use user token instead of bot token": "Use user token instead of bot token",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD",
|
||||
"New Public Message Posted Anywhere": "New Public Message Posted Anywhere",
|
||||
"New Message Posted to Channel": "New Message Posted to Channel",
|
||||
"New Direct Message": "New Direct Message",
|
||||
"New Mention in Channel": "New Mention in Channel",
|
||||
"New Mention in Direct Message": "New Mention in Direct Message",
|
||||
"New Reaction": "New Reaction",
|
||||
"Channel created": "Channel created",
|
||||
"New Command in Channel": "New Command in Channel",
|
||||
"New Command in Direct Message": "New Command in Direct Message",
|
||||
"New User": "New User",
|
||||
"New Saved Message": "New Saved Message",
|
||||
"New Team Custom Emoji": "New Team Custom Emoji",
|
||||
"Triggers when a new message is posted to any channel.": "Triggers when a new message is posted to any channel.",
|
||||
"Triggers when a new message is posted to a specific #channel you choose.": "Triggers when a new message is posted to a specific #channel you choose.",
|
||||
"Triggers when a message was posted in a direct message channel.": "Triggers when a message was posted in a direct message channel.",
|
||||
"Triggers when a username is mentioned.": "Triggers when a username is mentioned.",
|
||||
"Triggers when a username is mentioned in a direct message channel.": "Triggers when a username is mentioned in a direct message channel.",
|
||||
"Triggers when a new reaction is added to a message": "Triggers when a new reaction is added to a message",
|
||||
"Triggers when a channel is created": "Triggers when a channel is created",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)": "Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.": "Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.",
|
||||
"Triggers when a new user is created / first joins your org.": "Triggers when a new user is created / first joins your org.",
|
||||
"Triggers when you save a message.": "Triggers when you save a message.",
|
||||
"Triggers when a custom emoji has been added to a team.": "Triggers when a custom emoji has been added to a team.",
|
||||
"Ignore Bot Messages ?": "Ignore Bot Messages ?",
|
||||
"Ignore Message from Yourself ?": "Ignore Message from Yourself ?",
|
||||
"Channels": "Channels",
|
||||
"Emojis (E.g fire, smile)": "Emojis (E.g fire, smile)",
|
||||
"Commands": "Commands",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}",
|
||||
"If no channel is selected, the flow will be triggered for username mentions in all channels": "If no channel is selected, the flow will be triggered for username mentions in all channels",
|
||||
"Select emojis to trigger on": "Select emojis to trigger on",
|
||||
"List of valid commands that the bot should respond to (e.g., help, ocr, remind)": "List of valid commands that the bot should respond to (e.g., help, ocr, remind)",
|
||||
"Enable link unfurling for this message": "Enable link unfurling for this message",
|
||||
"If no channel is selected, the flow will be triggered for commands in all channels": "If no channel is selected, the flow will be triggered for commands in all channels"
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
{
|
||||
"Channel-based messaging platform": "Channel-basierte Messaging-Plattform",
|
||||
"Add Reaction to Message": "Antwort zur Nachricht hinzufügen",
|
||||
"Send Message To A User": "Nachricht an einen Benutzer senden",
|
||||
"Send Message To A Channel": "Nachricht an einen Kanal senden",
|
||||
"Request Approval from A User": "Genehmigung von einem Benutzer anfordern",
|
||||
"Request Approval in a Channel": "Genehmigung in einem Kanal anfordern",
|
||||
"Request Action from A User": "Anfrage-Aktion von einem Benutzer",
|
||||
"Request Action in A Channel": "Aktion in einem Kanal anfordern",
|
||||
"Upload file": "Datei hochladen",
|
||||
"Get File": "Datei abrufen",
|
||||
"Search messages": "Nachrichten durchsuchen",
|
||||
"Find User by Email": "Benutzer per E-Mail finden",
|
||||
"Find User by Handle": "Benutzer nach Handle suchen",
|
||||
"Find User by ID": "Benutzer über ID finden",
|
||||
"List users": "Benutzer auflisten",
|
||||
"Update message": "Nachricht aktualisieren",
|
||||
"Create Channel": "Kanal erstellen",
|
||||
"Update Profile": "Profil aktualisieren",
|
||||
"Get channel history": "Senderverlauf erhalten",
|
||||
"Set User Status": "Benutzerstatus festlegen",
|
||||
"Markdown to Slack format": "Markdown to Slack format",
|
||||
"Retrieve Thread Messages": "Thread-Nachrichten abrufen",
|
||||
"Set Channel Topic": "Kanalthema festlegen",
|
||||
"Get Message by Timestamp": "Nachricht nach Zeitstempel holen",
|
||||
"Invite User to Channel": "Benutzer in Kanal einladen",
|
||||
"Custom API Call": "Eigener API-Aufruf",
|
||||
"Add an emoji reaction to a message.": "Füge eine Emoji-Reaktion zu einer Nachricht hinzu.",
|
||||
"Send message to a user": "Nachricht an einen Benutzer senden",
|
||||
"Send message to a channel": "Nachricht an einen Kanal senden",
|
||||
"Send approval message to a user and then wait until the message is approved or disapproved": "Senden Sie eine Bestätigungsnachricht an einen Benutzer und warten Sie, bis die Nachricht genehmigt oder abgelehnt wurde",
|
||||
"Send approval message to a channel and then wait until the message is approved or disapproved": "Senden Sie eine Bestätigungsnachricht an einen Kanal und warten Sie, bis die Nachricht genehmigt oder abgelehnt wurde",
|
||||
"Send a message to a user and wait until the user selects an action": "Senden Sie eine Nachricht an einen Benutzer und warten Sie, bis der Benutzer eine Aktion ausgewählt hat",
|
||||
"Send a message in a channel and wait until an action is selected": "Sende eine Nachricht in einem Kanal und warte, bis eine Aktion ausgewählt ist",
|
||||
"Upload file without sharing it to a channel or user": "Datei hochladen, ohne sie in einen Kanal oder Benutzer zu teilen",
|
||||
"Return information about a given file ID.": "Gibt Informationen über eine angegebene Datei-ID zurück.",
|
||||
"Searches for messages matching a query": "Sucht nach Nachrichten, die einer Abfrage entsprechen",
|
||||
"Finds a user by matching against their email address.": "Findet einen Benutzer, indem er mit seiner E-Mail-Adresse übereinstimmt.",
|
||||
"Finds a user by matching against their Slack handle.": "Findet einen Benutzer, indem er mit seinem Slack Handle übereinstimmt.",
|
||||
"Finds a user by their ID.": "Findet einen Benutzer nach seiner ID.",
|
||||
"List all users of the workspace": "Alle Benutzer des Arbeitsbereichs auflisten",
|
||||
"Update an existing message": "Vorhandene Nachricht aktualisieren",
|
||||
"Creates a new channel.": "Erstellt einen neuen Kanal.",
|
||||
"Update basic profile field such as name or title.": "Grundlegendes Profilfeld wie Name oder Titel aktualisieren.",
|
||||
"Retrieve all messages from a specific channel (\"conversation\") between specified timestamps": "Alle Nachrichten von einem bestimmten Kanal (\"Konversation\") zwischen angegebenen Zeitstempel abrufen",
|
||||
"Sets a user's custom status": "Setzt den benutzerdefinierten Status eines Benutzers",
|
||||
"Convert Markdown-formatted text to Slack's pseudo - markdown syntax": "Markdown-formatierter Text in Slack's Pseudo - Markdown-Syntax umwandeln",
|
||||
"Retrieves thread messages by channel and thread timestamp.": "Ruft Thread-Nachrichten nach Kanal und Thread-Zeitstempel ab.",
|
||||
"Sets the topic on a selected channel.": "Setzt das Thema in einem ausgewählten Kanal.",
|
||||
"Retrieves a specific message from a channel history using the message's timestamp.": "Ruft eine bestimmte Nachricht aus einem Kanalverlauf mit dem Zeitstempel der Nachricht ab.",
|
||||
"Invites an existing User to an existing channel.": "Lädt einen existierenden Benutzer in einen existierenden Channel.",
|
||||
"Make a custom API call to a specific endpoint": "Einen benutzerdefinierten API-Aufruf an einen bestimmten Endpunkt machen",
|
||||
"Markdown": "Markdown",
|
||||
"Channel": "Kanal",
|
||||
"Message Timestamp": "Nachrichtenzeitstempel",
|
||||
"Reaction (emoji) name": "Reaktionsname (Emoji)",
|
||||
"User": "Benutzer",
|
||||
"Message": "Nachricht",
|
||||
"Username": "Benutzername",
|
||||
"Profile Picture": "Profilbild",
|
||||
"Mention flow of origin?": "Herkunftsfluss?",
|
||||
"Block Kit blocks": "Block Kit Blöcke",
|
||||
"Unfurl Links": "Links entsperren",
|
||||
"Attachment": "Anhang",
|
||||
"Thread ts": "Thread ts",
|
||||
"Broadcast reply to channel": "Antwort an den Kanal senden",
|
||||
"Action Buttons": "Aktionstasten",
|
||||
"Title": "Titel",
|
||||
"Filename": "Dateiname",
|
||||
"File ID": "Datei-ID",
|
||||
"Search query": "Suchanfrage",
|
||||
"Email": "E-Mail",
|
||||
"Handle": "Handle",
|
||||
"ID": "ID",
|
||||
"Include bots?": "Bots einbeziehen?",
|
||||
"Include disabled users?": "Deaktivierte Benutzer einbeziehen?",
|
||||
"Channel Name": "Kanalname",
|
||||
"Is Private?": "Ist privat?",
|
||||
"First Name": "Vorname",
|
||||
"Last Name": "Nachname",
|
||||
"Oldest": "Älteste",
|
||||
"Latest": "Neueste",
|
||||
"Inclusive": "Inklusiv",
|
||||
"Include all metadata": "Alle Metadaten einbeziehen",
|
||||
"Text": "Text",
|
||||
"Emoji": "Emoji",
|
||||
"Expires at": "Gültig bis",
|
||||
"Markdown text": "Markdown Text",
|
||||
"Topic": "Thema",
|
||||
"Method": "Methode",
|
||||
"Headers": "Kopfzeilen",
|
||||
"Query Parameters": "Abfrageparameter",
|
||||
"Body": "Körper",
|
||||
"Response is Binary ?": "Antwort ist binär?",
|
||||
"No Error on Failure": "Kein Fehler bei Fehler",
|
||||
"Timeout (in seconds)": "Timeout (in Sekunden)",
|
||||
"Use user token": "Benutzer-Token verwenden",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ": "\n\tBitte stelle sicher, dass du den Bot zum Kanal hinzufügst, indem du folgende Schritte folgst:\n\t 1. Geben Sie /invite in den Chat des Kanals ein.\n\t 2. Klicken Sie auf Apps zu diesem Kanal hinzufügen.\n\t 3. Suche und füge den Bot hinzu.\n \n**Notiz**: Wenn du den Kanal in der Dropdown-Liste nicht finden kannst (welche bis zu 2000 Kanäle abruft) Bitte klicken Sie auf das **(F)** und geben Sie die Kanal-ID direkt ein.\n ",
|
||||
"You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'": "Sie können die Kanal-ID erhalten, indem Sie mit der rechten Maustaste auf den Kanal klicken und \"Kanaldetails anzeigen\" auswählen.",
|
||||
"Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Bitte geben Sie den Zeitstempel der Nachricht an, die Sie reagieren möchten, wie zum Beispiel `1710304378.475129`. Alternativ kannst du einfach den Nachrichtenlink erhalten, indem du auf die drei Punkte neben der Nachricht klickst und die Option `Link kopieren` auswählst.",
|
||||
"e.g.`thumbsup`": "e.g.`thumbsup`",
|
||||
"The username of the bot": "Der Benutzername des Bots",
|
||||
"The profile picture of the bot": "Das Profilbild des Bots",
|
||||
"If checked, adds a mention at the end of the Slack message to indicate which flow sent the notification, with a link to said flow.": "Wenn aktiviert, fügt am Ende der Slack Nachricht eine Erwähnung hinzu, um anzugeben, welcher Fluss die Benachrichtigung mit einem Link zu diesem Fluss gesendet hat.",
|
||||
"See https://api.slack.com/block-kit for specs": "Siehe https://api.slack.com/block-kit für Spezifikationen",
|
||||
"Enable link unfurling for this message": "Aktiviere Link unfurling für diese Nachricht",
|
||||
"The text of your message": "Der Text Ihrer Nachricht",
|
||||
"Provide the ts (timestamp) value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Geben Sie den ts (Zeitstempel) Wert der **Eltern** Nachricht an, um diese Nachricht zu einer Antwort zu machen. Verwenden Sie nicht den ts Wert der Antwort selbst; verwenden Sie stattdessen dessen Eltern-Wert. Zum Beispiel `1710304378. 75129`.Alternativ kannst du einfach den Nachrichtenlink erhalten, indem du auf die drei Punkte neben der übergeordneten Nachricht klickst und die Option `Link kopieren` auswählst.",
|
||||
"When replying to a thread, also make the message visible to everyone in the channel (only applicable when Thread Timestamp is provided)": "Wenn Sie auf einen Thread antworten, machen Sie die Nachricht auch für alle im Kanal sichtbar (nur anwendbar, wenn Thread-Zeitstempel zur Verfügung steht)",
|
||||
"You can pass the file ID from the New Message Trigger payload.": "Sie können die Datei-ID von der Payload der neuen Message Trigger übergeben.",
|
||||
"User handle (display name), without the leading @": "Benutzerhandle (Anzeigename), ohne führende @",
|
||||
"Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Bitte geben Sie den Zeitstempel der Nachricht an, die Sie aktualisieren möchten, wie z.B. `1710304378.475129`. Alternativ kannst du einfach den Nachrichtenlink erhalten, indem du auf die drei Punkte neben der Nachricht klickst und die Option `Link kopieren` auswählst.",
|
||||
"The updated text of your message": "Der aktualisierte Text Ihrer Nachricht",
|
||||
"Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.": "Ändern der E-Mail-Adresse eines Benutzers sendet eine E-Mail sowohl an die alten als auch an die neuen Adressen, und posten auch eine Sackbot-Nachricht an den Benutzer, der sie über die Änderung informiert.",
|
||||
"ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.": "ID des zu ändernden Benutzers. Dieses Argument kann nur von Administratoren bei bezahlten Teams angegeben werden. du kannst **Benutzer per E-Mail finden** Aktion zum Abrufen der ID verwenden.",
|
||||
"Only messages after this timestamp will be included in results": "Nur Nachrichten nach diesem Zeitstempel werden in die Ergebnisse aufgenommen",
|
||||
"Only messages before this timestamp will be included in results. Default is the current time": "Nur Nachrichten bevor dieser Zeitstempel in den Ergebnissen enthalten ist. Standard ist die aktuelle Zeit",
|
||||
"Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified": "Fügen Sie Nachrichten mit ältesten oder neuesten Zeitstempeln in die Ergebnisse ein. Ignorieren, es sei denn, der Zeitstempel wurde angegeben",
|
||||
"Return all metadata associated with each message": "Gibt alle Metadaten zurück, die mit jeder Nachricht verknüpft sind",
|
||||
"Emoji shortname (standard or custom), e.g. :tada: or :train:": "Emoji Shortname (Standard oder benutzerdefiniert), z.B. :tada: oder :train:",
|
||||
"Unix timestamp - if not set, the status will not expire": "Unix-Zeitstempel - wenn nicht gesetzt, läuft der Status nicht ab",
|
||||
"Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Geben Sie den ts (Zeitstempel) Wert der **Eltern** Nachricht an, um Antworten dieser Nachricht zu erhalten. Verwenden Sie nicht den ts Wert der Antwort selbst; verwenden Sie stattdessen den übergeordneten Wert. Zum Beispiel `1710304378.475129`. lternativ kannst du einfach den Nachrichtenlink erhalten, indem du auf die drei Punkte neben der übergeordneten Nachricht klickst und die Option `Link kopieren` auswählst.",
|
||||
"Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Bitte geben Sie den Zeitstempel der Nachricht an, die Sie abrufen möchten, wie zum Beispiel `1710304378.475129`. Alternativ kannst du einfach den Nachrichtenlink erhalten, indem du auf die drei Punkte neben der Nachricht klickst und die Option `Link kopieren` auswählst.",
|
||||
"Authorization headers are injected automatically from your connection.": "Autorisierungs-Header werden automatisch von Ihrer Verbindung injiziert.",
|
||||
"Enable for files like PDFs, images, etc..": "Aktivieren für Dateien wie PDFs, Bilder, etc..",
|
||||
"Use user token instead of bot token": "Benutzer-Token statt Bot-Token verwenden",
|
||||
"GET": "ERHALTEN",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "LÖSCHEN",
|
||||
"HEAD": "HEAD",
|
||||
"New Public Message Posted Anywhere": "Neue öffentliche Nachricht überall veröffentlicht",
|
||||
"New Message Posted to Channel": "Neue Nachricht gepostet in Kanal",
|
||||
"New Direct Message": "Neue Direktnachricht",
|
||||
"New Mention in Channel": "Neue Erwähnung im Kanal",
|
||||
"New Mention in Direct Message": "Neue Erwähnung in Direktnachricht",
|
||||
"New Reaction": "Neue Reaktion",
|
||||
"Channel created": "Kanal erstellt",
|
||||
"New Command in Channel": "Neuer Befehl im Kanal",
|
||||
"New Command in Direct Message": "Neuer Befehl in Direktnachricht",
|
||||
"New User": "Neuer Benutzer",
|
||||
"New Saved Message": "Neue gespeicherte Nachricht",
|
||||
"New Team Custom Emoji": "Neues Team Custom Emoji",
|
||||
"Triggers when a new message is posted to any channel.": "Wird ausgelöst, wenn eine neue Nachricht an einen beliebigen Kanal gesendet wird.",
|
||||
"Triggers when a new message is posted to a specific #channel you choose.": "Wird ausgelöst, wenn eine neue Nachricht an einen bestimmten #channel gesendet wird, den du wählst.",
|
||||
"Triggers when a message was posted in a direct message channel.": "Wird ausgelöst, wenn eine Nachricht in einem Direktnachrichten gesendet wurde.",
|
||||
"Triggers when a username is mentioned.": "Wird ausgelöst, wenn ein Benutzername erwähnt wird.",
|
||||
"Triggers when a username is mentioned in a direct message channel.": "Wird ausgelöst, wenn ein Benutzername in einem Direktnachrichtenkanal erwähnt wird.",
|
||||
"Triggers when a new reaction is added to a message": "Wird ausgelöst, wenn eine neue Reaktion einer Nachricht hinzugefügt wird",
|
||||
"Triggers when a channel is created": "Wird ausgelöst, wenn ein Kanal erstellt wird",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)": "Trigger wenn ein bestimmter Befehl an den Bot gesendet wird (z.B. @bot Befehl arg1 arg2)",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.": "Trigger wenn ein bestimmter Befehl an den Bot (z.B. @bot Befehl arg1 arg2) via Direct Message gesendet wird.",
|
||||
"Triggers when a new user is created / first joins your org.": "Wird ausgelöst, wenn ein neuer Benutzer erstellt wird / zuerst deiner Org beitritt.",
|
||||
"Triggers when you save a message.": "Wird ausgelöst, wenn Sie eine Nachricht speichern.",
|
||||
"Triggers when a custom emoji has been added to a team.": "Trigger wenn ein benutzerdefinierter Emoji einem Team hinzugefügt wurde.",
|
||||
"Ignore Bot Messages ?": "Bot Nachrichten ignorieren ?",
|
||||
"Ignore Message from Yourself ?": "Nachricht von Ihnen selbst ignorieren ?",
|
||||
"Channels": "Kanäle",
|
||||
"Emojis (E.g fire, smile)": "Emojis (Feuer, Lächeln)",
|
||||
"Commands": "Befehle",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}": "\n\tBitte stelle sicher, dass du den Bot zum Kanal hinzufügst, indem du folgende Schritte folgst:\n\t 1. Tippe /invite in den Chat des Channels.\n\t 2. Klicke auf Apps zu diesem Kanal hinzufügen.\n\t 3. Suche nach und füge den Bot hinzu.\n \n**Notiz**: Wenn du den Kanal in der Dropdown-Liste nicht finden kannst (welche bis zu 2000 Kanäle abruft) bitte klicken Sie auf das **(F)** und tippen Sie die Kanal-ID direkt in ein Array wie folgt: `{`{ ['your_channel_id_1', 'your_channel_id_2', . .] `}`}",
|
||||
"If no channel is selected, the flow will be triggered for username mentions in all channels": "Wenn kein Kanal ausgewählt ist, wird der Fluss für Benutzername Erwähnungen in allen Kanälen ausgelöst",
|
||||
"Select emojis to trigger on": "Wähle Emojis zum Auslösen aus",
|
||||
"List of valid commands that the bot should respond to (e.g., help, ocr, remind)": "Liste gültiger Befehle, auf die der Bot reagieren soll (z.B. help, ocr, remind)",
|
||||
"If no channel is selected, the flow will be triggered for commands in all channels": "Wenn kein Kanal ausgewählt ist, wird der Fluss für Befehle in allen Kanälen ausgelöst"
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
{
|
||||
"Channel-based messaging platform": "Plataforma de mensajería basada en canales",
|
||||
"Add Reaction to Message": "Añadir reacción al mensaje",
|
||||
"Send Message To A User": "Enviar mensaje a un usuario",
|
||||
"Send Message To A Channel": "Enviar mensaje a un canal",
|
||||
"Request Approval from A User": "Solicitar aprobación de un usuario",
|
||||
"Request Approval in a Channel": "Solicitar aprobación en un canal",
|
||||
"Request Action from A User": "Solicitar acción de un usuario",
|
||||
"Request Action in A Channel": "Solicitar acción en un canal",
|
||||
"Upload file": "Subir archivo",
|
||||
"Get File": "Obtener archivo",
|
||||
"Search messages": "Buscar mensajes",
|
||||
"Find User by Email": "Buscar usuario por email",
|
||||
"Find User by Handle": "Buscar usuario por mano",
|
||||
"Find User by ID": "Buscar usuario por ID",
|
||||
"List users": "Listar usuarios",
|
||||
"Update message": "Actualizar mensaje",
|
||||
"Create Channel": "Crear canal",
|
||||
"Update Profile": "Actualizar perfil",
|
||||
"Get channel history": "Obtener historial de canales",
|
||||
"Set User Status": "Establecer estado del usuario",
|
||||
"Markdown to Slack format": "Markdown to Slack format",
|
||||
"Retrieve Thread Messages": "Recuperar mensajes del hilo",
|
||||
"Set Channel Topic": "Establecer tema del canal",
|
||||
"Get Message by Timestamp": "Obtener mensaje por Timestamp",
|
||||
"Invite User to Channel": "Invitar usuario al canal",
|
||||
"Custom API Call": "Llamada API personalizada",
|
||||
"Add an emoji reaction to a message.": "Agrega una reacción emoji a un mensaje.",
|
||||
"Send message to a user": "Enviar mensaje a un usuario",
|
||||
"Send message to a channel": "Enviar mensaje a un canal",
|
||||
"Send approval message to a user and then wait until the message is approved or disapproved": "Enviar mensaje de aprobación a un usuario y luego esperar hasta que el mensaje sea aprobado o desaprobado",
|
||||
"Send approval message to a channel and then wait until the message is approved or disapproved": "Enviar mensaje de aprobación a un canal y luego esperar hasta que el mensaje sea aprobado o desaprobado",
|
||||
"Send a message to a user and wait until the user selects an action": "Enviar un mensaje a un usuario y esperar hasta que el usuario seleccione una acción",
|
||||
"Send a message in a channel and wait until an action is selected": "Enviar un mensaje en un canal y esperar hasta que se seleccione una acción",
|
||||
"Upload file without sharing it to a channel or user": "Subir archivo sin compartirlo a un canal o usuario",
|
||||
"Return information about a given file ID.": "Devolver información sobre un archivo ID dado.",
|
||||
"Searches for messages matching a query": "Buscar mensajes que coincidan con una consulta",
|
||||
"Finds a user by matching against their email address.": "Encuentra un usuario coincidiendo con su dirección de correo electrónico.",
|
||||
"Finds a user by matching against their Slack handle.": "Encuentra a un usuario coincidiendo con su manejador Slack.",
|
||||
"Finds a user by their ID.": "Encuentra un usuario por su ID.",
|
||||
"List all users of the workspace": "Listar todos los usuarios del área de trabajo",
|
||||
"Update an existing message": "Actualizar un mensaje existente",
|
||||
"Creates a new channel.": "Crea un nuevo canal.",
|
||||
"Update basic profile field such as name or title.": "Actualizar el campo básico del perfil, como nombre o título.",
|
||||
"Retrieve all messages from a specific channel (\"conversation\") between specified timestamps": "Recuperar todos los mensajes de un canal específico (\"conversación\") entre las marcas de tiempo especificadas",
|
||||
"Sets a user's custom status": "Establece el estado personalizado de un usuario",
|
||||
"Convert Markdown-formatted text to Slack's pseudo - markdown syntax": "Convierte el texto con formato Markdown a pseudo de Slack - sintaxis markdown",
|
||||
"Retrieves thread messages by channel and thread timestamp.": "Recuperar mensajes del hilo por canal y timestamp del hilo.",
|
||||
"Sets the topic on a selected channel.": "Establece el tema en un canal seleccionado.",
|
||||
"Retrieves a specific message from a channel history using the message's timestamp.": "Recuperar un mensaje específico del historial de un canal usando la marca de tiempo del mensaje.",
|
||||
"Invites an existing User to an existing channel.": "Invita a un usuario existente a un canal existente.",
|
||||
"Make a custom API call to a specific endpoint": "Hacer una llamada API personalizada a un extremo específico",
|
||||
"Markdown": "Markdown",
|
||||
"Channel": "Canal",
|
||||
"Message Timestamp": "Marca de tiempo del mensaje",
|
||||
"Reaction (emoji) name": "Reacción (emoji) nombre",
|
||||
"User": "Usuario",
|
||||
"Message": "Mensaje",
|
||||
"Username": "Usuario",
|
||||
"Profile Picture": "Foto de Perfil",
|
||||
"Mention flow of origin?": "¿Mencionar el flujo de origen?",
|
||||
"Block Kit blocks": "Bloquear Kit",
|
||||
"Unfurl Links": "Desenganchar Enlaces",
|
||||
"Attachment": "Adjunto",
|
||||
"Thread ts": "Hilos",
|
||||
"Broadcast reply to channel": "Respuesta de difusión al canal",
|
||||
"Action Buttons": "Botones de acción",
|
||||
"Title": "Título",
|
||||
"Filename": "Nombre de archivo",
|
||||
"File ID": "ID de archivo",
|
||||
"Search query": "Buscar consulta",
|
||||
"Email": "E-mail",
|
||||
"Handle": "Manejo",
|
||||
"ID": "ID",
|
||||
"Include bots?": "¿Incluye bots?",
|
||||
"Include disabled users?": "¿Incluye usuarios desactivados?",
|
||||
"Channel Name": "Nombre del canal",
|
||||
"Is Private?": "¿Es privado?",
|
||||
"First Name": "Nombre",
|
||||
"Last Name": "Apellido",
|
||||
"Oldest": "Menos",
|
||||
"Latest": "Última",
|
||||
"Inclusive": "Inclusivo",
|
||||
"Include all metadata": "Incluye todos los metadatos",
|
||||
"Text": "Texto",
|
||||
"Emoji": "Emoji",
|
||||
"Expires at": "Expira el",
|
||||
"Markdown text": "Texto Markdown",
|
||||
"Topic": "Tema",
|
||||
"Method": "Método",
|
||||
"Headers": "Encabezados",
|
||||
"Query Parameters": "Parámetros de consulta",
|
||||
"Body": "Cuerpo",
|
||||
"Response is Binary ?": "¿Respuesta es binaria?",
|
||||
"No Error on Failure": "No hay ningún error en fallo",
|
||||
"Timeout (in seconds)": "Tiempo de espera (en segundos)",
|
||||
"Use user token": "Usar token de usuario",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ",
|
||||
"You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'": "Puede obtener el ID del canal haciendo clic derecho en el canal y seleccionando 'Ver detalles del canal'.",
|
||||
"Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Por favor proporcione la marca de tiempo del mensaje que desea reaccionar, como `1710304378.475129`. Alternativamente, puede obtener fácilmente el enlace del mensaje haciendo clic en los tres puntos junto al mensaje y seleccionando la opción `Copy link`.",
|
||||
"e.g.`thumbsup`": "e.g.`thumbsup`",
|
||||
"The username of the bot": "El nombre de usuario del bot",
|
||||
"The profile picture of the bot": "La foto de perfil del bot",
|
||||
"If checked, adds a mention at the end of the Slack message to indicate which flow sent the notification, with a link to said flow.": "Si está marcado, añade una mención al final del mensaje de Slack para indicar qué flujo envió la notificación, con un enlace a dicho flujo.",
|
||||
"See https://api.slack.com/block-kit for specs": "Ver https://api.slack.com/block-kit para especificaciones",
|
||||
"Enable link unfurling for this message": "Habilitar el desenvolvimiento de enlaces para este mensaje",
|
||||
"The text of your message": "El texto de tu mensaje",
|
||||
"Provide the ts (timestamp) value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Proporciona el valor (timestamp) del mensaje **padre** para hacer de este mensaje una respuesta. No utilice el valor ts de la respuesta en sí; utilice su padre en su lugar. Por ejemplo `1710304378. 75129`.Alternativamente, puedes obtener fácilmente el enlace del mensaje haciendo clic en los tres puntos junto al mensaje padre y seleccionando la opción `Copy link`.",
|
||||
"When replying to a thread, also make the message visible to everyone in the channel (only applicable when Thread Timestamp is provided)": "Al responder a un hilo, también hacer el mensaje visible para todos en el canal (sólo aplicable cuando se proporciona la marca de tiempo del hilo)",
|
||||
"You can pass the file ID from the New Message Trigger payload.": "Puedes pasar el ID del archivo desde la carga de Nuevo Mensaje Trigger.",
|
||||
"User handle (display name), without the leading @": "Usuario identificador (nombre de visualización), sin los siguientes @",
|
||||
"Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Por favor, proporcione la marca de tiempo del mensaje que desea actualizar, como `1710304378.475129`. Alternativamente, puede obtener fácilmente el enlace del mensaje haciendo clic en los tres puntos junto al mensaje y seleccionando la opción `Copy link`.",
|
||||
"The updated text of your message": "El texto actualizado de tu mensaje",
|
||||
"Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.": "Cambiar la dirección de correo electrónico de un usuario enviará un correo electrónico a las direcciones antiguas y nuevas, y también publicar un mensaje slackbot al usuario informándoles del cambio.",
|
||||
"ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.": "ID del usuario a cambiar. Este argumento sólo puede ser especificado por administradores en equipos de pago. o puede utilizar la acción **Encontrar usuario por correo electrónico** para recuperar el ID.",
|
||||
"Only messages after this timestamp will be included in results": "Sólo los mensajes después de esta marca de tiempo se incluirán en los resultados",
|
||||
"Only messages before this timestamp will be included in results. Default is the current time": "Solo los mensajes antes de esta marca de tiempo se incluirán en los resultados. Por defecto es la hora actual",
|
||||
"Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified": "Incluye mensajes con marcas de tiempo más antiguas o más recientes en los resultados. Ignorados a menos que se especifique la marca de tiempo",
|
||||
"Return all metadata associated with each message": "Devuelve todos los metadatos asociados con cada mensaje",
|
||||
"Emoji shortname (standard or custom), e.g. :tada: or :train:": "Nombre corto de Emoji (estándar o personalizado), p. ej., :tada: o :train:",
|
||||
"Unix timestamp - if not set, the status will not expire": "Marca de tiempo Unix - si no se establece, el estado no expirará",
|
||||
"Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Proporciona el valor ts (timestamp) del mensaje **padre** para recuperar las respuestas de este mensaje. No utilice el valor ts de la respuesta en sí misma; utilice su padre en su lugar. Por ejemplo `1710304378.475129`. lternativamente, puede obtener fácilmente el enlace del mensaje haciendo clic en los tres puntos junto al mensaje padre y seleccionando la opción `Copy link`.",
|
||||
"Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Por favor proporcione la marca de tiempo del mensaje que desea recuperar, como `1710304378.475129`. Alternativamente, puede obtener fácilmente el enlace del mensaje haciendo clic en los tres puntos junto al mensaje y seleccionando la opción `Copy link`.",
|
||||
"Authorization headers are injected automatically from your connection.": "Las cabeceras de autorización se inyectan automáticamente desde tu conexión.",
|
||||
"Enable for files like PDFs, images, etc..": "Activar para archivos como PDFs, imágenes, etc.",
|
||||
"Use user token instead of bot token": "Usar token de usuario en lugar del token de bot",
|
||||
"GET": "RECOGER",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "BORRAR",
|
||||
"HEAD": "LIMPIO",
|
||||
"New Public Message Posted Anywhere": "Nuevo mensaje público publicado en cualquier lugar",
|
||||
"New Message Posted to Channel": "Nuevo mensaje publicado en el canal",
|
||||
"New Direct Message": "Nuevo mensaje directo",
|
||||
"New Mention in Channel": "Nueva mención en el canal",
|
||||
"New Mention in Direct Message": "Nueva mención en mensaje directo",
|
||||
"New Reaction": "Nueva Reacción",
|
||||
"Channel created": "Canal creado",
|
||||
"New Command in Channel": "Nuevo comando en el canal",
|
||||
"New Command in Direct Message": "Nuevo comando en mensaje directo",
|
||||
"New User": "Nuevo usuario",
|
||||
"New Saved Message": "Nuevo mensaje guardado",
|
||||
"New Team Custom Emoji": "Emoji nuevo equipo personalizado",
|
||||
"Triggers when a new message is posted to any channel.": "Dispara cuando se publica un nuevo mensaje en cualquier canal.",
|
||||
"Triggers when a new message is posted to a specific #channel you choose.": "Dispara cuando un nuevo mensaje se publica en un #canal específico que elijas.",
|
||||
"Triggers when a message was posted in a direct message channel.": "Dispara cuando un mensaje fue publicado en un canal de mensaje directo.",
|
||||
"Triggers when a username is mentioned.": "Dispara cuando se menciona un nombre de usuario.",
|
||||
"Triggers when a username is mentioned in a direct message channel.": "Dispara cuando un nombre de usuario es mencionado en un canal de mensaje directo.",
|
||||
"Triggers when a new reaction is added to a message": "Dispara cuando se agrega una nueva reacción a un mensaje",
|
||||
"Triggers when a channel is created": "Dispara cuando se crea un canal",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)": "Dispara cuando se envía un comando específico al bot (por ejemplo, @bot comando arg1 arg2)",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.": "Dispara cuando se envía un comando específico al bot (por ejemplo, @bot comando arg1 arg2) a través del mensaje directo.",
|
||||
"Triggers when a new user is created / first joins your org.": "Dispara cuando un nuevo usuario es creado / se une por primera vez a su órgano.",
|
||||
"Triggers when you save a message.": "Dispara cuando guardas un mensaje.",
|
||||
"Triggers when a custom emoji has been added to a team.": "Dispara cuando se ha añadido un emoji personalizado a un equipo.",
|
||||
"Ignore Bot Messages ?": "¿Ignorar mensajes de bot?",
|
||||
"Ignore Message from Yourself ?": "¿Ignorar mensaje de ti mismo?",
|
||||
"Channels": "Canales",
|
||||
"Emojis (E.g fire, smile)": "Emojis (Ej. fuego, sonrisa)",
|
||||
"Commands": "Comandos",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}",
|
||||
"If no channel is selected, the flow will be triggered for username mentions in all channels": "Si no se selecciona ningún canal, el flujo se activará por menciones de nombre de usuario en todos los canales",
|
||||
"Select emojis to trigger on": "Selecciona emojis para activar",
|
||||
"List of valid commands that the bot should respond to (e.g., help, ocr, remind)": "Lista de comandos válidos a los que el bot debe responder (por ejemplo, ayuda, ocr, recordatorio)",
|
||||
"If no channel is selected, the flow will be triggered for commands in all channels": "Si no se selecciona ningún canal, el flujo se activará para comandos en todos los canales"
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
{
|
||||
"Channel-based messaging platform": "Plateforme de messagerie basée sur les canaux",
|
||||
"Add Reaction to Message": "Ajouter une réaction au message",
|
||||
"Send Message To A User": "Envoyer un message à un utilisateur",
|
||||
"Send Message To A Channel": "Envoyer un message à un salon",
|
||||
"Request Approval from A User": "Demande d'approbation d'un utilisateur",
|
||||
"Request Approval in a Channel": "Demander l'approbation dans un canal",
|
||||
"Request Action from A User": "Demander une action à un utilisateur",
|
||||
"Request Action in A Channel": "Demander une action dans un salon",
|
||||
"Upload file": "Charger un fichier",
|
||||
"Get File": "Récupérer le fichier",
|
||||
"Search messages": "Rechercher des messages",
|
||||
"Find User by Email": "Trouver un utilisateur par e-mail",
|
||||
"Find User by Handle": "Trouver un utilisateur par utilisateur",
|
||||
"Find User by ID": "Trouver un utilisateur par ID",
|
||||
"List users": "Liste des utilisateurs",
|
||||
"Update message": "Message de mise à jour",
|
||||
"Create Channel": "Créer un canal",
|
||||
"Update Profile": "Mettre à jour le profil",
|
||||
"Get channel history": "Récupérer l'historique des canaux",
|
||||
"Set User Status": "Définir le statut de l'utilisateur",
|
||||
"Markdown to Slack format": "Markdown to Slack format",
|
||||
"Retrieve Thread Messages": "Récupérer les messages de discussion",
|
||||
"Set Channel Topic": "Définir le sujet du salon",
|
||||
"Get Message by Timestamp": "Obtenir un message par horodatage",
|
||||
"Invite User to Channel": "Inviter un utilisateur dans le channel",
|
||||
"Custom API Call": "Appel d'API personnalisé",
|
||||
"Add an emoji reaction to a message.": "Ajouter une réaction émoticône à un message.",
|
||||
"Send message to a user": "Envoyer un message à un utilisateur",
|
||||
"Send message to a channel": "Envoyer un message à un salon",
|
||||
"Send approval message to a user and then wait until the message is approved or disapproved": "Envoyer un message d'approbation à un utilisateur puis attendre que le message soit approuvé ou désapprouvé",
|
||||
"Send approval message to a channel and then wait until the message is approved or disapproved": "Envoyer un message d'approbation à un canal puis attendre que le message soit approuvé ou désapprouvé",
|
||||
"Send a message to a user and wait until the user selects an action": "Envoyer un message à un utilisateur et attendre que l'utilisateur sélectionne une action",
|
||||
"Send a message in a channel and wait until an action is selected": "Envoyer un message dans un salon et attendre qu'une action soit sélectionnée",
|
||||
"Upload file without sharing it to a channel or user": "Télécharger un fichier sans le partager à un salon ou à un utilisateur",
|
||||
"Return information about a given file ID.": "Renvoie des informations sur un ID de fichier donné.",
|
||||
"Searches for messages matching a query": "Recherche les messages correspondant à une requête",
|
||||
"Finds a user by matching against their email address.": "Trouve un utilisateur en fonction de son adresse e-mail.",
|
||||
"Finds a user by matching against their Slack handle.": "Trouve un utilisateur en faisant une correspondance avec son gestionnaire Slack.",
|
||||
"Finds a user by their ID.": "Trouve un utilisateur par son ID.",
|
||||
"List all users of the workspace": "Lister tous les utilisateurs de l'espace de travail",
|
||||
"Update an existing message": "Mettre à jour un message existant",
|
||||
"Creates a new channel.": "Crée un nouveau canal.",
|
||||
"Update basic profile field such as name or title.": "Mettre à jour le champ de profil de base comme le nom ou le titre.",
|
||||
"Retrieve all messages from a specific channel (\"conversation\") between specified timestamps": "Récupérer tous les messages d'un canal spécifique (\"conversation\") entre les horodatages spécifiés",
|
||||
"Sets a user's custom status": "Définit le statut personnalisé d'un utilisateur",
|
||||
"Convert Markdown-formatted text to Slack's pseudo - markdown syntax": "Convertir le texte formaté par Markdown en pseudo de Slack - syntaxe markdown",
|
||||
"Retrieves thread messages by channel and thread timestamp.": "Récupère les messages du fil par canal et par timestamp.",
|
||||
"Sets the topic on a selected channel.": "Définit le sujet sur un canal sélectionné.",
|
||||
"Retrieves a specific message from a channel history using the message's timestamp.": "Récupère un message spécifique à partir de l'historique d'un salon en utilisant l'horodatage du message.",
|
||||
"Invites an existing User to an existing channel.": "Invite un utilisateur existant à un channel existant.",
|
||||
"Make a custom API call to a specific endpoint": "Passer un appel API personnalisé à un endpoint spécifique",
|
||||
"Markdown": "Markdown",
|
||||
"Channel": "Chaîne",
|
||||
"Message Timestamp": "Horodatage du message",
|
||||
"Reaction (emoji) name": "Nom de réaction (emoji)",
|
||||
"User": "Utilisateur",
|
||||
"Message": "Message",
|
||||
"Username": "Nom d'utilisateur",
|
||||
"Profile Picture": "Photo de profil",
|
||||
"Mention flow of origin?": "Mentionner le flux d'origine ?",
|
||||
"Block Kit blocks": "Bloquer les blocs de kit",
|
||||
"Unfurl Links": "Dérouler les liens",
|
||||
"Attachment": "Pièce jointe",
|
||||
"Thread ts": "Fil de discussion",
|
||||
"Broadcast reply to channel": "Diffuser la réponse à la chaîne",
|
||||
"Action Buttons": "Boutons d'action",
|
||||
"Title": "Titre de la page",
|
||||
"Filename": "Nom du fichier",
|
||||
"File ID": "ID du fichier",
|
||||
"Search query": "Requête de recherche",
|
||||
"Email": "Courriel",
|
||||
"Handle": "Poignée",
|
||||
"ID": "ID",
|
||||
"Include bots?": "Inclure les robots ?",
|
||||
"Include disabled users?": "Inclure les utilisateurs désactivés ?",
|
||||
"Channel Name": "Nom du canal",
|
||||
"Is Private?": "Est Privé?",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Oldest": "Plus ancien",
|
||||
"Latest": "Dernier",
|
||||
"Inclusive": "Inclus",
|
||||
"Include all metadata": "Inclure toutes les métadonnées",
|
||||
"Text": "Texte du texte",
|
||||
"Emoji": "Emoji",
|
||||
"Expires at": "Expire le",
|
||||
"Markdown text": "Texte Markdown",
|
||||
"Topic": "Sujet",
|
||||
"Method": "Méthode",
|
||||
"Headers": "En-têtes",
|
||||
"Query Parameters": "Paramètres de requête",
|
||||
"Body": "Corps",
|
||||
"Response is Binary ?": "La réponse est Binaire ?",
|
||||
"No Error on Failure": "Aucune erreur en cas d'échec",
|
||||
"Timeout (in seconds)": "Délai d'expiration (en secondes)",
|
||||
"Use user token": "Utiliser le jeton utilisateur",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ",
|
||||
"You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'": "Vous pouvez obtenir l'ID du canal en cliquant avec le bouton droit sur le canal et en sélectionnant \"Voir les détails de la chaîne\".",
|
||||
"Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Veuillez fournir l'horodatage du message que vous souhaitez réagir, comme `1710304378.475129`. Alternativement, vous pouvez facilement obtenir le lien du message en cliquant sur les trois points à côté du message et en sélectionnant l'option `Copier le lien`.",
|
||||
"e.g.`thumbsup`": "e.g.`thumbsup`",
|
||||
"The username of the bot": "Le nom d'utilisateur du bot",
|
||||
"The profile picture of the bot": "La photo de profil du bot",
|
||||
"If checked, adds a mention at the end of the Slack message to indicate which flow sent the notification, with a link to said flow.": "Si coché, ajoute une mention à la fin du message Slack pour indiquer quel flux a envoyé la notification, avec un lien vers ce flux.",
|
||||
"See https://api.slack.com/block-kit for specs": "Voir https://api.slack.com/block-kit pour les spécifications",
|
||||
"Enable link unfurling for this message": "Activer le développement du lien pour ce message",
|
||||
"The text of your message": "Le texte de votre message",
|
||||
"Provide the ts (timestamp) value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Fournir la valeur ts (timestamp) du message **parent** pour faire de ce message une réponse. N'utilisez pas la valeur ts de la réponse elle-même ; utilisez son parent à la place. Par exemple `1710304378. 75129`.Alternativement, vous pouvez facilement obtenir le lien de message en cliquant sur les trois points à côté du message parent et en sélectionnant l'option `Copier le lien`.",
|
||||
"When replying to a thread, also make the message visible to everyone in the channel (only applicable when Thread Timestamp is provided)": "Lorsque vous répondez à un thread, rendre également le message visible pour tout le monde dans le channel (applicable uniquement lorsque l'horodatage des threads est fourni)",
|
||||
"You can pass the file ID from the New Message Trigger payload.": "Vous pouvez passer l'ID du fichier à partir de la charge utile du nouveau déclencheur de message.",
|
||||
"User handle (display name), without the leading @": "Identifiant utilisateur (nom affiché) sans le premier @",
|
||||
"Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Veuillez fournir l'horodatage du message que vous souhaitez mettre à jour, comme `1710304378.475129`. Alternativement, vous pouvez facilement obtenir le lien du message en cliquant sur les trois points à côté du message et en sélectionnant l'option `Copier le lien`.",
|
||||
"The updated text of your message": "Le texte mis à jour de votre message",
|
||||
"Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.": "Changer l'adresse e-mail d'un utilisateur enverra un email à l'ancienne et à la nouvelle adresse, et poster un message de slackbot à l'utilisateur les informant de la modification.",
|
||||
"ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.": "ID de l'utilisateur à modifier. Cet argument ne peut être spécifié que par les administrateurs des équipes payantes. ou peut utiliser l'action **Trouver un utilisateur par e-mail** pour récupérer l'ID.",
|
||||
"Only messages after this timestamp will be included in results": "Seuls les messages après cet horodatage seront inclus dans les résultats",
|
||||
"Only messages before this timestamp will be included in results. Default is the current time": "Seuls les messages avant cet horodatage seront inclus dans les résultats. Par défaut, c'est l'heure courante",
|
||||
"Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified": "Inclure les messages avec les timestamps les plus anciens ou les plus récents dans les résultats. Ignoré sauf si l'un des timestamp est spécifié",
|
||||
"Return all metadata associated with each message": "Renvoyer toutes les métadonnées associées à chaque message",
|
||||
"Emoji shortname (standard or custom), e.g. :tada: or :train:": "Court-nom de l'émoji (standard ou personnalisé), par exemple :tada: ou :train:",
|
||||
"Unix timestamp - if not set, the status will not expire": "Horodatage Unix - si non défini, le statut n'expirera pas",
|
||||
"Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Fournir la valeur ts (horodatage) du message **parent** pour récupérer les réponses de ce message. N'utilisez pas la valeur ts de la réponse elle-même; utilisez son parent à la place. Par exemple `1710304378.475129`. lternativement, vous pouvez facilement obtenir le lien de message en cliquant sur les trois points à côté du message parent et en sélectionnant l'option `Copier le lien`.",
|
||||
"Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Veuillez fournir l'horodatage du message que vous souhaitez récupérer, tel que `1710304378.475129`. Alternativement, vous pouvez facilement obtenir le lien du message en cliquant sur les trois points à côté du message et en sélectionnant l'option `Copier le lien`.",
|
||||
"Authorization headers are injected automatically from your connection.": "Les en-têtes d'autorisation sont injectés automatiquement à partir de votre connexion.",
|
||||
"Enable for files like PDFs, images, etc..": "Activer pour les fichiers comme les PDFs, les images, etc.",
|
||||
"Use user token instead of bot token": "Utiliser le jeton utilisateur au lieu du jeton de bot",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD",
|
||||
"New Public Message Posted Anywhere": "Nouveau message public publié n'importe où",
|
||||
"New Message Posted to Channel": "Nouveau message posté sur le salon",
|
||||
"New Direct Message": "Nouveau message direct",
|
||||
"New Mention in Channel": "Nouvelle mention dans le canal",
|
||||
"New Mention in Direct Message": "Nouvelle mention dans le message direct",
|
||||
"New Reaction": "Nouvelle réaction",
|
||||
"Channel created": "Chaîne créée",
|
||||
"New Command in Channel": "Nouvelle commande dans le canal",
|
||||
"New Command in Direct Message": "Nouvelle commande dans le message direct",
|
||||
"New User": "Nouvel utilisateur",
|
||||
"New Saved Message": "Nouveau message sauvegardé",
|
||||
"New Team Custom Emoji": "Nouvel Emoji personnalisé d'équipe",
|
||||
"Triggers when a new message is posted to any channel.": "Déclenche lorsqu'un nouveau message est posté sur n'importe quel canal.",
|
||||
"Triggers when a new message is posted to a specific #channel you choose.": "Déclenche lorsqu'un nouveau message est posté sur un canal spécifique que vous choisissez.",
|
||||
"Triggers when a message was posted in a direct message channel.": "Déclenche lorsqu'un message a été posté dans un canal de message direct.",
|
||||
"Triggers when a username is mentioned.": "Déclenche lorsqu'un nom d'utilisateur est mentionné.",
|
||||
"Triggers when a username is mentioned in a direct message channel.": "Déclenche lorsqu'un nom d'utilisateur est mentionné dans un canal de message direct.",
|
||||
"Triggers when a new reaction is added to a message": "Déclenche quand une nouvelle réaction est ajoutée à un message",
|
||||
"Triggers when a channel is created": "Déclenche quand un canal est créé",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)": "Déclenche quand une commande spécifique est envoyée au bot (par exemple, la commande @bot arg1 arg2)",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.": "Déclenche lorsqu'une commande spécifique est envoyée au bot (par exemple, la commande @bot arg1 arg2) via Message Direct.",
|
||||
"Triggers when a new user is created / first joins your org.": "Déclenche lorsqu'un nouvel utilisateur est créé / rejoint d'abord votre organisation.",
|
||||
"Triggers when you save a message.": "Déclenche lorsque vous enregistrez un message.",
|
||||
"Triggers when a custom emoji has been added to a team.": "Déclenche lorsqu'un émoji personnalisé a été ajouté à une équipe.",
|
||||
"Ignore Bot Messages ?": "Ignorer les messages du bot ?",
|
||||
"Ignore Message from Yourself ?": "Ignorer le message de vous-même ?",
|
||||
"Channels": "Canaux",
|
||||
"Emojis (E.g fire, smile)": "Emojis (par exemple, feu, sourire)",
|
||||
"Commands": "Commandes",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}",
|
||||
"If no channel is selected, the flow will be triggered for username mentions in all channels": "Si aucun canal n'est sélectionné, le flux sera déclenché pour les mentions d'utilisateur dans tous les canaux",
|
||||
"Select emojis to trigger on": "Sélectionnez les émoticônes à activer",
|
||||
"List of valid commands that the bot should respond to (e.g., help, ocr, remind)": "Liste des commandes valides auxquelles le bot doit répondre (par exemple, aide, ocr, rappel)",
|
||||
"If no channel is selected, the flow will be triggered for commands in all channels": "Si aucun canal n'est sélectionné, le flux sera déclenché pour les commandes dans tous les canaux"
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
{
|
||||
"Slack": "Slack",
|
||||
"Channel-based messaging platform": "Channel-based messaging platform",
|
||||
"Add Reaction to Message": "Add Reaction to Message",
|
||||
"Send Message To A User": "Send Message To A User",
|
||||
"Send Message To A Channel": "Send Message To A Channel",
|
||||
"Request Approval from A User": "Request Approval from A User",
|
||||
"Request Approval in a Channel": "Request Approval in a Channel",
|
||||
"Request Action from A User": "Request Action from A User",
|
||||
"Request Action in A Channel": "Request Action in A Channel",
|
||||
"Upload file": "Upload file",
|
||||
"Get File": "Get File",
|
||||
"Search messages": "Search messages",
|
||||
"Find User by Email": "Find User by Email",
|
||||
"Find User by Handle": "Find User by Handle",
|
||||
"Find User by ID": "Find User by ID",
|
||||
"Update message": "Update message",
|
||||
"Create Channel": "Create Channel",
|
||||
"Update Profile": "Update Profile",
|
||||
"Get channel history": "Get channel history",
|
||||
"Set User Status": "Set User Status",
|
||||
"Markdown to Slack format": "Markdown to Slack format",
|
||||
"Retrieve Thread Messages": "Retrieve Thread Messages",
|
||||
"Set Channel Topic": "Set Channel Topic",
|
||||
"Get Message by Timestamp": "Get Message by Timestamp",
|
||||
"Invite User to Channel": "Invite User to Channel",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Add an emoji reaction to a message.": "Add an emoji reaction to a message.",
|
||||
"Send message to a user": "Send message to a user",
|
||||
"Send message to a channel": "Send message to a channel",
|
||||
"Send approval message to a user and then wait until the message is approved or disapproved": "Send approval message to a user and then wait until the message is approved or disapproved",
|
||||
"Send approval message to a channel and then wait until the message is approved or disapproved": "Send approval message to a channel and then wait until the message is approved or disapproved",
|
||||
"Send a message to a user and wait until the user selects an action": "Send a message to a user and wait until the user selects an action",
|
||||
"Send a message in a channel and wait until an action is selected": "Send a message in a channel and wait until an action is selected",
|
||||
"Upload file without sharing it to a channel or user": "Upload file without sharing it to a channel or user",
|
||||
"Return information about a given file ID.": "Return information about a given file ID.",
|
||||
"Searches for messages matching a query": "Searches for messages matching a query",
|
||||
"Finds a user by matching against their email address.": "Finds a user by matching against their email address.",
|
||||
"Finds a user by matching against their Slack handle.": "Finds a user by matching against their Slack handle.",
|
||||
"Finds a user by their ID.": "Finds a user by their ID.",
|
||||
"Update an existing message": "Update an existing message",
|
||||
"Creates a new channel.": "Creates a new channel.",
|
||||
"Update basic profile field such as name or title.": "Update basic profile field such as name or title.",
|
||||
"Retrieve all messages from a specific channel (\"conversation\") between specified timestamps": "Retrieve all messages from a specific channel (\"conversation\") between specified timestamps",
|
||||
"Sets a user's custom status": "Sets a user's custom status",
|
||||
"Convert Markdown-formatted text to Slack's pseudo - markdown syntax": "Convert Markdown-formatted text to Slack's pseudo - markdown syntax",
|
||||
"Retrieves thread messages by channel and thread timestamp.": "Retrieves thread messages by channel and thread timestamp.",
|
||||
"Sets the topic on a selected channel.": "Sets the topic on a selected channel.",
|
||||
"Retrieves a specific message from a channel history using the message's timestamp.": "Retrieves a specific message from a channel history using the message's timestamp.",
|
||||
"Invites an existing User to an existing channel.": "Invites an existing User to an existing channel.",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"Markdown": "Markdown",
|
||||
"Channel": "Channel",
|
||||
"Message Timestamp": "Message Timestamp",
|
||||
"Reaction (emoji) name": "Reaction (emoji) name",
|
||||
"User": "User",
|
||||
"Message": "Message",
|
||||
"Username": "Username",
|
||||
"Profile Picture": "Profile Picture",
|
||||
"Block Kit blocks": "Block Kit blocks",
|
||||
"Attachment": "Attachment",
|
||||
"Thread ts": "Thread ts",
|
||||
"Unfurl Links": "Unfurl Links",
|
||||
"Action Buttons": "Action Buttons",
|
||||
"Title": "Title",
|
||||
"Filename": "Filename",
|
||||
"File ID": "File ID",
|
||||
"Search query": "Search query",
|
||||
"Email": "Email",
|
||||
"Handle": "Handle",
|
||||
"ID": "ID",
|
||||
"Channel Name": "Channel Name",
|
||||
"Is Private?": "Is Private?",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Oldest": "Oldest",
|
||||
"Latest": "Latest",
|
||||
"Inclusive": "Inclusive",
|
||||
"Include all metadata": "Include all metadata",
|
||||
"Text": "Text",
|
||||
"Emoji": "Emoji",
|
||||
"Expires at": "Expires at",
|
||||
"Markdown text": "Markdown text",
|
||||
"Topic": "Topic",
|
||||
"Method": "Method",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Query Parameters",
|
||||
"Body": "Body",
|
||||
"No Error on Failure": "No Error on Failure",
|
||||
"Timeout (in seconds)": "Timeout (in seconds)",
|
||||
"Use user token": "Use user token",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ",
|
||||
"You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'": "You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'",
|
||||
"Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.",
|
||||
"e.g.`thumbsup`": "e.g.`thumbsup`",
|
||||
"The username of the bot": "The username of the bot",
|
||||
"The profile picture of the bot": "The profile picture of the bot",
|
||||
"See https://api.slack.com/block-kit for specs": "See https://api.slack.com/block-kit for specs",
|
||||
"The text of your message": "The text of your message",
|
||||
"Provide the ts (timestamp) value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Provide the ts (timestamp) value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.",
|
||||
"You can pass the file ID from the New Message Trigger payload.": "You can pass the file ID from the New Message Trigger payload.",
|
||||
"User handle (display name), without the leading @": "User handle (display name), without the leading @",
|
||||
"Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.",
|
||||
"The updated text of your message": "The updated text of your message",
|
||||
"Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.": "Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.",
|
||||
"ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.": "ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.",
|
||||
"Only messages after this timestamp will be included in results": "Only messages after this timestamp will be included in results",
|
||||
"Only messages before this timestamp will be included in results. Default is the current time": "Only messages before this timestamp will be included in results. Default is the current time",
|
||||
"Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified": "Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified",
|
||||
"Return all metadata associated with each message": "Return all metadata associated with each message",
|
||||
"Emoji shortname (standard or custom), e.g. :tada: or :train:": "Emoji shortname (standard or custom), e.g. :tada: or :train:",
|
||||
"Unix timestamp - if not set, the status will not expire": "Unix timestamp - if not set, the status will not expire",
|
||||
"Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.",
|
||||
"Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.",
|
||||
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
|
||||
"Use user token instead of bot token": "Use user token instead of bot token",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD",
|
||||
"New Public Message Posted Anywhere": "New Public Message Posted Anywhere",
|
||||
"New Message Posted to Channel": "New Message Posted to Channel",
|
||||
"New Direct Message": "New Direct Message",
|
||||
"New Mention in Channel": "New Mention in Channel",
|
||||
"New Mention in Direct Message": "New Mention in Direct Message",
|
||||
"New Reaction": "New Reaction",
|
||||
"Channel created": "Channel created",
|
||||
"New Command in Channel": "New Command in Channel",
|
||||
"New Command in Direct Message": "New Command in Direct Message",
|
||||
"New User": "New User",
|
||||
"New Saved Message": "New Saved Message",
|
||||
"New Team Custom Emoji": "New Team Custom Emoji",
|
||||
"Triggers when a new message is posted to any channel.": "Triggers when a new message is posted to any channel.",
|
||||
"Triggers when a new message is posted to a specific #channel you choose.": "Triggers when a new message is posted to a specific #channel you choose.",
|
||||
"Triggers when a message was posted in a direct message channel.": "Triggers when a message was posted in a direct message channel.",
|
||||
"Triggers when a username is mentioned.": "Triggers when a username is mentioned.",
|
||||
"Triggers when a username is mentioned in a direct message channel.": "Triggers when a username is mentioned in a direct message channel.",
|
||||
"Triggers when a new reaction is added to a message": "Triggers when a new reaction is added to a message",
|
||||
"Triggers when a channel is created": "Triggers when a channel is created",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)": "Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.": "Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.",
|
||||
"Triggers when a new user is created / first joins your org.": "Triggers when a new user is created / first joins your org.",
|
||||
"Triggers when you save a message.": "Triggers when you save a message.",
|
||||
"Triggers when a custom emoji has been added to a team.": "Triggers when a custom emoji has been added to a team.",
|
||||
"Ignore Bot Messages ?": "Ignore Bot Messages ?",
|
||||
"Ignore Message from Yourself ?": "Ignore Message from Yourself ?",
|
||||
"Channels": "Channels",
|
||||
"Emojis (E.g fire, smile)": "Emojis (E.g fire, smile)",
|
||||
"Commands": "Commands",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}",
|
||||
"If no channel is selected, the flow will be triggered for username mentions in all channels": "If no channel is selected, the flow will be triggered for username mentions in all channels",
|
||||
"Select emojis to trigger on": "Select emojis to trigger on",
|
||||
"List of valid commands that the bot should respond to (e.g., help, ocr, remind)": "List of valid commands that the bot should respond to (e.g., help, ocr, remind)",
|
||||
"Enable link unfurling for this message": "Enable link unfurling for this message",
|
||||
"If no channel is selected, the flow will be triggered for commands in all channels": "If no channel is selected, the flow will be triggered for commands in all channels"
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
{
|
||||
"Slack": "Slack",
|
||||
"Channel-based messaging platform": "Channel-based messaging platform",
|
||||
"Add Reaction to Message": "Add Reaction to Message",
|
||||
"Send Message To A User": "Send Message To A User",
|
||||
"Send Message To A Channel": "Send Message To A Channel",
|
||||
"Request Approval from A User": "Request Approval from A User",
|
||||
"Request Approval in a Channel": "Request Approval in a Channel",
|
||||
"Request Action from A User": "Request Action from A User",
|
||||
"Request Action in A Channel": "Request Action in A Channel",
|
||||
"Upload file": "Upload file",
|
||||
"Get File": "Get File",
|
||||
"Search messages": "Search messages",
|
||||
"Find User by Email": "Find User by Email",
|
||||
"Find User by Handle": "Find User by Handle",
|
||||
"Find User by ID": "Find User by ID",
|
||||
"Update message": "Update message",
|
||||
"Create Channel": "Create Channel",
|
||||
"Update Profile": "Update Profile",
|
||||
"Get channel history": "Get channel history",
|
||||
"Set User Status": "Set User Status",
|
||||
"Markdown to Slack format": "Markdown to Slack format",
|
||||
"Retrieve Thread Messages": "Retrieve Thread Messages",
|
||||
"Set Channel Topic": "Set Channel Topic",
|
||||
"Get Message by Timestamp": "Get Message by Timestamp",
|
||||
"Invite User to Channel": "Invite User to Channel",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Add an emoji reaction to a message.": "Add an emoji reaction to a message.",
|
||||
"Send message to a user": "Send message to a user",
|
||||
"Send message to a channel": "Send message to a channel",
|
||||
"Send approval message to a user and then wait until the message is approved or disapproved": "Send approval message to a user and then wait until the message is approved or disapproved",
|
||||
"Send approval message to a channel and then wait until the message is approved or disapproved": "Send approval message to a channel and then wait until the message is approved or disapproved",
|
||||
"Send a message to a user and wait until the user selects an action": "Send a message to a user and wait until the user selects an action",
|
||||
"Send a message in a channel and wait until an action is selected": "Send a message in a channel and wait until an action is selected",
|
||||
"Upload file without sharing it to a channel or user": "Upload file without sharing it to a channel or user",
|
||||
"Return information about a given file ID.": "Return information about a given file ID.",
|
||||
"Searches for messages matching a query": "Searches for messages matching a query",
|
||||
"Finds a user by matching against their email address.": "Finds a user by matching against their email address.",
|
||||
"Finds a user by matching against their Slack handle.": "Finds a user by matching against their Slack handle.",
|
||||
"Finds a user by their ID.": "Finds a user by their ID.",
|
||||
"Update an existing message": "Update an existing message",
|
||||
"Creates a new channel.": "Creates a new channel.",
|
||||
"Update basic profile field such as name or title.": "Update basic profile field such as name or title.",
|
||||
"Retrieve all messages from a specific channel (\"conversation\") between specified timestamps": "Retrieve all messages from a specific channel (\"conversation\") between specified timestamps",
|
||||
"Sets a user's custom status": "Sets a user's custom status",
|
||||
"Convert Markdown-formatted text to Slack's pseudo - markdown syntax": "Convert Markdown-formatted text to Slack's pseudo - markdown syntax",
|
||||
"Retrieves thread messages by channel and thread timestamp.": "Retrieves thread messages by channel and thread timestamp.",
|
||||
"Sets the topic on a selected channel.": "Sets the topic on a selected channel.",
|
||||
"Retrieves a specific message from a channel history using the message's timestamp.": "Retrieves a specific message from a channel history using the message's timestamp.",
|
||||
"Invites an existing User to an existing channel.": "Invites an existing User to an existing channel.",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"Markdown": "Markdown",
|
||||
"Channel": "Channel",
|
||||
"Message Timestamp": "Message Timestamp",
|
||||
"Reaction (emoji) name": "Reaction (emoji) name",
|
||||
"User": "User",
|
||||
"Message": "Message",
|
||||
"Username": "Username",
|
||||
"Profile Picture": "Profile Picture",
|
||||
"Block Kit blocks": "Block Kit blocks",
|
||||
"Attachment": "Attachment",
|
||||
"Thread ts": "Thread ts",
|
||||
"Unfurl Links": "Unfurl Links",
|
||||
"Action Buttons": "Action Buttons",
|
||||
"Title": "Title",
|
||||
"Filename": "Filename",
|
||||
"File ID": "File ID",
|
||||
"Search query": "Search query",
|
||||
"Email": "Email",
|
||||
"Handle": "Handle",
|
||||
"ID": "ID",
|
||||
"Channel Name": "Channel Name",
|
||||
"Is Private?": "Is Private?",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Oldest": "Oldest",
|
||||
"Latest": "Latest",
|
||||
"Inclusive": "Inclusive",
|
||||
"Include all metadata": "Include all metadata",
|
||||
"Text": "Text",
|
||||
"Emoji": "Emoji",
|
||||
"Expires at": "Expires at",
|
||||
"Markdown text": "Markdown text",
|
||||
"Topic": "Topic",
|
||||
"Method": "Method",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Query Parameters",
|
||||
"Body": "Body",
|
||||
"No Error on Failure": "No Error on Failure",
|
||||
"Timeout (in seconds)": "Timeout (in seconds)",
|
||||
"Use user token": "Use user token",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ",
|
||||
"You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'": "You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'",
|
||||
"Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.",
|
||||
"e.g.`thumbsup`": "e.g.`thumbsup`",
|
||||
"The username of the bot": "The username of the bot",
|
||||
"The profile picture of the bot": "The profile picture of the bot",
|
||||
"See https://api.slack.com/block-kit for specs": "See https://api.slack.com/block-kit for specs",
|
||||
"The text of your message": "The text of your message",
|
||||
"Provide the ts (timestamp) value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Provide the ts (timestamp) value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.",
|
||||
"You can pass the file ID from the New Message Trigger payload.": "You can pass the file ID from the New Message Trigger payload.",
|
||||
"User handle (display name), without the leading @": "User handle (display name), without the leading @",
|
||||
"Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.",
|
||||
"The updated text of your message": "The updated text of your message",
|
||||
"Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.": "Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.",
|
||||
"ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.": "ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.",
|
||||
"Only messages after this timestamp will be included in results": "Only messages after this timestamp will be included in results",
|
||||
"Only messages before this timestamp will be included in results. Default is the current time": "Only messages before this timestamp will be included in results. Default is the current time",
|
||||
"Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified": "Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified",
|
||||
"Return all metadata associated with each message": "Return all metadata associated with each message",
|
||||
"Emoji shortname (standard or custom), e.g. :tada: or :train:": "Emoji shortname (standard or custom), e.g. :tada: or :train:",
|
||||
"Unix timestamp - if not set, the status will not expire": "Unix timestamp - if not set, the status will not expire",
|
||||
"Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.",
|
||||
"Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.",
|
||||
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
|
||||
"Use user token instead of bot token": "Use user token instead of bot token",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD",
|
||||
"New Public Message Posted Anywhere": "New Public Message Posted Anywhere",
|
||||
"New Message Posted to Channel": "New Message Posted to Channel",
|
||||
"New Direct Message": "New Direct Message",
|
||||
"New Mention in Channel": "New Mention in Channel",
|
||||
"New Mention in Direct Message": "New Mention in Direct Message",
|
||||
"New Reaction": "New Reaction",
|
||||
"Channel created": "Channel created",
|
||||
"New Command in Channel": "New Command in Channel",
|
||||
"New Command in Direct Message": "New Command in Direct Message",
|
||||
"New User": "New User",
|
||||
"New Saved Message": "New Saved Message",
|
||||
"New Team Custom Emoji": "New Team Custom Emoji",
|
||||
"Triggers when a new message is posted to any channel.": "Triggers when a new message is posted to any channel.",
|
||||
"Triggers when a new message is posted to a specific #channel you choose.": "Triggers when a new message is posted to a specific #channel you choose.",
|
||||
"Triggers when a message was posted in a direct message channel.": "Triggers when a message was posted in a direct message channel.",
|
||||
"Triggers when a username is mentioned.": "Triggers when a username is mentioned.",
|
||||
"Triggers when a username is mentioned in a direct message channel.": "Triggers when a username is mentioned in a direct message channel.",
|
||||
"Triggers when a new reaction is added to a message": "Triggers when a new reaction is added to a message",
|
||||
"Triggers when a channel is created": "Triggers when a channel is created",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)": "Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.": "Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.",
|
||||
"Triggers when a new user is created / first joins your org.": "Triggers when a new user is created / first joins your org.",
|
||||
"Triggers when you save a message.": "Triggers when you save a message.",
|
||||
"Triggers when a custom emoji has been added to a team.": "Triggers when a custom emoji has been added to a team.",
|
||||
"Ignore Bot Messages ?": "Ignore Bot Messages ?",
|
||||
"Ignore Message from Yourself ?": "Ignore Message from Yourself ?",
|
||||
"Channels": "Channels",
|
||||
"Emojis (E.g fire, smile)": "Emojis (E.g fire, smile)",
|
||||
"Commands": "Commands",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}",
|
||||
"If no channel is selected, the flow will be triggered for username mentions in all channels": "If no channel is selected, the flow will be triggered for username mentions in all channels",
|
||||
"Select emojis to trigger on": "Select emojis to trigger on",
|
||||
"List of valid commands that the bot should respond to (e.g., help, ocr, remind)": "List of valid commands that the bot should respond to (e.g., help, ocr, remind)",
|
||||
"Enable link unfurling for this message": "Enable link unfurling for this message",
|
||||
"If no channel is selected, the flow will be triggered for commands in all channels": "If no channel is selected, the flow will be triggered for commands in all channels"
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
{
|
||||
"Channel-based messaging platform": "チャネルベースのメッセージングプラットフォーム",
|
||||
"Add Reaction to Message": "メッセージにリアクションを追加",
|
||||
"Send Message To A User": "ユーザーにメッセージを送信",
|
||||
"Send Message To A Channel": "チャンネルにメッセージを送信",
|
||||
"Request Approval from A User": "ユーザーからの承認要求",
|
||||
"Request Approval in a Channel": "チャネルで承認を要求する",
|
||||
"Request Action from A User": "ユーザーからアクションを要求する",
|
||||
"Request Action in A Channel": "チャネルでのアクションのリクエスト",
|
||||
"Upload file": "ファイルをアップロード",
|
||||
"Get File": "ファイルを取得する",
|
||||
"Search messages": "メッセージを検索",
|
||||
"Find User by Email": "メールでユーザーを検索",
|
||||
"Find User by Handle": "ハンドルでユーザーを検索",
|
||||
"Find User by ID": "IDでユーザーを検索",
|
||||
"List users": "ユーザー一覧",
|
||||
"Update message": "メッセージの更新",
|
||||
"Create Channel": "チャンネルを作成",
|
||||
"Update Profile": "プロフィールを更新",
|
||||
"Get channel history": "チャンネル履歴を取得する",
|
||||
"Set User Status": "ユーザーステータスを設定",
|
||||
"Markdown to Slack format": "Markdown to Slack format",
|
||||
"Retrieve Thread Messages": "スレッドメッセージの取得",
|
||||
"Set Channel Topic": "チャンネルトピックを設定",
|
||||
"Get Message by Timestamp": "タイムスタンプによるメッセージの取得",
|
||||
"Invite User to Channel": "ユーザーをチャンネルに招待する",
|
||||
"Custom API Call": "カスタムAPI通話",
|
||||
"Add an emoji reaction to a message.": "絵文字リアクションをメッセージに追加します。",
|
||||
"Send message to a user": "ユーザーにメッセージを送信",
|
||||
"Send message to a channel": "チャネルにメッセージを送信",
|
||||
"Send approval message to a user and then wait until the message is approved or disapproved": "承認メッセージをユーザーに送信し、メッセージが承認されるか不承認になるまでお待ちください。",
|
||||
"Send approval message to a channel and then wait until the message is approved or disapproved": "承認メッセージをチャンネルに送信し、メッセージが承認されるか不承認になるまでお待ちください。",
|
||||
"Send a message to a user and wait until the user selects an action": "ユーザーにメッセージを送信し、ユーザーがアクションを選択するまで待ちます。",
|
||||
"Send a message in a channel and wait until an action is selected": "チャンネルにメッセージを送信し、アクションが選択されるまで待つ",
|
||||
"Upload file without sharing it to a channel or user": "チャンネルまたはユーザーに共有せずにファイルをアップロード",
|
||||
"Return information about a given file ID.": "指定されたファイルIDに関する情報を返します。",
|
||||
"Searches for messages matching a query": "クエリに一致するメッセージを検索",
|
||||
"Finds a user by matching against their email address.": "メールアドレスと一致してユーザーを検索します。",
|
||||
"Finds a user by matching against their Slack handle.": "Slackハンドルにマッチすることでユーザーを検索します。",
|
||||
"Finds a user by their ID.": "IDからユーザーを検索します。",
|
||||
"List all users of the workspace": "ワークスペースのすべてのユーザーの一覧",
|
||||
"Update an existing message": "既存のメッセージを更新",
|
||||
"Creates a new channel.": "新しいチャンネルを作成します。",
|
||||
"Update basic profile field such as name or title.": "名前やタイトルなどの基本的なプロファイルフィールドを更新します。",
|
||||
"Retrieve all messages from a specific channel (\"conversation\") between specified timestamps": "指定したタイムスタンプ間の特定のチャンネル (「会話」) からすべてのメッセージを取得します",
|
||||
"Sets a user's custom status": "ユーザーのカスタムステータスを設定します",
|
||||
"Convert Markdown-formatted text to Slack's pseudo - markdown syntax": "Markdown 形式のテキストを Slack の擬似シンタックスに変換する",
|
||||
"Retrieves thread messages by channel and thread timestamp.": "チャンネルとスレッドのタイムスタンプでスレッドメッセージを取得します。",
|
||||
"Sets the topic on a selected channel.": "選択したチャンネルのトピックを設定します。",
|
||||
"Retrieves a specific message from a channel history using the message's timestamp.": "メッセージのタイムスタンプを使用して、チャンネル履歴から特定のメッセージを取得します。",
|
||||
"Invites an existing User to an existing channel.": "既存のチャンネルに既存のユーザーを招待します。",
|
||||
"Make a custom API call to a specific endpoint": "特定のエンドポイントへのカスタム API コールを実行します。",
|
||||
"Markdown": "Markdown",
|
||||
"Channel": "チャンネル",
|
||||
"Message Timestamp": "メッセージのタイムスタンプ",
|
||||
"Reaction (emoji) name": "リアクション(絵文字)名",
|
||||
"User": "ユーザー",
|
||||
"Message": "メッセージ",
|
||||
"Username": "ユーザー名",
|
||||
"Profile Picture": "プロフィール写真",
|
||||
"Mention flow of origin?": "起源の言及の流れ?",
|
||||
"Block Kit blocks": "Kit ブロックをブロック",
|
||||
"Unfurl Links": "リンクを解除する",
|
||||
"Attachment": "添付ファイル",
|
||||
"Thread ts": "スレッド ts",
|
||||
"Broadcast reply to channel": "チャネルに返信を配信する",
|
||||
"Action Buttons": "アクションボタン",
|
||||
"Title": "タイトル",
|
||||
"Filename": "ファイル名",
|
||||
"File ID": "ファイルID",
|
||||
"Search query": "検索クエリ",
|
||||
"Email": "Eメールアドレス",
|
||||
"Handle": "取扱先",
|
||||
"ID": "ID",
|
||||
"Include bots?": "ボットを含めますか?",
|
||||
"Include disabled users?": "無効なユーザーを含めますか?",
|
||||
"Channel Name": "チャンネル名",
|
||||
"Is Private?": "プライベートですか?",
|
||||
"First Name": "名",
|
||||
"Last Name": "Last Name",
|
||||
"Oldest": "古い",
|
||||
"Latest": "最新",
|
||||
"Inclusive": "Inclusive",
|
||||
"Include all metadata": "すべてのメタデータを含める",
|
||||
"Text": "テキスト",
|
||||
"Emoji": "Emoji",
|
||||
"Expires at": "有効期限",
|
||||
"Markdown text": "Markdown テキスト",
|
||||
"Topic": "トピック",
|
||||
"Method": "方法",
|
||||
"Headers": "ヘッダー",
|
||||
"Query Parameters": "クエリパラメータ",
|
||||
"Body": "本文",
|
||||
"Response is Binary ?": "応答はバイナリですか?",
|
||||
"No Error on Failure": "失敗時にエラーはありません",
|
||||
"Timeout (in seconds)": "タイムアウト(秒)",
|
||||
"Use user token": "ユーザートークンを使用する",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ",
|
||||
"You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'": "チャンネルIDは、チャンネルを右クリックして「チャンネル詳細を表示」を選択することで取得できます。",
|
||||
"Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "`1710304378.475129` など、返信したいメッセージのタイムスタンプを入力してください。 あるいは、メッセージの隣にある3つの点をクリックして、 `Copy link` オプションを選択することで、メッセージのリンクを簡単に取得できます。",
|
||||
"e.g.`thumbsup`": "e.g.`thumbsup`",
|
||||
"The username of the bot": "ボットのユーザー名",
|
||||
"The profile picture of the bot": "ボットのプロフィール写真",
|
||||
"If checked, adds a mention at the end of the Slack message to indicate which flow sent the notification, with a link to said flow.": "チェックされている場合、Slackメッセージの末尾にメンションを追加し、どのフローが通知を送信したかを示します。",
|
||||
"See https://api.slack.com/block-kit for specs": "仕様については https://api.slack.com/block-kit を参照してください。",
|
||||
"Enable link unfurling for this message": "このメッセージのリンクの展開を有効にする",
|
||||
"The text of your message": "メッセージのテキスト",
|
||||
"Provide the ts (timestamp) value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "このメッセージを返信させるために、**親**メッセージのts(タイムスタンプ)の値を入力してください。 返信自体の ts 値を使用しないでください。代わりにその親を使用してください。例えば、`1710304378 75129`. または、親メッセージの横にある3つの点をクリックして、 `Copy link` オプションを選択することで、簡単にメッセージリンクを取得できます。",
|
||||
"When replying to a thread, also make the message visible to everyone in the channel (only applicable when Thread Timestamp is provided)": "スレッドに返信すると、チャンネル内の全員にメッセージを表示させます(Thread Timestamp が指定されている場合にのみ適用されます)",
|
||||
"You can pass the file ID from the New Message Trigger payload.": "New Message TriggerペイロードからファイルIDを渡すことができます。",
|
||||
"User handle (display name), without the leading @": "ユーザーハンドル(表示名)は、@を一番下にしないでください",
|
||||
"Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "`1710304378.475129` など、更新したいメッセージのタイムスタンプを入力してください。 あるいは、メッセージの隣にある3つの点をクリックして、 `Copy link` オプションを選択することで、メッセージのリンクを簡単に取得できます。",
|
||||
"The updated text of your message": "メッセージの更新されたテキスト",
|
||||
"Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.": "ユーザーのメールアドレスを変更すると、古いアドレスと新しいアドレスの両方にメールが送信されます。 変更を知らせるスラックボットメッセージをユーザに投稿することもできます。",
|
||||
"ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.": "変更するユーザーID。この引数は有料チームの管理者のみが指定できます。 **メールでユーザーを検索** アクションを使用して ID を取得できます。",
|
||||
"Only messages after this timestamp will be included in results": "このタイムスタンプの後のメッセージのみが結果に含まれます",
|
||||
"Only messages before this timestamp will be included in results. Default is the current time": "このタイムスタンプの前のメッセージのみが結果に含まれます。デフォルトは現在時刻です",
|
||||
"Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified": "結果に最も古いタイムスタンプまたは最新のタイムスタンプを含めます。タイムスタンプが指定されていない限り無視されます",
|
||||
"Return all metadata associated with each message": "各メッセージに関連付けられているすべてのメタデータを返す",
|
||||
"Emoji shortname (standard or custom), e.g. :tada: or :train:": "Emoji shortname (standard or custom), e.g. :tada: or :train:",
|
||||
"Unix timestamp - if not set, the status will not expire": "Unix timestamp - 設定されていない場合、ステータスは期限切れになりません",
|
||||
"Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "このメッセージの返信を取得するために、**親** メッセージの ts (timestamp) 値を入力します。 返信自体のts値を使用しないでください。代わりに親を使用してください。 たとえば、`1710304378.475129` です。 親メッセージの横にある3つの点をクリックし、 `Copy link` オプションを選択することで、メッセージのリンクを簡単に取得できます。",
|
||||
"Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "`1710304378.475129` など、取得したいメッセージのタイムスタンプを入力してください。 あるいは、メッセージの隣にある3つの点をクリックして、 `Copy link` オプションを選択することで、メッセージのリンクを簡単に取得できます。",
|
||||
"Authorization headers are injected automatically from your connection.": "認証ヘッダは接続から自動的に注入されます。",
|
||||
"Enable for files like PDFs, images, etc..": "PDF、画像などのファイルを有効にします。",
|
||||
"Use user token instead of bot token": "ボットトークンの代わりにユーザートークンを使用する",
|
||||
"GET": "取得",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "削除",
|
||||
"HEAD": "頭",
|
||||
"New Public Message Posted Anywhere": "どこにでも新しい公開メッセージが投稿されました",
|
||||
"New Message Posted to Channel": "新しいメッセージがチャンネルに投稿されました",
|
||||
"New Direct Message": "新しいダイレクトメッセージ",
|
||||
"New Mention in Channel": "チャンネル内の新規メンション",
|
||||
"New Mention in Direct Message": "ダイレクトメッセージに新しいメンション",
|
||||
"New Reaction": "新しい反応",
|
||||
"Channel created": "チャンネルを作成しました",
|
||||
"New Command in Channel": "チャンネル内の新しいコマンド",
|
||||
"New Command in Direct Message": "ダイレクトメッセージ内の新しいコマンド",
|
||||
"New User": "新規ユーザー",
|
||||
"New Saved Message": "新規保存されたメッセージ",
|
||||
"New Team Custom Emoji": "新しいチームカスタム絵文字",
|
||||
"Triggers when a new message is posted to any channel.": "新しいメッセージが任意のチャンネルに投稿されたときにトリガーします。",
|
||||
"Triggers when a new message is posted to a specific #channel you choose.": "選択した特定の#チャンネルに新しいメッセージが投稿されたときにトリガーされます。",
|
||||
"Triggers when a message was posted in a direct message channel.": "メッセージがダイレクトメッセージチャンネルに投稿されたときにトリガーします。",
|
||||
"Triggers when a username is mentioned.": "ユーザー名が指定されたときにトリガーします。",
|
||||
"Triggers when a username is mentioned in a direct message channel.": "ユーザー名がダイレクトメッセージチャンネルで指定されたときにトリガーされます。",
|
||||
"Triggers when a new reaction is added to a message": "メッセージに新しいリアクションが追加されたときにトリガーします",
|
||||
"Triggers when a channel is created": "チャンネルが作成されたときにトリガーする",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)": "特定のコマンドがボットに送信されたときにトリガーします(例: @botコマンド arg1 arg2)",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.": "特定のコマンドが直接メッセージを介してボットに送信されたとき(例:@botコマンド arg1 arg2)にトリガーします。",
|
||||
"Triggers when a new user is created / first joins your org.": "新規ユーザーが作成されたとき/最初に組織に参加したときにトリガーします。",
|
||||
"Triggers when you save a message.": "メッセージを保存するときにトリガーします。",
|
||||
"Triggers when a custom emoji has been added to a team.": "カスタム絵文字がチームに追加されたときにトリガーします。",
|
||||
"Ignore Bot Messages ?": "ボットメッセージを無視しますか?",
|
||||
"Ignore Message from Yourself ?": "自分からのメッセージを無視しますか?",
|
||||
"Channels": "チャンネル",
|
||||
"Emojis (E.g fire, smile)": "Emojis (E.g fire, smile)",
|
||||
"Commands": "マーク",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}",
|
||||
"If no channel is selected, the flow will be triggered for username mentions in all channels": "チャンネルが選択されていない場合、フローはすべてのチャンネルのユーザー名メンションに対してトリガーされます",
|
||||
"Select emojis to trigger on": "トリガーする絵文字を選択してください",
|
||||
"List of valid commands that the bot should respond to (e.g., help, ocr, remind)": "ボットが応答する有効なコマンドのリスト(例:ヘルプ、分かった、リマインダーなど)",
|
||||
"If no channel is selected, the flow will be triggered for commands in all channels": "チャンネルが選択されていない場合、フローはすべてのチャンネルのコマンドに対してトリガーされます"
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
{
|
||||
"Channel-based messaging platform": "Kanaal gebaseerde berichtenplatform",
|
||||
"Add Reaction to Message": "Reactie toevoegen aan bericht",
|
||||
"Send Message To A User": "Stuur bericht naar een gebruiker",
|
||||
"Send Message To A Channel": "Bericht verzenden naar een kanaal",
|
||||
"Request Approval from A User": "Vraag goedkeuring aan een gebruiker",
|
||||
"Request Approval in a Channel": "Verzoek om goedkeuring in een Kanaal",
|
||||
"Request Action from A User": "Vraag actie aan van een gebruiker",
|
||||
"Request Action in A Channel": "Actie aanvragen in een kanaal",
|
||||
"Upload file": "Bestand uploaden",
|
||||
"Get File": "Bestand ophalen",
|
||||
"Search messages": "Zoek berichten",
|
||||
"Find User by Email": "Gebruiker zoeken per e-mail",
|
||||
"Find User by Handle": "Gebruiker zoeken op Handle",
|
||||
"Find User by ID": "Zoek gebruiker op ID",
|
||||
"List users": "Gebruikers weergeven",
|
||||
"Update message": "Bericht bijwerken",
|
||||
"Create Channel": "Kanaal aanmaken",
|
||||
"Update Profile": "Profiel bijwerken",
|
||||
"Get channel history": "Haal kanaalgeschiedenis op",
|
||||
"Set User Status": "Gebruikersstatus instellen",
|
||||
"Markdown to Slack format": "Markdown to Slack format",
|
||||
"Retrieve Thread Messages": "Discussieberichten ophalen",
|
||||
"Set Channel Topic": "Kanaalonderwerp instellen",
|
||||
"Get Message by Timestamp": "Bericht ontvangen op tijdstempel",
|
||||
"Invite User to Channel": "Gebruiker uitnodigen voor kanaal",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Add an emoji reaction to a message.": "Een emoji reactie toevoegen aan een bericht.",
|
||||
"Send message to a user": "Stuur bericht naar een gebruiker",
|
||||
"Send message to a channel": "Stuur bericht naar een kanaal",
|
||||
"Send approval message to a user and then wait until the message is approved or disapproved": "Stuur een goedkeuringsbericht naar een gebruiker en wacht dan tot het bericht is goedgekeurd of afgekeurd",
|
||||
"Send approval message to a channel and then wait until the message is approved or disapproved": "Stuur een goedkeuringsbericht naar een kanaal en wacht dan tot het bericht is goedgekeurd of afgekeurd",
|
||||
"Send a message to a user and wait until the user selects an action": "Stuur een bericht naar een gebruiker en wacht tot de gebruiker een actie selecteert",
|
||||
"Send a message in a channel and wait until an action is selected": "Stuur een bericht in een kanaal en wacht tot een actie is geselecteerd",
|
||||
"Upload file without sharing it to a channel or user": "Upload bestand zonder het te delen met een kanaal of gebruiker",
|
||||
"Return information about a given file ID.": "Retourneer informatie over een gegeven bestand ID.",
|
||||
"Searches for messages matching a query": "Zoekt naar berichten die aan een zoekopdracht voldoen",
|
||||
"Finds a user by matching against their email address.": "Vindt een gebruiker door te matchen met zijn e-mailadres.",
|
||||
"Finds a user by matching against their Slack handle.": "Vindt een gebruiker die overeenkomt met zijn Slack-handgreep.",
|
||||
"Finds a user by their ID.": "Vindt een gebruiker via hun ID.",
|
||||
"List all users of the workspace": "Toon alle gebruikers van de workspace",
|
||||
"Update an existing message": "Een bestaand bericht bijwerken",
|
||||
"Creates a new channel.": "Maakt een nieuw kanaal aan.",
|
||||
"Update basic profile field such as name or title.": "Update veld basis profiel zoals naam of titel.",
|
||||
"Retrieve all messages from a specific channel (\"conversation\") between specified timestamps": "Haal alle berichten op van een specifiek kanaal (\"gesprek\") tussen de opgegeven tijdstempels",
|
||||
"Sets a user's custom status": "Stelt een aangepaste status van een gebruiker in",
|
||||
"Convert Markdown-formatted text to Slack's pseudo - markdown syntax": "Converteer Markdown-geformatteerde tekst naar Slack's pseudo - markdown syntaxis",
|
||||
"Retrieves thread messages by channel and thread timestamp.": "Ophalen thread berichten per kanaal en thread tijdstempel.",
|
||||
"Sets the topic on a selected channel.": "Stelt het onderwerp in op een geselecteerd kanaal.",
|
||||
"Retrieves a specific message from a channel history using the message's timestamp.": "Haal een specifiek bericht op van een kanaal geschiedenis met behulp van de tijdsaanduiding.",
|
||||
"Invites an existing User to an existing channel.": "Nodig een bestaande gebruiker uit voor een bestaand kanaal.",
|
||||
"Make a custom API call to a specific endpoint": "Maak een aangepaste API call naar een specifiek eindpunt",
|
||||
"Markdown": "Markdown",
|
||||
"Channel": "Kanaal",
|
||||
"Message Timestamp": "Bericht Tijdsstempel",
|
||||
"Reaction (emoji) name": "Reactie (emoji) naam",
|
||||
"User": "Gebruiker",
|
||||
"Message": "bericht",
|
||||
"Username": "Gebruikersnaam",
|
||||
"Profile Picture": "Profiel Afbeelding",
|
||||
"Mention flow of origin?": "Vermeld de oorsprongsstroom?",
|
||||
"Block Kit blocks": "Blokkeer Uitrusting Blokken",
|
||||
"Unfurl Links": "Ontmantel links",
|
||||
"Attachment": "Bijlage",
|
||||
"Thread ts": "Conversatie ts",
|
||||
"Broadcast reply to channel": "Antwoord uitzenden naar kanaal",
|
||||
"Action Buttons": "Actieknoppen",
|
||||
"Title": "Aanspreektitel",
|
||||
"Filename": "Bestandsnaam",
|
||||
"File ID": "Bestand ID",
|
||||
"Search query": "Zoek query",
|
||||
"Email": "E-mail",
|
||||
"Handle": "Handgreep",
|
||||
"ID": "ID",
|
||||
"Include bots?": "bots meenemen?",
|
||||
"Include disabled users?": "Inclusief uitgeschakelde gebruikers?",
|
||||
"Channel Name": "Kanaal naam",
|
||||
"Is Private?": "Is privé?",
|
||||
"First Name": "Voornaam",
|
||||
"Last Name": "Achternaam",
|
||||
"Oldest": "Oudste",
|
||||
"Latest": "Nieuwste",
|
||||
"Inclusive": "Inclusief",
|
||||
"Include all metadata": "Voeg alle metagegevens toe",
|
||||
"Text": "Tekstveld",
|
||||
"Emoji": "Emoji",
|
||||
"Expires at": "Verloopt op",
|
||||
"Markdown text": "Markdown tekst",
|
||||
"Topic": "Onderwerp",
|
||||
"Method": "Methode",
|
||||
"Headers": "Kopteksten",
|
||||
"Query Parameters": "Query parameters",
|
||||
"Body": "Lichaam",
|
||||
"Response is Binary ?": "Antwoord is binair?",
|
||||
"No Error on Failure": "Geen fout bij fout",
|
||||
"Timeout (in seconds)": "Time-out (in seconden)",
|
||||
"Use user token": "Gebruik gebruikerstoken",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ": "\n\t± voeg de bot toe aan het kanaal door de volgende stappen te volgen:\n\t 1. Typ /invite in de chat van het kanaal.\n\t 2. Klik op Apps toevoegen aan dit kanaal.\n\t 3. Zoek en voeg de bot toe.\n \n**Opmerking**: Als je het kanaal niet kan vinden in de dropdown lijst (die tot 2000 kanalen ophaalt), klik op **(F)** en typ het kanaal ID direct.\n ",
|
||||
"You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'": "U kunt het kanaal ID krijgen door met de rechtermuisknop op het kanaal te klikken en 'Kanaalgegevens bekijken' te selecteren.",
|
||||
"Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Geef de tijdstempel van het bericht dat u wilt reageren, zoals `1710304378.475129`. U kunt ook gemakkelijk de berichtkoppeling verkrijgen door op de drie punten naast het bericht te klikken en de optie 'Koppeling kopiëren' te selecteren.",
|
||||
"e.g.`thumbsup`": "e.g.`thumbsup`",
|
||||
"The username of the bot": "De gebruikersnaam van de bot",
|
||||
"The profile picture of the bot": "De profielfoto van de bot",
|
||||
"If checked, adds a mention at the end of the Slack message to indicate which flow sent the notification, with a link to said flow.": "Indien aangevinkt, voegt een vermelding toe aan het einde van het Slack bericht om aan te geven welke stroom de melding heeft gestuurd, met een link naar de genoemde flow.",
|
||||
"See https://api.slack.com/block-kit for specs": "Zie https://api.slack.com/block-kit voor specificaties",
|
||||
"Enable link unfurling for this message": "Activeer link ontsplitsen voor dit bericht",
|
||||
"The text of your message": "De tekst van je bericht",
|
||||
"Provide the ts (timestamp) value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Geef de ts (timestamp) waarde op van het **ouder** bericht om dit bericht te laten beantwoorden. Gebruik niet de ts waarde van het antwoord zelf; gebruik zijn bovenliggende. Bijvoorbeeld `1710304378. 75129`.Als alternatief kun je gemakkelijk de berichtkoppeling verkrijgen door op de drie punten naast het bovenliggende bericht te klikken en de `Kopieer link` optie te selecteren.",
|
||||
"When replying to a thread, also make the message visible to everyone in the channel (only applicable when Thread Timestamp is provided)": "Bij het antwoorden op een conversatie, maak het bericht ook zichtbaar voor iedereen in het kanaal (alleen van toepassing als de Thread tijdstempel wordt geleverd)",
|
||||
"You can pass the file ID from the New Message Trigger payload.": "U kunt het bestand-ID doorgeven vanuit de New Message Trigger payload.",
|
||||
"User handle (display name), without the leading @": "Gebruiker handgreep (weergavenaam), zonder leider @",
|
||||
"Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Geef het gewenste bericht aan, zoals `1710304378.475129`. U kunt ook gemakkelijk de berichtkoppeling verkrijgen door op de drie punten naast het bericht te klikken en de optie 'Koppeling kopiëren' te selecteren.",
|
||||
"The updated text of your message": "De bijgewerkte tekst van je bericht",
|
||||
"Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.": "Het veranderen van het e-mailadres van een gebruiker stuurt een e-mail naar zowel de oude als de nieuwe adressen, en post ook een slackbot bericht aan de gebruiker die hem informeert over de wijziging.",
|
||||
"ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.": "ID van de te wijzigen gebruiker. Dit argument kan alleen worden opgegeven door admins van betaalde teams. U kunt **Vind Gebruiker via E-mail** actie om ID op te halen.",
|
||||
"Only messages after this timestamp will be included in results": "Alleen berichten na deze tijdstempel zullen in de resultaten worden opgenomen",
|
||||
"Only messages before this timestamp will be included in results. Default is the current time": "Alleen berichten voor deze tijdstempel worden in de resultaten opgenomen. Standaard is de huidige tijd",
|
||||
"Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified": "Inclusief berichten met oudste of nieuwste tijdstempels in de resultaten. Genegeerd tenzij er een tijdstempel is opgegeven",
|
||||
"Return all metadata associated with each message": "Resultaat is alle metadata van elk bericht",
|
||||
"Emoji shortname (standard or custom), e.g. :tada: or :train:": "Emoji shortname (standaard of aangepast), bijv. :tada: of :train:",
|
||||
"Unix timestamp - if not set, the status will not expire": "Unix tijdstempel - indien niet ingesteld, zal de status niet verlopen",
|
||||
"Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Geef de ts (timestamp) waarde op van het **ouder** bericht om antwoorden van dit bericht op te halen. Gebruik niet de ts waarde van het antwoord zelf; gebruik in plaats daarvan het bovenliggende. Bijvoorbeeld `1710304378.475129`. vanzelfsprekend, je kunt gemakkelijk de berichtlink verkrijgen door op de drie punten naast het bovenliggende bericht te klikken en de optie 'Koppeling kopiëren' te selecteren.",
|
||||
"Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Geef de tijdstempel van het bericht dat je wilt ophalen, zoals `1710304378.475129`. U kunt ook gemakkelijk de berichtkoppeling verkrijgen door op de drie punten naast het bericht te klikken en de optie 'Koppeling kopiëren' te selecteren.",
|
||||
"Authorization headers are injected automatically from your connection.": "Autorisatie headers worden automatisch geïnjecteerd vanuit uw verbinding.",
|
||||
"Enable for files like PDFs, images, etc..": "Inschakelen voor bestanden zoals PDF's, afbeeldingen etc..",
|
||||
"Use user token instead of bot token": "Gebruik gebruikerstoken in plaats van bot token",
|
||||
"GET": "KRIJG",
|
||||
"POST": "POSTE",
|
||||
"PATCH": "BEKIJK",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "VERWIJDEREN",
|
||||
"HEAD": "HOOFD",
|
||||
"New Public Message Posted Anywhere": "Overal nieuw openbaar bericht geplaatst",
|
||||
"New Message Posted to Channel": "Nieuw bericht naar kanaal geplaatst",
|
||||
"New Direct Message": "Nieuw persoonlijk bericht",
|
||||
"New Mention in Channel": "Nieuwe vermelding in kanaal",
|
||||
"New Mention in Direct Message": "Nieuwe vermelding in een persoonlijk bericht",
|
||||
"New Reaction": "Nieuwe Reactie",
|
||||
"Channel created": "Kanaal aangemaakt",
|
||||
"New Command in Channel": "Nieuwe opdracht in kanaal",
|
||||
"New Command in Direct Message": "Nieuw commando in een persoonlijk bericht",
|
||||
"New User": "Nieuwe gebruiker",
|
||||
"New Saved Message": "Nieuw opgeslagen bericht",
|
||||
"New Team Custom Emoji": "Nieuw Team Aangepaste Emoji",
|
||||
"Triggers when a new message is posted to any channel.": "Wordt uitgevoerd wanneer een nieuw bericht op een kanaal is geplaatst.",
|
||||
"Triggers when a new message is posted to a specific #channel you choose.": "Triggert wanneer een nieuw bericht wordt geplaatst op een specifiek #channel dat je kiest.",
|
||||
"Triggers when a message was posted in a direct message channel.": "Triggert wanneer een bericht is geplaatst in een direct berichtkanaal.",
|
||||
"Triggers when a username is mentioned.": "Triggert wanneer een gebruikersnaam wordt vermeld.",
|
||||
"Triggers when a username is mentioned in a direct message channel.": "Triggert wanneer een gebruikersnaam wordt genoemd in een direct berichtkanaal.",
|
||||
"Triggers when a new reaction is added to a message": "Triggert wanneer een nieuwe reactie wordt toegevoegd aan een bericht",
|
||||
"Triggers when a channel is created": "Triggert wanneer een kanaal wordt aangemaakt",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)": "Triggert wanneer een specifiek commando wordt verzonden naar de bot (bijv. @bot commando arg1 arg2)",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.": "Triggert wanneer een specifiek commando wordt verzonden naar de bot (bijvoorbeeld @bot commando arg1 arg2) via Direct Message.",
|
||||
"Triggers when a new user is created / first joins your org.": "Triggert wanneer een nieuwe gebruiker wordt aangemaakt / treedt voor het eerst bij je org.",
|
||||
"Triggers when you save a message.": "Triggert wanneer je een bericht opslaat.",
|
||||
"Triggers when a custom emoji has been added to a team.": "Triggert wanneer een eigen emoji aan een team is toegevoegd.",
|
||||
"Ignore Bot Messages ?": "Bot berichten negeren?",
|
||||
"Ignore Message from Yourself ?": "Negeer bericht van jezelf ?",
|
||||
"Channels": "Kanalen",
|
||||
"Emojis (E.g fire, smile)": "Emojis (E.g vuur, smile)",
|
||||
"Commands": "Opdrachten",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}": "\n\t± voeg de bot toe aan het kanaal door de volgende stappen te volgen:\n\t 1. Typ /invite in de chat van het kanaal.\n\t 2. Klik op Apps toevoegen aan dit kanaal.\n\t 3. Zoek naar en voeg de bot toe.\n \n**Opmerking**: Als je het kanaal niet kan vinden in de dropdown lijst (die tot 2000 kanalen ophaalt), klik op **(F)** en typ de kanaal ID direct in een array zoals dit: `{`{ ['your_channel_id_1', 'your_channel_id_2', . .] `}`}",
|
||||
"If no channel is selected, the flow will be triggered for username mentions in all channels": "Als er geen kanaal is geselecteerd, zal de flow worden geactiveerd voor vermelding van de gebruikersnaam in alle kanalen",
|
||||
"Select emojis to trigger on": "Selecteer emojis op te starten",
|
||||
"List of valid commands that the bot should respond to (e.g., help, ocr, remind)": "Lijst van geldige commando's waarop de bot moet reageren (bijv. hulp, ocr, herinnering)",
|
||||
"If no channel is selected, the flow will be triggered for commands in all channels": "Als er geen kanaal is geselecteerd, wordt de stroom geactiveerd voor commando's in alle kanalen"
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
{
|
||||
"Channel-based messaging platform": "Plataforma de mensagens baseada em canal",
|
||||
"Add Reaction to Message": "Adicionar Reação à Mensagem",
|
||||
"Send Message To A User": "Enviar mensagem para um usuário",
|
||||
"Send Message To A Channel": "Enviar mensagem a um canal",
|
||||
"Request Approval from A User": "Solicitar aprovação de um usuário",
|
||||
"Request Approval in a Channel": "Solicitação de aprovação em um canal",
|
||||
"Request Action from A User": "Solicitar ação de um usuário",
|
||||
"Request Action in A Channel": "Ação Solicitar em um canal",
|
||||
"Upload file": "Upload de arquivo",
|
||||
"Get File": "Obter arquivo",
|
||||
"Search messages": "Procurar mensagens",
|
||||
"Find User by Email": "Encontrar usuário por e-mail",
|
||||
"Find User by Handle": "Encontrar Usuário por Identificador",
|
||||
"Find User by ID": "Encontrar usuário por ID",
|
||||
"List users": "Lista de usuários",
|
||||
"Update message": "Atualizar mensagem",
|
||||
"Create Channel": "Criar Canal",
|
||||
"Update Profile": "Atualizar o perfil",
|
||||
"Get channel history": "Obter histórico do canal",
|
||||
"Set User Status": "Definir Status do Usuário",
|
||||
"Markdown to Slack format": "Markdown to Slack format",
|
||||
"Retrieve Thread Messages": "Recuperar mensagens do tópico",
|
||||
"Set Channel Topic": "Definir tópico do canal",
|
||||
"Get Message by Timestamp": "Obter mensagem por Timestamp",
|
||||
"Invite User to Channel": "Convidar usuário para o canal",
|
||||
"Custom API Call": "Chamada de API personalizada",
|
||||
"Add an emoji reaction to a message.": "Adicione uma reação de emoji a uma mensagem.",
|
||||
"Send message to a user": "Enviar mensagem para um usuário",
|
||||
"Send message to a channel": "Enviar mensagem para um canal",
|
||||
"Send approval message to a user and then wait until the message is approved or disapproved": "Enviar mensagem de aprovação para um usuário e, em seguida, esperar até que a mensagem seja aprovada ou desaprovada",
|
||||
"Send approval message to a channel and then wait until the message is approved or disapproved": "Enviar mensagem de aprovação para um canal e esperar até que a mensagem seja aprovada ou desaprovada",
|
||||
"Send a message to a user and wait until the user selects an action": "Enviar uma mensagem para um usuário e esperar até que o usuário selecione uma ação",
|
||||
"Send a message in a channel and wait until an action is selected": "Enviar uma mensagem em um canal e esperar até que uma ação seja selecionada",
|
||||
"Upload file without sharing it to a channel or user": "Fazer upload de arquivo sem compartilhá-lo com um canal ou usuário",
|
||||
"Return information about a given file ID.": "Retornar informações sobre um determinado arquivo de ID.",
|
||||
"Searches for messages matching a query": "Procura por mensagens correspondentes a uma consulta",
|
||||
"Finds a user by matching against their email address.": "Localiza um usuário correspondendo com seu endereço de e-mail.",
|
||||
"Finds a user by matching against their Slack handle.": "Localiza um usuário combinando com o seu manipulador de Slack.",
|
||||
"Finds a user by their ID.": "Localiza um usuário com seu ID.",
|
||||
"List all users of the workspace": "Listar todos os usuários da área de trabalho",
|
||||
"Update an existing message": "Atualizar uma mensagem existente",
|
||||
"Creates a new channel.": "Cria um novo canal.",
|
||||
"Update basic profile field such as name or title.": "Atualizar o campo de perfil básico como nome ou título.",
|
||||
"Retrieve all messages from a specific channel (\"conversation\") between specified timestamps": "Recuperar todas as mensagens de um canal específico (\"conversa\") entre carimbos de tempo especificados",
|
||||
"Sets a user's custom status": "Define o status personalizado de um usuário",
|
||||
"Convert Markdown-formatted text to Slack's pseudo - markdown syntax": "Converter texto formatado em Markdown-formatado para pseudônimo do Slack - sintaxe markdown",
|
||||
"Retrieves thread messages by channel and thread timestamp.": "Recupera mensagens de thread por canal e thread no horário.",
|
||||
"Sets the topic on a selected channel.": "Define o tópico em um canal selecionado.",
|
||||
"Retrieves a specific message from a channel history using the message's timestamp.": "Recupera uma mensagem específica de um histórico de canais usando a hora da mensagem.",
|
||||
"Invites an existing User to an existing channel.": "Convida um usuário existente para um canal existente.",
|
||||
"Make a custom API call to a specific endpoint": "Faça uma chamada de API personalizada para um ponto de extremidade específico",
|
||||
"Markdown": "Markdown",
|
||||
"Channel": "Canal",
|
||||
"Message Timestamp": "Timestamp da Mensagem",
|
||||
"Reaction (emoji) name": "Nome da Reação (emoji)",
|
||||
"User": "Usuário",
|
||||
"Message": "mensagem",
|
||||
"Username": "Usuário:",
|
||||
"Profile Picture": "Imagem do perfil",
|
||||
"Mention flow of origin?": "Mencionar o fluxo de origem?",
|
||||
"Block Kit blocks": "Bloco do Kit",
|
||||
"Unfurl Links": "Desfurtar Links",
|
||||
"Attachment": "Anexo",
|
||||
"Thread ts": "Tópico",
|
||||
"Broadcast reply to channel": "Transmitir resposta para o canal",
|
||||
"Action Buttons": "Botões de Ação",
|
||||
"Title": "Título",
|
||||
"Filename": "Nome",
|
||||
"File ID": "ID do arquivo",
|
||||
"Search query": "Consulta de pesquisa",
|
||||
"Email": "e-mail",
|
||||
"Handle": "Tratar",
|
||||
"ID": "ID",
|
||||
"Include bots?": "Incluir bots?",
|
||||
"Include disabled users?": "Incluir usuários desativados?",
|
||||
"Channel Name": "Nome do Canal",
|
||||
"Is Private?": "É privado?",
|
||||
"First Name": "Nome",
|
||||
"Last Name": "Sobrenome",
|
||||
"Oldest": "Antigos",
|
||||
"Latest": "Últimos",
|
||||
"Inclusive": "Inclusivo",
|
||||
"Include all metadata": "Incluir todos os metadados",
|
||||
"Text": "texto",
|
||||
"Emoji": "Emoji",
|
||||
"Expires at": "Expira em",
|
||||
"Markdown text": "Texto Markdown",
|
||||
"Topic": "Tópico",
|
||||
"Method": "Método",
|
||||
"Headers": "Cabeçalhos",
|
||||
"Query Parameters": "Parâmetros da consulta",
|
||||
"Body": "Conteúdo",
|
||||
"Response is Binary ?": "A resposta é binária ?",
|
||||
"No Error on Failure": "Nenhum erro no Failure",
|
||||
"Timeout (in seconds)": "Tempo limite (em segundos)",
|
||||
"Use user token": "Usar token de usuário",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ",
|
||||
"You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'": "Você pode obter a ID do canal clicando com o botão direito do mouse no canal e selecionando 'Ver Detalhes do Canal'.",
|
||||
"Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Por favor, forneça o carimbo de data/hora da mensagem que você deseja reagir, como `1710304378.475129`. Como alternativa, você pode facilmente obter o link da mensagem clicando nos três pontos ao lado da mensagem e selecionando a opção `Copiar link`.",
|
||||
"e.g.`thumbsup`": "e.g.`thumbsup`",
|
||||
"The username of the bot": "O nome de usuário do bot",
|
||||
"The profile picture of the bot": "A imagem de perfil do bot",
|
||||
"If checked, adds a mention at the end of the Slack message to indicate which flow sent the notification, with a link to said flow.": "Se marcado, adiciona uma menção no final da mensagem do Slack para indicar qual fluxo enviou a notificação, com um link para esse fluxo.",
|
||||
"See https://api.slack.com/block-kit for specs": "Veja https://api.slack.com/block-kit para especificações",
|
||||
"Enable link unfurling for this message": "Ativar desenfuração de link para esta mensagem",
|
||||
"The text of your message": "O texto da sua mensagem",
|
||||
"Provide the ts (timestamp) value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Forneça o valor ts (timestamp) da mensagem **pai** para fazer desta mensagem uma resposta. Não use o valor de ts da própria resposta; use o seu pai. Por exemplo, `1710304378. 75129`.Alternativamente, você pode obter facilmente o link da mensagem clicando nos três pontos ao lado da mensagem pai e selecionando a opção `Copiar link`.",
|
||||
"When replying to a thread, also make the message visible to everyone in the channel (only applicable when Thread Timestamp is provided)": "Ao responder a um tópico, também torne a mensagem visível para todos no canal (apenas aplicável quando o tópico for fornecido)",
|
||||
"You can pass the file ID from the New Message Trigger payload.": "Você pode passar o ID do arquivo a partir do payload do disparador Nova Mensagem.",
|
||||
"User handle (display name), without the leading @": "Identificador do usuário (nome de exibição), sem a liderança @",
|
||||
"Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Por favor, forneça o carimbo de data/hora da mensagem que você deseja atualizar, como `1710304378.475129`. Como alternativa, você pode facilmente obter o link da mensagem clicando nos três pontos ao lado da mensagem e selecionando a opção `Copiar link`.",
|
||||
"The updated text of your message": "O texto atualizado da sua mensagem",
|
||||
"Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.": "Alterar o endereço de e-mail de um usuário enviará um email para os endereços antigos e novos, e também publique uma mensagem de laxismo para o usuário que o informe sobre a mudança.",
|
||||
"ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.": "ID de usuário a ser alterado. Este argumento só pode ser especificado pelos administradores em equipes pagas. ou use a ação **Encontrar usuário por e-mail** para obter o ID.",
|
||||
"Only messages after this timestamp will be included in results": "Apenas mensagens após este timestamp serão incluídas nos resultados",
|
||||
"Only messages before this timestamp will be included in results. Default is the current time": "Apenas mensagens antes deste timestamp serão incluídas nos resultados. O padrão é o tempo atual",
|
||||
"Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified": "Inclui mensagens com timestamps mais antigos ou mais recentes nos resultados. Ignorados a menos que um timestamp seja especificado",
|
||||
"Return all metadata associated with each message": "Devolver todos os metadados associados a cada mensagem",
|
||||
"Emoji shortname (standard or custom), e.g. :tada: or :train:": "shortname do emoji (padrão ou personalizado), por exemplo, :tada: ou :train:",
|
||||
"Unix timestamp - if not set, the status will not expire": "Marca temporal Unix - se não for definido, o status não expirará",
|
||||
"Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Indique o valor ts (timestamp) da mensagem **pai** para recuperar as respostas desta mensagem. Não use o valor de ts da própria resposta; use seu pai. Por exemplo, `1710304378.475129`. lternativamente, você pode facilmente obter o link da mensagem clicando nos três pontos ao lado da mensagem principal e selecionando a opção `Copiar link`.",
|
||||
"Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Por favor, forneça o carimbo de data da mensagem que você deseja recuperar, como `1710304378.475129`. Como alternativa, você pode facilmente obter o link da mensagem clicando nos três pontos ao lado da mensagem e selecionando a opção `Copiar link`.",
|
||||
"Authorization headers are injected automatically from your connection.": "Os cabeçalhos de autorização são inseridos automaticamente a partir da sua conexão.",
|
||||
"Enable for files like PDFs, images, etc..": "Habilitar para arquivos como PDFs, imagens, etc..",
|
||||
"Use user token instead of bot token": "Usar token de usuário em vez do token de bot",
|
||||
"GET": "OBTER",
|
||||
"POST": "POSTAR",
|
||||
"PATCH": "COMPRAR",
|
||||
"PUT": "COLOCAR",
|
||||
"DELETE": "EXCLUIR",
|
||||
"HEAD": "CABEÇA",
|
||||
"New Public Message Posted Anywhere": "Nova mensagem pública postada em qualquer lugar",
|
||||
"New Message Posted to Channel": "Nova mensagem postada no canal",
|
||||
"New Direct Message": "Nova mensagem direta",
|
||||
"New Mention in Channel": "Nova menção no canal",
|
||||
"New Mention in Direct Message": "Nova menção em mensagem direta",
|
||||
"New Reaction": "Nova Reação",
|
||||
"Channel created": "Canal criado",
|
||||
"New Command in Channel": "Novo Comando no Canal",
|
||||
"New Command in Direct Message": "Novo comando em mensagem direta",
|
||||
"New User": "Novo Usuário",
|
||||
"New Saved Message": "Nova mensagem salva",
|
||||
"New Team Custom Emoji": "Emoji Personalizado do Novo Time",
|
||||
"Triggers when a new message is posted to any channel.": "Aciona quando uma nova mensagem é postada em qualquer canal.",
|
||||
"Triggers when a new message is posted to a specific #channel you choose.": "Dispara quando uma nova mensagem for publicada em um canal de #canal específico que você escolher.",
|
||||
"Triggers when a message was posted in a direct message channel.": "Aciona quando uma mensagem é postada em um canal de mensagem direta.",
|
||||
"Triggers when a username is mentioned.": "Dispara quando um nome de usuário é mencionado.",
|
||||
"Triggers when a username is mentioned in a direct message channel.": "Aciona quando um nome de usuário é mencionado em um canal de mensagem direta.",
|
||||
"Triggers when a new reaction is added to a message": "Aciona quando uma nova reação é adicionada a uma mensagem",
|
||||
"Triggers when a channel is created": "Dispara quando um canal é criado",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)": "Dispara quando um comando específico é enviado para o bot (por exemplo, @bot comando arg1 arg2)",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.": "Dispara quando um comando específico é enviado para o bot (por exemplo, um comando com @bot arg1 arg2) via mensagem direta.",
|
||||
"Triggers when a new user is created / first joins your org.": "Dispara quando um novo usuário é criado / entra pela primeira vez em sua organização.",
|
||||
"Triggers when you save a message.": "Dispara quando você salvar uma mensagem.",
|
||||
"Triggers when a custom emoji has been added to a team.": "Dispara quando um emoji personalizado foi adicionado a uma equipe.",
|
||||
"Ignore Bot Messages ?": "Ignorar mensagens do Bot ?",
|
||||
"Ignore Message from Yourself ?": "Ignorar a mensagem de si mesmo?",
|
||||
"Channels": "Canais",
|
||||
"Emojis (E.g fire, smile)": "Emojis (E.g fogo, sorriso)",
|
||||
"Commands": "Comandos",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}": "\n\tCertifique-se de adicionar o bot ao canal seguindo estes passos:\n\t 1. Digite /invite no chat do canal.\n\t 2. Clique em adicionar aplicativos a este canal.\n\t 3. Procurar e adicionar o bot.\n \n**Nota**: Se você não consegue encontrar o canal na lista suspensa (que busca até 2000 canais), por favor clique em **(F)** e digite o ID do canal diretamente em um array como este: `{`{ ['your_channel_id_1', 'your_channel_id_2', . .] `}`}",
|
||||
"If no channel is selected, the flow will be triggered for username mentions in all channels": "Se nenhum canal estiver selecionado, o fluxo será acionado para menções de nome de usuário em todos os canais",
|
||||
"Select emojis to trigger on": "Selecionar emojis para acionar",
|
||||
"List of valid commands that the bot should respond to (e.g., help, ocr, remind)": "Lista de comandos válidos que o bot deve responder (por exemplo, ajuda, ocr, lembrete)",
|
||||
"If no channel is selected, the flow will be triggered for commands in all channels": "Se nenhum canal estiver selecionado, o fluxo será acionado para comandos em todos os canais"
|
||||
}
|
||||
@@ -0,0 +1,164 @@
|
||||
{
|
||||
"Slack": "Slack",
|
||||
"Channel-based messaging platform": "Платформа обмена сообщениями на основе каналов",
|
||||
"Add Reaction to Message": "Добавить реакцию в сообщение",
|
||||
"Send Message To A User": "Отправить сообщение пользователю",
|
||||
"Send Message To A Channel": "Отправить сообщение каналу",
|
||||
"Request Approval from A User": "Запрос подтверждения от пользователя",
|
||||
"Request Approval in a Channel": "Запрос одобрения в канале",
|
||||
"Request Action from A User": "Запросить действие у пользователя",
|
||||
"Request Action in A Channel": "Запросить действие в канале",
|
||||
"Upload file": "Загрузить файл",
|
||||
"Get File": "Получить файл",
|
||||
"Search messages": "Поиск сообщений",
|
||||
"Find User by Email": "Найти пользователя по электронной почте",
|
||||
"Find User by Handle": "Найти пользователя по ручке",
|
||||
"Find User by ID": "Найти пользователя по ID",
|
||||
"List users": "Список пользователей",
|
||||
"Update message": "Обновить сообщение",
|
||||
"Create Channel": "Создать канал",
|
||||
"Update Profile": "Обновить профиль",
|
||||
"Get channel history": "Получить историю каналов",
|
||||
"Set User Status": "Установить статус пользователя",
|
||||
"Markdown to Slack format": "Markdown to Slack format",
|
||||
"Retrieve Thread Messages": "Получить сообщения о теме",
|
||||
"Set Channel Topic": "Установить тему канала",
|
||||
"Get Message by Timestamp": "Получить сообщение по времени",
|
||||
"Invite User to Channel": "Пригласить пользователя в канал",
|
||||
"Custom API Call": "Пользовательский вызов API",
|
||||
"Add an emoji reaction to a message.": "Добавить эмодзи реакцию на сообщение.",
|
||||
"Send message to a user": "Отправить сообщение пользователю",
|
||||
"Send message to a channel": "Отправить сообщение каналу",
|
||||
"Send approval message to a user and then wait until the message is approved or disapproved": "Отправить сообщение об одобрении пользователю и подождать, пока сообщение будет одобрено или отклонено",
|
||||
"Send approval message to a channel and then wait until the message is approved or disapproved": "Отправить сообщение об одобрении каналу и подождать, пока сообщение будет одобрено или отклонено",
|
||||
"Send a message to a user and wait until the user selects an action": "Отправить сообщение пользователю и подождать, пока пользователь не выберет действие",
|
||||
"Send a message in a channel and wait until an action is selected": "Отправить сообщение в канале и подождать, пока не будет выбрано действие",
|
||||
"Upload file without sharing it to a channel or user": "Загрузить файл, не передав его на канал или пользователю",
|
||||
"Return information about a given file ID.": "Возвращает информацию об указанном ID файла.",
|
||||
"Searches for messages matching a query": "Поиск сообщений, соответствующих запросу",
|
||||
"Finds a user by matching against their email address.": "Поиск пользователя, совпадающего с его адресом электронной почты.",
|
||||
"Finds a user by matching against their Slack handle.": "Находит пользователя, совпадая с его обработчиком Slack .",
|
||||
"Finds a user by their ID.": "Находит пользователя по их ID.",
|
||||
"List all users of the workspace": "Список всех пользователей проекта",
|
||||
"Update an existing message": "Обновить существующее сообщение",
|
||||
"Creates a new channel.": "Создает новый канал.",
|
||||
"Update basic profile field such as name or title.": "Обновить базовое поле профиля, такое как имя или название.",
|
||||
"Retrieve all messages from a specific channel (\"conversation\") between specified timestamps": "Получить все сообщения от определенного канала (\"разговор\") между заданными временными метками",
|
||||
"Sets a user's custom status": "Устанавливает пользовательский статус",
|
||||
"Convert Markdown-formatted text to Slack's pseudo - markdown syntax": "Преобразовать текст в псевдо Slack - синтаксис markdown-форматирования",
|
||||
"Retrieves thread messages by channel and thread timestamp.": "Получает поток сообщений по каналам и меткам времени.",
|
||||
"Sets the topic on a selected channel.": "Устанавливает тему для выбранного канала.",
|
||||
"Retrieves a specific message from a channel history using the message's timestamp.": "Получает определенное сообщение из истории канала, используя временную метку сообщения.",
|
||||
"Invites an existing User to an existing channel.": "Приглашает существующего пользователя на существующий канал.",
|
||||
"Make a custom API call to a specific endpoint": "Сделать пользовательский API вызов к определенной конечной точке",
|
||||
"Markdown": "Markdown",
|
||||
"Channel": "Канал",
|
||||
"Message Timestamp": "Отметка времени сообщения",
|
||||
"Reaction (emoji) name": "Имя реакции (emoji)",
|
||||
"User": "Пользователь",
|
||||
"Message": "Сообщение",
|
||||
"Username": "Имя пользователя",
|
||||
"Profile Picture": "Изображение профиля",
|
||||
"Block Kit blocks": "Блоки блоков",
|
||||
"Attachment": "Вложение",
|
||||
"Thread ts": "Темы",
|
||||
"Broadcast reply to channel": "Транслировать ответ в канал",
|
||||
"Unfurl Links": "Развернуть ссылки",
|
||||
"Action Buttons": "Кнопки действий",
|
||||
"Title": "Заголовок",
|
||||
"Filename": "Имя файла",
|
||||
"File ID": "ID файла",
|
||||
"Search query": "Поисковый запрос",
|
||||
"Email": "Почта",
|
||||
"Handle": "Ручка",
|
||||
"ID": "ID",
|
||||
"Include bots?": "Включить ботов?",
|
||||
"Include disabled users?": "Включить отключенных пользователей?",
|
||||
"Channel Name": "Название канала",
|
||||
"Is Private?": "Приватный?",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Oldest": "Старые",
|
||||
"Latest": "Последние",
|
||||
"Inclusive": "Включающий",
|
||||
"Include all metadata": "Включить все метаданные",
|
||||
"Text": "Текст",
|
||||
"Emoji": "Emoji",
|
||||
"Expires at": "Истекает в",
|
||||
"Markdown text": "Markdown текст",
|
||||
"Topic": "Тема",
|
||||
"Method": "Метод",
|
||||
"Headers": "Заголовки",
|
||||
"Query Parameters": "Параметры запроса",
|
||||
"Body": "Тело",
|
||||
"No Error on Failure": "Нет ошибок при ошибке",
|
||||
"Timeout (in seconds)": "Таймаут (в секундах)",
|
||||
"Use user token": "Использовать токен пользователя",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ",
|
||||
"You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'": "Вы можете получить идентификатор канала, щелкнув правой кнопкой мыши по каналу и выбрав 'View Channel Details.'",
|
||||
"Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Пожалуйста, укажите временную метку сообщения, которое вы хотите повторить, например `1710304378.475129`. Кроме того, вы можете легко получить ссылку на сообщение, нажав на три точки рядом с сообщением и выбрав опцию `Copy link`.",
|
||||
"e.g.`thumbsup`": "e.g.`thumbsup`",
|
||||
"The username of the bot": "Имя пользователя бота",
|
||||
"The profile picture of the bot": "Изображение профиля бота",
|
||||
"See https://api.slack.com/block-kit for specs": "См. спецификации https://api.slack.com/block-kit",
|
||||
"The text of your message": "Текст вашего сообщения",
|
||||
"Provide the ts (timestamp) value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Предоставьте значение ts (метки времени) в **родительском** сообщении, чтобы сделать это сообщение ответом. Не используйте значение ts самого ответа; используйте его родителя. Например, `1710304378. 75129`.Или вы можете легко получить ссылку сообщения, нажав на три точки рядом с родительским сообщением и выбрав опцию `Copy link`.",
|
||||
"When replying to a thread, also make the message visible to everyone in the channel (only applicable when Thread Timestamp is provided)": "При ответе на тему также сделайте сообщение видимым для всех в канале (применимо только при предоставлении временной метки темы)",
|
||||
"Enable link unfurling for this message": "Включить разворачивание ссылок для этого сообщения",
|
||||
"You can pass the file ID from the New Message Trigger payload.": "Вы можете передать идентификатор файла из нового сообщения Триггер.",
|
||||
"User handle (display name), without the leading @": "Пользовательский дескриптор (отображаемое имя), без ведущего @",
|
||||
"Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Пожалуйста, укажите временную метку сообщения, которое вы хотите обновить, например `1710304378.475129`. Кроме того, вы можете легко получить ссылку на сообщение, нажав на три точки рядом с сообщением и выбрав опцию `Copy link`.",
|
||||
"The updated text of your message": "Обновленный текст вашего сообщения",
|
||||
"Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.": "Изменение адреса электронной почты пользователя пошлет письмо как на старый, так и на новый, , а также отправить пользователю сообщение о изменениях в блоке бота.",
|
||||
"ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.": "ID пользователя для изменения. Этот аргумент может быть указан администраторами платных команд. ou может использовать **Найти пользователя по электронной почте** для получения идентификатора.",
|
||||
"Only messages after this timestamp will be included in results": "Сообщения после этой отметки времени будут включаться в результаты",
|
||||
"Only messages before this timestamp will be included in results. Default is the current time": "Будут включены только сообщения до этого времени в результаты. По умолчанию это текущее время",
|
||||
"Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified": "Включать в результаты сообщения с старыми или последними временными метками. Игнорируется, если не задана ни временная метка",
|
||||
"Return all metadata associated with each message": "Вернуть все метаданные, связанные с каждым сообщением",
|
||||
"Emoji shortname (standard or custom), e.g. :tada: or :train:": "Имя эмодзи (стандартное или пользовательское), например :tada: или :train:",
|
||||
"Unix timestamp - if not set, the status will not expire": "Unix timestamp - если не установлен, статус не истекает",
|
||||
"Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Предоставьте значение ts (метки времени) **parent** сообщения для получения ответов от этого сообщения. Не используйте значение ts самого ответа; используйте его родителя. Например, «1710304378.475129». Вечно вы можете легко получить ссылку на сообщение, нажав на три точки рядом с родительским сообщением и выбрав опцию `Copy link`.",
|
||||
"Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Пожалуйста, укажите временную метку полученного сообщения, например `1710304378.475129`. Кроме того, вы можете легко получить ссылку на сообщение, нажав на три точки рядом с сообщением и выбрав опцию `Copy link`.",
|
||||
"Authorization headers are injected automatically from your connection.": "Заголовки авторизации включаются автоматически из вашего соединения.",
|
||||
"Use user token instead of bot token": "Использовать пользовательский токен вместо токена бота",
|
||||
"GET": "ПОЛУЧИТЬ",
|
||||
"POST": "ПОСТ",
|
||||
"PATCH": "ПАТЧ",
|
||||
"PUT": "ПОКУПИТЬ",
|
||||
"DELETE": "УДАЛИТЬ",
|
||||
"HEAD": "HEAD",
|
||||
"New Public Message Posted Anywhere": "Новое публичное сообщение размещено везде",
|
||||
"New Message Posted to Channel": "Новое сообщение отправлено в канал",
|
||||
"New Direct Message": "Новое личное сообщение",
|
||||
"New Mention in Channel": "Новое упоминание в канале",
|
||||
"New Mention in Direct Message": "Новое упоминание в прямом сообщении",
|
||||
"New Reaction": "Новая реакция",
|
||||
"Channel created": "Канал создан",
|
||||
"New Command in Channel": "Новая команда в канале",
|
||||
"New Command in Direct Message": "Новая команда в прямом сообщении",
|
||||
"New User": "Новый пользователь",
|
||||
"New Saved Message": "Новое Сохраненное сообщение",
|
||||
"New Team Custom Emoji": "Новая команда пользовательские эмодзи",
|
||||
"Triggers when a new message is posted to any channel.": "Включает при отправке нового сообщения в любой канал.",
|
||||
"Triggers when a new message is posted to a specific #channel you choose.": "Включает при отправке нового сообщения в выбранный вами #канал.",
|
||||
"Triggers when a message was posted in a direct message channel.": "Срабатывает при отправке сообщения в канале прямого сообщения.",
|
||||
"Triggers when a username is mentioned.": "Триггеры при упоминании имени пользователя.",
|
||||
"Triggers when a username is mentioned in a direct message channel.": "Включает упоминание имени пользователя в канале прямого сообщения.",
|
||||
"Triggers when a new reaction is added to a message": "Триггеры при добавлении новой реакции в сообщение",
|
||||
"Triggers when a channel is created": "Триггеры при создании канала",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)": "Запуск при отправке определённой команды боту (например, команды arg1 arg2)",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.": "Триггеры при отправке определённой команды боту (например, команды arg1 arg2) через прямое сообщение.",
|
||||
"Triggers when a new user is created / first joins your org.": "Включает при создании нового пользователя / первом подключении к вашему органу.",
|
||||
"Triggers when you save a message.": "Включает при сохранении сообщения.",
|
||||
"Triggers when a custom emoji has been added to a team.": "Включает при добавлении в команду пользовательских эмодзи.",
|
||||
"Ignore Bot Messages ?": "Игнорировать сообщения бота?",
|
||||
"Ignore Message from Yourself ?": "Игнорировать сообщение от себя?",
|
||||
"Channels": "Каналы",
|
||||
"Emojis (E.g fire, smile)": "Emojis (огонь, улыбка)",
|
||||
"Commands": "Команды",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}",
|
||||
"If no channel is selected, the flow will be triggered for username mentions in all channels": "Если канал не выбран, поток будет срабатывать для упоминания имени пользователя во всех каналах",
|
||||
"Select emojis to trigger on": "Выберите emojis для запуска",
|
||||
"List of valid commands that the bot should respond to (e.g., help, ocr, remind)": "Список допустимых команд, которые бот должен отвечать (например, help, ocr, remind)",
|
||||
"If no channel is selected, the flow will be triggered for commands in all channels": "Если канал не выбран, поток будет срабатывать для команд во всех каналах"
|
||||
}
|
||||
@@ -0,0 +1,168 @@
|
||||
{
|
||||
"Channel-based messaging platform": "Channel-based messaging platform",
|
||||
"Add Reaction to Message": "Add Reaction to Message",
|
||||
"Send Message To A User": "Send Message To A User",
|
||||
"Send Message To A Channel": "Send Message To A Channel",
|
||||
"Request Approval from A User": "Request Approval from A User",
|
||||
"Request Approval in a Channel": "Request Approval in a Channel",
|
||||
"Request Action from A User": "Request Action from A User",
|
||||
"Request Action in A Channel": "Request Action in A Channel",
|
||||
"Upload file": "Upload file",
|
||||
"Get File": "Get File",
|
||||
"Search messages": "Search messages",
|
||||
"Find User by Email": "Find User by Email",
|
||||
"Find User by Handle": "Find User by Handle",
|
||||
"Find User by ID": "Find User by ID",
|
||||
"List users": "List users",
|
||||
"Update message": "Update message",
|
||||
"Create Channel": "Create Channel",
|
||||
"Update Profile": "Update Profile",
|
||||
"Get channel history": "Get channel history",
|
||||
"Set User Status": "Set User Status",
|
||||
"Markdown to Slack format": "Markdown to Slack format",
|
||||
"Retrieve Thread Messages": "Retrieve Thread Messages",
|
||||
"Set Channel Topic": "Set Channel Topic",
|
||||
"Get Message by Timestamp": "Get Message by Timestamp",
|
||||
"Invite User to Channel": "Invite User to Channel",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Add an emoji reaction to a message.": "Add an emoji reaction to a message.",
|
||||
"Send message to a user": "Send message to a user",
|
||||
"Send message to a channel": "Send message to a channel",
|
||||
"Send approval message to a user and then wait until the message is approved or disapproved": "Send approval message to a user and then wait until the message is approved or disapproved",
|
||||
"Send approval message to a channel and then wait until the message is approved or disapproved": "Send approval message to a channel and then wait until the message is approved or disapproved",
|
||||
"Send a message to a user and wait until the user selects an action": "Send a message to a user and wait until the user selects an action",
|
||||
"Send a message in a channel and wait until an action is selected": "Send a message in a channel and wait until an action is selected",
|
||||
"Upload file without sharing it to a channel or user": "Upload file without sharing it to a channel or user",
|
||||
"Return information about a given file ID.": "Return information about a given file ID.",
|
||||
"Searches for messages matching a query": "Searches for messages matching a query",
|
||||
"Finds a user by matching against their email address.": "Finds a user by matching against their email address.",
|
||||
"Finds a user by matching against their Slack handle.": "Finds a user by matching against their Slack handle.",
|
||||
"Finds a user by their ID.": "Finds a user by their ID.",
|
||||
"List all users of the workspace": "List all users of the workspace",
|
||||
"Update an existing message": "Update an existing message",
|
||||
"Creates a new channel.": "Creates a new channel.",
|
||||
"Update basic profile field such as name or title.": "Update basic profile field such as name or title.",
|
||||
"Retrieve all messages from a specific channel (\"conversation\") between specified timestamps": "Retrieve all messages from a specific channel (\"conversation\") between specified timestamps",
|
||||
"Sets a user's custom status": "Sets a user's custom status",
|
||||
"Convert Markdown-formatted text to Slack's pseudo - markdown syntax": "Convert Markdown-formatted text to Slack's pseudo - markdown syntax",
|
||||
"Retrieves thread messages by channel and thread timestamp.": "Retrieves thread messages by channel and thread timestamp.",
|
||||
"Sets the topic on a selected channel.": "Sets the topic on a selected channel.",
|
||||
"Retrieves a specific message from a channel history using the message's timestamp.": "Retrieves a specific message from a channel history using the message's timestamp.",
|
||||
"Invites an existing User to an existing channel.": "Invites an existing User to an existing channel.",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"Markdown": "Markdown",
|
||||
"Channel": "Channel",
|
||||
"Message Timestamp": "Message Timestamp",
|
||||
"Reaction (emoji) name": "Reaction (emoji) name",
|
||||
"User": "User",
|
||||
"Message": "Message",
|
||||
"Username": "Username",
|
||||
"Profile Picture": "Profile Picture",
|
||||
"Mention flow of origin?": "Mention flow of origin?",
|
||||
"Block Kit blocks": "Block Kit blocks",
|
||||
"Unfurl Links": "Unfurl Links",
|
||||
"Reply to Thread (Thread Message Link/Timestamp)": "Reply to Thread (Thread Message Link/Timestamp)",
|
||||
"Attachment": "Attachment",
|
||||
"Broadcast reply to channel": "Broadcast reply to channel",
|
||||
"Action Buttons": "Action Buttons",
|
||||
"Title": "Title",
|
||||
"Filename": "Filename",
|
||||
"File ID": "File ID",
|
||||
"Search query": "Search query",
|
||||
"Email": "Email",
|
||||
"Handle": "Handle",
|
||||
"ID": "ID",
|
||||
"Include bots?": "Include bots?",
|
||||
"Include disabled users?": "Include disabled users?",
|
||||
"Channel Name": "Channel Name",
|
||||
"Is Private?": "Is Private?",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Oldest": "Oldest",
|
||||
"Latest": "Latest",
|
||||
"Inclusive": "Inclusive",
|
||||
"Include all metadata": "Include all metadata",
|
||||
"Text": "Text",
|
||||
"Emoji": "Emoji",
|
||||
"Expires at": "Expires at",
|
||||
"Markdown text": "Markdown text",
|
||||
"Thread ts": "Thread ts",
|
||||
"Topic": "Topic",
|
||||
"Method": "Method",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Query Parameters",
|
||||
"Body": "Body",
|
||||
"Response is Binary ?": "Response is Binary ?",
|
||||
"No Error on Failure": "No Error on Failure",
|
||||
"Timeout (in seconds)": "Timeout (in seconds)",
|
||||
"Use user token": "Use user token",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ",
|
||||
"You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'": "You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'",
|
||||
"Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.",
|
||||
"e.g.`thumbsup`": "e.g.`thumbsup`",
|
||||
"The username of the bot": "The username of the bot",
|
||||
"The profile picture of the bot": "The profile picture of the bot",
|
||||
"If checked, adds a mention at the end of the Slack message to indicate which flow sent the notification, with a link to said flow.": "If checked, adds a mention at the end of the Slack message to indicate which flow sent the notification, with a link to said flow.",
|
||||
"See https://api.slack.com/block-kit for specs": "See https://api.slack.com/block-kit for specs",
|
||||
"Enable link unfurling for this message": "Enable link unfurling for this message",
|
||||
"The text of your message": "The text of your message",
|
||||
"Provide the ts (timestamp) or link value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Provide the ts (timestamp) or link value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.",
|
||||
"When replying to a thread, also make the message visible to everyone in the channel (only applicable when Thread Timestamp is provided)": "When replying to a thread, also make the message visible to everyone in the channel (only applicable when Thread Timestamp is provided)",
|
||||
"You can pass the file ID from the New Message Trigger payload.": "You can pass the file ID from the New Message Trigger payload.",
|
||||
"User handle (display name), without the leading @": "User handle (display name), without the leading @",
|
||||
"Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.",
|
||||
"The updated text of your message": "The updated text of your message",
|
||||
"Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.": "Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.",
|
||||
"ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.": "ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.",
|
||||
"Only messages after this timestamp will be included in results": "Only messages after this timestamp will be included in results",
|
||||
"Only messages before this timestamp will be included in results. Default is the current time": "Only messages before this timestamp will be included in results. Default is the current time",
|
||||
"Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified": "Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified",
|
||||
"Return all metadata associated with each message": "Return all metadata associated with each message",
|
||||
"Emoji shortname (standard or custom), e.g. :tada: or :train:": "Emoji shortname (standard or custom), e.g. :tada: or :train:",
|
||||
"Unix timestamp - if not set, the status will not expire": "Unix timestamp - if not set, the status will not expire",
|
||||
"Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.",
|
||||
"Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.",
|
||||
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
|
||||
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
|
||||
"Use user token instead of bot token": "Use user token instead of bot token",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD",
|
||||
"New Public Message Posted Anywhere": "New Public Message Posted Anywhere",
|
||||
"New Message Posted to Channel": "New Message Posted to Channel",
|
||||
"New Direct Message": "New Direct Message",
|
||||
"New Mention in Channel": "New Mention in Channel",
|
||||
"New Mention in Direct Message": "New Mention in Direct Message",
|
||||
"New Reaction": "New Reaction",
|
||||
"Channel created": "Channel created",
|
||||
"New Command in Channel": "New Command in Channel",
|
||||
"New Command in Direct Message": "New Command in Direct Message",
|
||||
"New User": "New User",
|
||||
"New Saved Message": "New Saved Message",
|
||||
"New Team Custom Emoji": "New Team Custom Emoji",
|
||||
"Triggers when a new message is posted to any channel.": "Triggers when a new message is posted to any channel.",
|
||||
"Triggers when a new message is posted to a specific #channel you choose.": "Triggers when a new message is posted to a specific #channel you choose.",
|
||||
"Triggers when a message was posted in a direct message channel.": "Triggers when a message was posted in a direct message channel.",
|
||||
"Triggers when a username is mentioned.": "Triggers when a username is mentioned.",
|
||||
"Triggers when a username is mentioned in a direct message channel.": "Triggers when a username is mentioned in a direct message channel.",
|
||||
"Triggers when a new reaction is added to a message": "Triggers when a new reaction is added to a message",
|
||||
"Triggers when a channel is created": "Triggers when a channel is created",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)": "Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.": "Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.",
|
||||
"Triggers when a new user is created / first joins your org.": "Triggers when a new user is created / first joins your org.",
|
||||
"Triggers when you save a message.": "Triggers when you save a message.",
|
||||
"Triggers when a custom emoji has been added to a team.": "Triggers when a custom emoji has been added to a team.",
|
||||
"Ignore Bot Messages ?": "Ignore Bot Messages ?",
|
||||
"Ignore Message from Yourself ?": "Ignore Message from Yourself ?",
|
||||
"Channels": "Channels",
|
||||
"Emojis (E.g fire, smile)": "Emojis (E.g fire, smile)",
|
||||
"Commands": "Commands",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}",
|
||||
"If no channel is selected, the flow will be triggered for username mentions in all channels": "If no channel is selected, the flow will be triggered for username mentions in all channels",
|
||||
"Select emojis to trigger on": "Select emojis to trigger on",
|
||||
"List of valid commands that the bot should respond to (e.g., help, ocr, remind)": "List of valid commands that the bot should respond to (e.g., help, ocr, remind)",
|
||||
"If no channel is selected, the flow will be triggered for commands in all channels": "If no channel is selected, the flow will be triggered for commands in all channels"
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
{
|
||||
"Slack": "Slack",
|
||||
"Channel-based messaging platform": "Channel-based messaging platform",
|
||||
"Add Reaction to Message": "Add Reaction to Message",
|
||||
"Send Message To A User": "Send Message To A User",
|
||||
"Send Message To A Channel": "Send Message To A Channel",
|
||||
"Request Approval from A User": "Request Approval from A User",
|
||||
"Request Approval in a Channel": "Request Approval in a Channel",
|
||||
"Request Action from A User": "Request Action from A User",
|
||||
"Request Action in A Channel": "Request Action in A Channel",
|
||||
"Upload file": "Upload file",
|
||||
"Get File": "Get File",
|
||||
"Search messages": "Search messages",
|
||||
"Find User by Email": "Find User by Email",
|
||||
"Find User by Handle": "Find User by Handle",
|
||||
"Find User by ID": "Find User by ID",
|
||||
"List users": "List users",
|
||||
"Update message": "Update message",
|
||||
"Create Channel": "Create Channel",
|
||||
"Update Profile": "Update Profile",
|
||||
"Get channel history": "Get channel history",
|
||||
"Set User Status": "Set User Status",
|
||||
"Markdown to Slack format": "Markdown to Slack format",
|
||||
"Retrieve Thread Messages": "Retrieve Thread Messages",
|
||||
"Set Channel Topic": "Set Channel Topic",
|
||||
"Get Message by Timestamp": "Get Message by Timestamp",
|
||||
"Invite User to Channel": "Invite User to Channel",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Add an emoji reaction to a message.": "Add an emoji reaction to a message.",
|
||||
"Send message to a user": "Send message to a user",
|
||||
"Send message to a channel": "Send message to a channel",
|
||||
"Send approval message to a user and then wait until the message is approved or disapproved": "Send approval message to a user and then wait until the message is approved or disapproved",
|
||||
"Send approval message to a channel and then wait until the message is approved or disapproved": "Send approval message to a channel and then wait until the message is approved or disapproved",
|
||||
"Send a message to a user and wait until the user selects an action": "Send a message to a user and wait until the user selects an action",
|
||||
"Send a message in a channel and wait until an action is selected": "Send a message in a channel and wait until an action is selected",
|
||||
"Upload file without sharing it to a channel or user": "Upload file without sharing it to a channel or user",
|
||||
"Return information about a given file ID.": "Return information about a given file ID.",
|
||||
"Searches for messages matching a query": "Searches for messages matching a query",
|
||||
"Finds a user by matching against their email address.": "Finds a user by matching against their email address.",
|
||||
"Finds a user by matching against their Slack handle.": "Finds a user by matching against their Slack handle.",
|
||||
"Finds a user by their ID.": "Finds a user by their ID.",
|
||||
"List all users of the workspace": "List all users of the workspace",
|
||||
"Update an existing message": "Update an existing message",
|
||||
"Creates a new channel.": "Creates a new channel.",
|
||||
"Update basic profile field such as name or title.": "Update basic profile field such as name or title.",
|
||||
"Retrieve all messages from a specific channel (\"conversation\") between specified timestamps": "Retrieve all messages from a specific channel (\"conversation\") between specified timestamps",
|
||||
"Sets a user's custom status": "Sets a user's custom status",
|
||||
"Convert Markdown-formatted text to Slack's pseudo - markdown syntax": "Convert Markdown-formatted text to Slack's pseudo - markdown syntax",
|
||||
"Retrieves thread messages by channel and thread timestamp.": "Retrieves thread messages by channel and thread timestamp.",
|
||||
"Sets the topic on a selected channel.": "Sets the topic on a selected channel.",
|
||||
"Retrieves a specific message from a channel history using the message's timestamp.": "Retrieves a specific message from a channel history using the message's timestamp.",
|
||||
"Invites an existing User to an existing channel.": "Invites an existing User to an existing channel.",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"Markdown": "Markdown",
|
||||
"Channel": "Channel",
|
||||
"Message Timestamp": "Message Timestamp",
|
||||
"Reaction (emoji) name": "Reaction (emoji) name",
|
||||
"User": "User",
|
||||
"Message": "Message",
|
||||
"Username": "Username",
|
||||
"Profile Picture": "Profile Picture",
|
||||
"Block Kit blocks": "Block Kit blocks",
|
||||
"Attachment": "Attachment",
|
||||
"Thread ts": "Thread ts",
|
||||
"Unfurl Links": "Unfurl Links",
|
||||
"Action Buttons": "Action Buttons",
|
||||
"Title": "Title",
|
||||
"Filename": "Filename",
|
||||
"File ID": "File ID",
|
||||
"Search query": "Search query",
|
||||
"Email": "Email",
|
||||
"Handle": "Handle",
|
||||
"ID": "ID",
|
||||
"Include bots?": "Include bots?",
|
||||
"Include disabled users?": "Include disabled users?",
|
||||
"Channel Name": "Channel Name",
|
||||
"Is Private?": "Is Private?",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Oldest": "Oldest",
|
||||
"Latest": "Latest",
|
||||
"Inclusive": "Inclusive",
|
||||
"Include all metadata": "Include all metadata",
|
||||
"Text": "Text",
|
||||
"Emoji": "Emoji",
|
||||
"Expires at": "Expires at",
|
||||
"Markdown text": "Markdown text",
|
||||
"Topic": "Topic",
|
||||
"Method": "Method",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Query Parameters",
|
||||
"Body": "Body",
|
||||
"No Error on Failure": "No Error on Failure",
|
||||
"Timeout (in seconds)": "Timeout (in seconds)",
|
||||
"Use user token": "Use user token",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ",
|
||||
"You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'": "You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'",
|
||||
"Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.",
|
||||
"e.g.`thumbsup`": "e.g.`thumbsup`",
|
||||
"The username of the bot": "The username of the bot",
|
||||
"The profile picture of the bot": "The profile picture of the bot",
|
||||
"See https://api.slack.com/block-kit for specs": "See https://api.slack.com/block-kit for specs",
|
||||
"The text of your message": "The text of your message",
|
||||
"Provide the ts (timestamp) value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Provide the ts (timestamp) value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.",
|
||||
"You can pass the file ID from the New Message Trigger payload.": "You can pass the file ID from the New Message Trigger payload.",
|
||||
"User handle (display name), without the leading @": "User handle (display name), without the leading @",
|
||||
"Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.",
|
||||
"The updated text of your message": "The updated text of your message",
|
||||
"Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.": "Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.",
|
||||
"ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.": "ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.",
|
||||
"Only messages after this timestamp will be included in results": "Only messages after this timestamp will be included in results",
|
||||
"Only messages before this timestamp will be included in results. Default is the current time": "Only messages before this timestamp will be included in results. Default is the current time",
|
||||
"Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified": "Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified",
|
||||
"Return all metadata associated with each message": "Return all metadata associated with each message",
|
||||
"Emoji shortname (standard or custom), e.g. :tada: or :train:": "Emoji shortname (standard or custom), e.g. :tada: or :train:",
|
||||
"Unix timestamp - if not set, the status will not expire": "Unix timestamp - if not set, the status will not expire",
|
||||
"Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.",
|
||||
"Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.",
|
||||
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
|
||||
"Use user token instead of bot token": "Use user token instead of bot token",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD",
|
||||
"New Public Message Posted Anywhere": "New Public Message Posted Anywhere",
|
||||
"New Message Posted to Channel": "New Message Posted to Channel",
|
||||
"New Direct Message": "New Direct Message",
|
||||
"New Mention in Channel": "New Mention in Channel",
|
||||
"New Mention in Direct Message": "New Mention in Direct Message",
|
||||
"New Reaction": "New Reaction",
|
||||
"Channel created": "Channel created",
|
||||
"New Command in Channel": "New Command in Channel",
|
||||
"New Command in Direct Message": "New Command in Direct Message",
|
||||
"New User": "New User",
|
||||
"New Saved Message": "New Saved Message",
|
||||
"New Team Custom Emoji": "New Team Custom Emoji",
|
||||
"Triggers when a new message is posted to any channel.": "Triggers when a new message is posted to any channel.",
|
||||
"Triggers when a new message is posted to a specific #channel you choose.": "Triggers when a new message is posted to a specific #channel you choose.",
|
||||
"Triggers when a message was posted in a direct message channel.": "Triggers when a message was posted in a direct message channel.",
|
||||
"Triggers when a username is mentioned.": "Triggers when a username is mentioned.",
|
||||
"Triggers when a username is mentioned in a direct message channel.": "Triggers when a username is mentioned in a direct message channel.",
|
||||
"Triggers when a new reaction is added to a message": "Triggers when a new reaction is added to a message",
|
||||
"Triggers when a channel is created": "Triggers when a channel is created",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)": "Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.": "Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.",
|
||||
"Triggers when a new user is created / first joins your org.": "Triggers when a new user is created / first joins your org.",
|
||||
"Triggers when you save a message.": "Triggers when you save a message.",
|
||||
"Triggers when a custom emoji has been added to a team.": "Triggers when a custom emoji has been added to a team.",
|
||||
"Ignore Bot Messages ?": "Ignore Bot Messages ?",
|
||||
"Ignore Message from Yourself ?": "Ignore Message from Yourself ?",
|
||||
"Channels": "Channels",
|
||||
"Emojis (E.g fire, smile)": "Emojis (E.g fire, smile)",
|
||||
"Commands": "Commands",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}",
|
||||
"If no channel is selected, the flow will be triggered for username mentions in all channels": "If no channel is selected, the flow will be triggered for username mentions in all channels",
|
||||
"Select emojis to trigger on": "Select emojis to trigger on",
|
||||
"List of valid commands that the bot should respond to (e.g., help, ocr, remind)": "List of valid commands that the bot should respond to (e.g., help, ocr, remind)",
|
||||
"Enable link unfurling for this message": "Enable link unfurling for this message",
|
||||
"If no channel is selected, the flow will be triggered for commands in all channels": "If no channel is selected, the flow will be triggered for commands in all channels"
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
{
|
||||
"Channel-based messaging platform": "Channel-based messaging platform",
|
||||
"Add Reaction to Message": "Add Reaction to Message",
|
||||
"Send Message To A User": "Send Message To A User",
|
||||
"Send Message To A Channel": "Send Message To A Channel",
|
||||
"Request Approval from A User": "Request Approval from A User",
|
||||
"Request Approval in a Channel": "Request Approval in a Channel",
|
||||
"Request Action from A User": "Request Action from A User",
|
||||
"Request Action in A Channel": "Request Action in A Channel",
|
||||
"Upload file": "Upload file",
|
||||
"Get File": "Get File",
|
||||
"Search messages": "Search messages",
|
||||
"Find User by Email": "Find User by Email",
|
||||
"Find User by Handle": "Find User by Handle",
|
||||
"Find User by ID": "Find User by ID",
|
||||
"List users": "List users",
|
||||
"Update message": "Update message",
|
||||
"Create Channel": "Create Channel",
|
||||
"Update Profile": "Update Profile",
|
||||
"Get channel history": "Get channel history",
|
||||
"Set User Status": "Set User Status",
|
||||
"Markdown to Slack format": "Markdown to Slack format",
|
||||
"Retrieve Thread Messages": "Retrieve Thread Messages",
|
||||
"Set Channel Topic": "Set Channel Topic",
|
||||
"Get Message by Timestamp": "Get Message by Timestamp",
|
||||
"Invite User to Channel": "Invite User to Channel",
|
||||
"Custom API Call": "自定义 API 呼叫",
|
||||
"Add an emoji reaction to a message.": "Add an emoji reaction to a message.",
|
||||
"Send message to a user": "Send message to a user",
|
||||
"Send message to a channel": "Send message to a channel",
|
||||
"Send approval message to a user and then wait until the message is approved or disapproved": "Send approval message to a user and then wait until the message is approved or disapproved",
|
||||
"Send approval message to a channel and then wait until the message is approved or disapproved": "Send approval message to a channel and then wait until the message is approved or disapproved",
|
||||
"Send a message to a user and wait until the user selects an action": "Send a message to a user and wait until the user selects an action",
|
||||
"Send a message in a channel and wait until an action is selected": "Send a message in a channel and wait until an action is selected",
|
||||
"Upload file without sharing it to a channel or user": "Upload file without sharing it to a channel or user",
|
||||
"Return information about a given file ID.": "Return information about a given file ID.",
|
||||
"Searches for messages matching a query": "Searches for messages matching a query",
|
||||
"Finds a user by matching against their email address.": "Finds a user by matching against their email address.",
|
||||
"Finds a user by matching against their Slack handle.": "Finds a user by matching against their Slack handle.",
|
||||
"Finds a user by their ID.": "Finds a user by their ID.",
|
||||
"List all users of the workspace": "List all users of the workspace",
|
||||
"Update an existing message": "Update an existing message",
|
||||
"Creates a new channel.": "Creates a new channel.",
|
||||
"Update basic profile field such as name or title.": "Update basic profile field such as name or title.",
|
||||
"Retrieve all messages from a specific channel (\"conversation\") between specified timestamps": "Retrieve all messages from a specific channel (\"conversation\") between specified timestamps",
|
||||
"Sets a user's custom status": "Sets a user's custom status",
|
||||
"Convert Markdown-formatted text to Slack's pseudo - markdown syntax": "Convert Markdown-formatted text to Slack's pseudo - markdown syntax",
|
||||
"Retrieves thread messages by channel and thread timestamp.": "Retrieves thread messages by channel and thread timestamp.",
|
||||
"Sets the topic on a selected channel.": "Sets the topic on a selected channel.",
|
||||
"Retrieves a specific message from a channel history using the message's timestamp.": "Retrieves a specific message from a channel history using the message's timestamp.",
|
||||
"Invites an existing User to an existing channel.": "Invites an existing User to an existing channel.",
|
||||
"Make a custom API call to a specific endpoint": "将一个自定义 API 调用到一个特定的终点",
|
||||
"Markdown": "Markdown",
|
||||
"Channel": "Channel",
|
||||
"Message Timestamp": "Message Timestamp",
|
||||
"Reaction (emoji) name": "Reaction (emoji) name",
|
||||
"User": "用户",
|
||||
"Message": "Message",
|
||||
"Username": "用户名",
|
||||
"Profile Picture": "Profile Picture",
|
||||
"Mention flow of origin?": "Mention flow of origin?",
|
||||
"Block Kit blocks": "Block Kit blocks",
|
||||
"Unfurl Links": "Unfurl Links",
|
||||
"Attachment": "Attachment",
|
||||
"Thread ts": "Thread ts",
|
||||
"Broadcast reply to channel": "Broadcast reply to channel",
|
||||
"Action Buttons": "Action Buttons",
|
||||
"Title": "标题",
|
||||
"Filename": "Filename",
|
||||
"File ID": "File ID",
|
||||
"Search query": "Search query",
|
||||
"Email": "电子邮件地址",
|
||||
"Handle": "Handle",
|
||||
"ID": "ID",
|
||||
"Include bots?": "Include bots?",
|
||||
"Include disabled users?": "Include disabled users?",
|
||||
"Channel Name": "Channel Name",
|
||||
"Is Private?": "Is Private?",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "名字",
|
||||
"Oldest": "Oldest",
|
||||
"Latest": "Latest",
|
||||
"Inclusive": "Inclusive",
|
||||
"Include all metadata": "Include all metadata",
|
||||
"Text": "文本",
|
||||
"Emoji": "Emoji",
|
||||
"Expires at": "Expires at",
|
||||
"Markdown text": "Markdown text",
|
||||
"Topic": "Topic",
|
||||
"Method": "方法",
|
||||
"Headers": "信头",
|
||||
"Query Parameters": "查询参数",
|
||||
"Body": "正文内容",
|
||||
"Response is Binary ?": "Response is Binary ?",
|
||||
"No Error on Failure": "失败时没有错误",
|
||||
"Timeout (in seconds)": "超时(秒)",
|
||||
"Use user token": "Use user token",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.\n ",
|
||||
"You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'": "You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'",
|
||||
"Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.",
|
||||
"e.g.`thumbsup`": "e.g.`thumbsup`",
|
||||
"The username of the bot": "The username of the bot",
|
||||
"The profile picture of the bot": "The profile picture of the bot",
|
||||
"If checked, adds a mention at the end of the Slack message to indicate which flow sent the notification, with a link to said flow.": "If checked, adds a mention at the end of the Slack message to indicate which flow sent the notification, with a link to said flow.",
|
||||
"See https://api.slack.com/block-kit for specs": "See https://api.slack.com/block-kit for specs",
|
||||
"Enable link unfurling for this message": "Enable link unfurling for this message",
|
||||
"The text of your message": "The text of your message",
|
||||
"Provide the ts (timestamp) value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Provide the ts (timestamp) value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.",
|
||||
"When replying to a thread, also make the message visible to everyone in the channel (only applicable when Thread Timestamp is provided)": "When replying to a thread, also make the message visible to everyone in the channel (only applicable when Thread Timestamp is provided)",
|
||||
"You can pass the file ID from the New Message Trigger payload.": "You can pass the file ID from the New Message Trigger payload.",
|
||||
"User handle (display name), without the leading @": "User handle (display name), without the leading @",
|
||||
"Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.",
|
||||
"The updated text of your message": "The updated text of your message",
|
||||
"Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.": "Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.",
|
||||
"ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.": "ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.",
|
||||
"Only messages after this timestamp will be included in results": "Only messages after this timestamp will be included in results",
|
||||
"Only messages before this timestamp will be included in results. Default is the current time": "Only messages before this timestamp will be included in results. Default is the current time",
|
||||
"Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified": "Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified",
|
||||
"Return all metadata associated with each message": "Return all metadata associated with each message",
|
||||
"Emoji shortname (standard or custom), e.g. :tada: or :train:": "Emoji shortname (standard or custom), e.g. :tada: or :train:",
|
||||
"Unix timestamp - if not set, the status will not expire": "Unix timestamp - if not set, the status will not expire",
|
||||
"Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.": "Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.",
|
||||
"Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.": "Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.",
|
||||
"Authorization headers are injected automatically from your connection.": "授权头自动从您的连接中注入。",
|
||||
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
|
||||
"Use user token instead of bot token": "Use user token instead of bot token",
|
||||
"GET": "获取",
|
||||
"POST": "帖子",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "弹出",
|
||||
"DELETE": "删除",
|
||||
"HEAD": "黑色",
|
||||
"New Public Message Posted Anywhere": "New Public Message Posted Anywhere",
|
||||
"New Message Posted to Channel": "New Message Posted to Channel",
|
||||
"New Direct Message": "New Direct Message",
|
||||
"New Mention in Channel": "New Mention in Channel",
|
||||
"New Mention in Direct Message": "New Mention in Direct Message",
|
||||
"New Reaction": "New Reaction",
|
||||
"Channel created": "Channel created",
|
||||
"New Command in Channel": "New Command in Channel",
|
||||
"New Command in Direct Message": "New Command in Direct Message",
|
||||
"New User": "New User",
|
||||
"New Saved Message": "New Saved Message",
|
||||
"New Team Custom Emoji": "New Team Custom Emoji",
|
||||
"Triggers when a new message is posted to any channel.": "Triggers when a new message is posted to any channel.",
|
||||
"Triggers when a new message is posted to a specific #channel you choose.": "Triggers when a new message is posted to a specific #channel you choose.",
|
||||
"Triggers when a message was posted in a direct message channel.": "Triggers when a message was posted in a direct message channel.",
|
||||
"Triggers when a username is mentioned.": "Triggers when a username is mentioned.",
|
||||
"Triggers when a username is mentioned in a direct message channel.": "Triggers when a username is mentioned in a direct message channel.",
|
||||
"Triggers when a new reaction is added to a message": "Triggers when a new reaction is added to a message",
|
||||
"Triggers when a channel is created": "Triggers when a channel is created",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)": "Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)",
|
||||
"Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.": "Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.",
|
||||
"Triggers when a new user is created / first joins your org.": "Triggers when a new user is created / first joins your org.",
|
||||
"Triggers when you save a message.": "Triggers when you save a message.",
|
||||
"Triggers when a custom emoji has been added to a team.": "Triggers when a custom emoji has been added to a team.",
|
||||
"Ignore Bot Messages ?": "Ignore Bot Messages ?",
|
||||
"Ignore Message from Yourself ?": "Ignore Message from Yourself ?",
|
||||
"Channels": "Channels",
|
||||
"Emojis (E.g fire, smile)": "Emojis (E.g fire, smile)",
|
||||
"Commands": "Commands",
|
||||
"\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}": "\n\tPlease make sure add the bot to the channel by following these steps:\n\t 1. Type /invite in the channel's chat.\n\t 2. Click on Add apps to this channel.\n\t 3. Search for and add the bot.\n \n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: `{`{ ['your_channel_id_1', 'your_channel_id_2', ...] `}`}",
|
||||
"If no channel is selected, the flow will be triggered for username mentions in all channels": "If no channel is selected, the flow will be triggered for username mentions in all channels",
|
||||
"Select emojis to trigger on": "Select emojis to trigger on",
|
||||
"List of valid commands that the bot should respond to (e.g., help, ocr, remind)": "List of valid commands that the bot should respond to (e.g., help, ocr, remind)",
|
||||
"If no channel is selected, the flow will be triggered for commands in all channels": "If no channel is selected, the flow will be triggered for commands in all channels"
|
||||
}
|
||||
255
activepieces-fork/packages/pieces/community/slack/src/index.ts
Normal file
255
activepieces-fork/packages/pieces/community/slack/src/index.ts
Normal file
@@ -0,0 +1,255 @@
|
||||
import {
|
||||
createCustomApiCallAction,
|
||||
httpClient,
|
||||
HttpMethod,
|
||||
} from '@activepieces/pieces-common';
|
||||
import {
|
||||
createPiece,
|
||||
OAuth2PropertyValue,
|
||||
PieceAuth,
|
||||
Property,
|
||||
} from '@activepieces/pieces-framework';
|
||||
|
||||
import { PieceCategory } from '@activepieces/shared';
|
||||
import crypto from 'node:crypto';
|
||||
import { requestActionDirectMessageAction } from './lib/actions/request-action-direct-message';
|
||||
import { requestActionMessageAction } from './lib/actions/request-action-message';
|
||||
import { requestApprovalDirectMessageAction } from './lib/actions/request-approval-direct-message';
|
||||
import { requestSendApprovalMessageAction } from './lib/actions/request-approval-message';
|
||||
import { slackSendDirectMessageAction } from './lib/actions/send-direct-message-action';
|
||||
import { slackSendMessageAction } from './lib/actions/send-message-action';
|
||||
import { newReactionAdded } from './lib/triggers/new-reaction-added';
|
||||
import { uploadFile } from './lib/actions/upload-file';
|
||||
import { searchMessages } from './lib/actions/search-messages';
|
||||
import { updateMessage } from './lib/actions/update-message';
|
||||
import { findUserByEmailAction } from './lib/actions/find-user-by-email';
|
||||
import { updateProfileAction } from './lib/actions/update-profile';
|
||||
import { createChannelAction } from './lib/actions/create-channel';
|
||||
import { channelCreated } from './lib/triggers/new-channel';
|
||||
import { addRectionToMessageAction } from './lib/actions/add-reaction-to-message';
|
||||
import { getChannelHistory } from './lib/actions/get-channel-history';
|
||||
import { findUserByHandleAction } from './lib/actions/find-user-by-handle';
|
||||
import { setUserStatusAction } from './lib/actions/set-user-status';
|
||||
import { newMention } from './lib/triggers/new-mention';
|
||||
import { markdownToSlackFormat } from './lib/actions/markdown-to-slack-format';
|
||||
import { newCommand } from './lib/triggers/new-command';
|
||||
import { getFileAction } from './lib/actions/get-file';
|
||||
import { newMessageTrigger } from './lib/triggers/new-message';
|
||||
import { newMessageInChannelTrigger } from './lib/triggers/new-message-in-channel';
|
||||
import { newDirectMessageTrigger } from './lib/triggers/new-direct-message';
|
||||
import { retrieveThreadMessages } from './lib/actions/retrieve-thread-messages';
|
||||
import { newMentionInDirectMessageTrigger } from './lib/triggers/new-mention-in-direct-message';
|
||||
import { newCommandInDirectMessageTrigger } from './lib/triggers/new-command-in-direct-message';
|
||||
import { setChannelTopicAction } from './lib/actions/set-channel-topic';
|
||||
import { getMessageAction } from './lib/actions/get-message';
|
||||
import { findUserByIdAction } from './lib/actions/find-user-by-id';
|
||||
import { newUserTrigger } from './lib/triggers/new-user';
|
||||
import { newSavedMessageTrigger } from './lib/triggers/new-saved-message';
|
||||
import { newTeamCustomEmojiTrigger } from './lib/triggers/new-team-custom-emoji';
|
||||
import { inviteUserToChannelAction } from './lib/actions/invite-user-to-channel';
|
||||
import { listUsers } from './lib/actions/list-users';
|
||||
|
||||
export const slackAuth = PieceAuth.OAuth2({
|
||||
description: '',
|
||||
authUrl:
|
||||
'https://slack.com/oauth/v2/authorize?user_scope=search:read,users.profile:write,reactions:read,im:history,stars:read,channels:write,groups:write,im:write,mpim:write,channels:write.invites,groups:write.invites,channels:history,groups:history,chat:write,users:read',
|
||||
tokenUrl: 'https://slack.com/api/oauth.v2.access',
|
||||
required: true,
|
||||
scope: [
|
||||
'channels:read',
|
||||
'channels:manage',
|
||||
'channels:history',
|
||||
'chat:write',
|
||||
'groups:read',
|
||||
'groups:write',
|
||||
'groups:history',
|
||||
'reactions:read',
|
||||
'mpim:read',
|
||||
'mpim:write',
|
||||
'mpim:history',
|
||||
'im:write',
|
||||
'im:read',
|
||||
'im:history',
|
||||
'users:read',
|
||||
'files:write',
|
||||
'files:read',
|
||||
'users:read.email',
|
||||
'reactions:write',
|
||||
'usergroups:read',
|
||||
'chat:write.customize',
|
||||
'links:read',
|
||||
'links:write',
|
||||
'emoji:read',
|
||||
'users.profile:read',
|
||||
'channels:write.invites',
|
||||
'groups:write.invites',
|
||||
],
|
||||
});
|
||||
|
||||
export const slack = createPiece({
|
||||
displayName: 'Slack',
|
||||
description: 'Channel-based messaging platform',
|
||||
minimumSupportedRelease: '0.66.7',
|
||||
logoUrl: 'https://cdn.activepieces.com/pieces/slack.png',
|
||||
categories: [PieceCategory.COMMUNICATION],
|
||||
auth: slackAuth,
|
||||
events: {
|
||||
parseAndReply: ({ payload, server }) => {
|
||||
if (
|
||||
payload.headers['content-type'] === 'application/x-www-form-urlencoded'
|
||||
) {
|
||||
if (
|
||||
payload.body &&
|
||||
typeof payload.body == 'object' &&
|
||||
'payload' in payload.body
|
||||
) {
|
||||
const interactionPayloadBody = JSON.parse(
|
||||
(payload.body as { payload: string }).payload
|
||||
) as InteractionPayloadBody;
|
||||
if (interactionPayloadBody.type === 'block_actions') {
|
||||
const action = interactionPayloadBody.actions?.[0];
|
||||
if (
|
||||
action &&
|
||||
action.type === 'button' &&
|
||||
action.value?.startsWith(server.publicUrl)
|
||||
) {
|
||||
// We don't await the promise as we don't handle the response anyway
|
||||
httpClient.sendRequest({
|
||||
url: action.value,
|
||||
method: HttpMethod.POST,
|
||||
body: interactionPayloadBody,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
return {
|
||||
reply: {
|
||||
headers: {},
|
||||
body: {},
|
||||
},
|
||||
};
|
||||
} else {
|
||||
const eventPayloadBody = payload.body as EventPayloadBody;
|
||||
if (eventPayloadBody.challenge) {
|
||||
return {
|
||||
reply: {
|
||||
body: eventPayloadBody['challenge'],
|
||||
headers: {},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
event: eventPayloadBody?.event?.type,
|
||||
identifierValue: eventPayloadBody.team_id,
|
||||
};
|
||||
}
|
||||
},
|
||||
verify: ({ webhookSecret, payload }) => {
|
||||
// Construct the signature base string
|
||||
const timestamp = payload.headers['x-slack-request-timestamp'];
|
||||
const signature = payload.headers['x-slack-signature'];
|
||||
const signatureBaseString = `v0:${timestamp}:${payload.rawBody}`;
|
||||
const hmac = crypto.createHmac('sha256', webhookSecret as string);
|
||||
hmac.update(signatureBaseString);
|
||||
const computedSignature = `v0=${hmac.digest('hex')}`;
|
||||
return signature === computedSignature;
|
||||
},
|
||||
},
|
||||
authors: [
|
||||
'rita-gorokhod',
|
||||
'AdamSelene',
|
||||
'Abdallah-Alwarawreh',
|
||||
'kishanprmr',
|
||||
'MoShizzle',
|
||||
'AbdulTheActivePiecer',
|
||||
'khaledmashaly',
|
||||
'abuaboud',
|
||||
],
|
||||
actions: [
|
||||
addRectionToMessageAction,
|
||||
slackSendDirectMessageAction,
|
||||
slackSendMessageAction,
|
||||
requestApprovalDirectMessageAction,
|
||||
requestSendApprovalMessageAction,
|
||||
requestActionDirectMessageAction,
|
||||
requestActionMessageAction,
|
||||
uploadFile,
|
||||
getFileAction,
|
||||
searchMessages,
|
||||
findUserByEmailAction,
|
||||
findUserByHandleAction,
|
||||
findUserByIdAction,
|
||||
listUsers,
|
||||
updateMessage,
|
||||
createChannelAction,
|
||||
updateProfileAction,
|
||||
getChannelHistory,
|
||||
setUserStatusAction,
|
||||
markdownToSlackFormat,
|
||||
retrieveThreadMessages,
|
||||
setChannelTopicAction,
|
||||
getMessageAction,
|
||||
inviteUserToChannelAction,
|
||||
createCustomApiCallAction({
|
||||
baseUrl: () => {
|
||||
return 'https://slack.com/api';
|
||||
},
|
||||
auth: slackAuth,
|
||||
authMapping: async (auth, propsValue) => {
|
||||
if (propsValue.useUserToken) {
|
||||
return {
|
||||
Authorization: `Bearer ${
|
||||
(auth as OAuth2PropertyValue).data['authed_user']?.access_token
|
||||
}`,
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
Authorization: `Bearer ${
|
||||
(auth as OAuth2PropertyValue).access_token
|
||||
}`,
|
||||
};
|
||||
}
|
||||
},
|
||||
extraProps: {
|
||||
useUserToken: Property.Checkbox({
|
||||
displayName: 'Use user token',
|
||||
description: 'Use user token instead of bot token',
|
||||
required: true,
|
||||
defaultValue: false,
|
||||
}),
|
||||
},
|
||||
}),
|
||||
],
|
||||
triggers: [
|
||||
newMessageTrigger,
|
||||
newMessageInChannelTrigger,
|
||||
newDirectMessageTrigger,
|
||||
newMention,
|
||||
newMentionInDirectMessageTrigger,
|
||||
newReactionAdded,
|
||||
channelCreated,
|
||||
newCommand,
|
||||
newCommandInDirectMessageTrigger,
|
||||
newUserTrigger,
|
||||
newSavedMessageTrigger,
|
||||
newTeamCustomEmojiTrigger,
|
||||
],
|
||||
});
|
||||
|
||||
type EventPayloadBody = {
|
||||
// Event payload
|
||||
challenge: string;
|
||||
event: {
|
||||
type: string;
|
||||
};
|
||||
team_id: string;
|
||||
};
|
||||
type InteractionPayloadBody = {
|
||||
// Interaction payload
|
||||
type?: string;
|
||||
actions?: {
|
||||
type: string;
|
||||
value: string;
|
||||
}[];
|
||||
};
|
||||
@@ -0,0 +1,49 @@
|
||||
import { slackAuth } from '../../';
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { singleSelectChannelInfo, slackChannel } from '../common/props';
|
||||
|
||||
import { WebClient } from '@slack/web-api';
|
||||
import { processMessageTimestamp } from '../common/utils';
|
||||
|
||||
export const addRectionToMessageAction = createAction({
|
||||
auth: slackAuth,
|
||||
name: 'slack-add-reaction-to-message',
|
||||
displayName: 'Add Reaction to Message',
|
||||
description: 'Add an emoji reaction to a message.',
|
||||
|
||||
props: {
|
||||
info: singleSelectChannelInfo,
|
||||
channel: slackChannel(true),
|
||||
ts: Property.ShortText({
|
||||
displayName: 'Message Timestamp',
|
||||
description:
|
||||
'Please provide the timestamp of the message you wish to react, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.',
|
||||
required: true,
|
||||
}),
|
||||
reaction: Property.ShortText({
|
||||
displayName: 'Reaction (emoji) name',
|
||||
required: true,
|
||||
description: 'e.g.`thumbsup`',
|
||||
}),
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
const { channel, ts, reaction } = context.propsValue;
|
||||
|
||||
const slack = new WebClient(context.auth.access_token);
|
||||
|
||||
const messageTimestamp = processMessageTimestamp(ts);
|
||||
|
||||
if (messageTimestamp) {
|
||||
const response = await slack.reactions.add({
|
||||
channel,
|
||||
timestamp: messageTimestamp,
|
||||
name: reaction,
|
||||
});
|
||||
|
||||
return response;
|
||||
} else {
|
||||
throw new Error('Invalid Timestamp Value.');
|
||||
}
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,28 @@
|
||||
import { slackAuth } from '../../';
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { WebClient } from '@slack/web-api';
|
||||
|
||||
export const createChannelAction = createAction({
|
||||
auth: slackAuth,
|
||||
name: 'slack-create-channel',
|
||||
displayName: 'Create Channel',
|
||||
description: 'Creates a new channel.',
|
||||
props: {
|
||||
channelName: Property.ShortText({
|
||||
displayName: 'Channel Name',
|
||||
required: true,
|
||||
}),
|
||||
isPrivate: Property.Checkbox({
|
||||
displayName: 'Is Private?',
|
||||
required: false,
|
||||
defaultValue: false,
|
||||
}),
|
||||
},
|
||||
async run({ auth, propsValue }) {
|
||||
const client = new WebClient(auth.access_token);
|
||||
return await client.conversations.create({
|
||||
name: propsValue.channelName,
|
||||
is_private: propsValue.isPrivate,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,23 @@
|
||||
import { slackAuth } from '../../';
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { WebClient } from '@slack/web-api';
|
||||
|
||||
export const findUserByEmailAction = createAction({
|
||||
auth: slackAuth,
|
||||
name: 'slack-find-user-by-email',
|
||||
displayName: 'Find User by Email',
|
||||
description: 'Finds a user by matching against their email address.',
|
||||
props: {
|
||||
email: Property.ShortText({
|
||||
displayName: 'Email',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run({ auth, propsValue }) {
|
||||
const email = propsValue.email;
|
||||
const client = new WebClient(auth.access_token);
|
||||
return await client.users.lookupByEmail({
|
||||
email,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,35 @@
|
||||
import { slackAuth } from '../../';
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { UsersListResponse, WebClient } from '@slack/web-api';
|
||||
|
||||
export const findUserByHandleAction = createAction({
|
||||
auth: slackAuth,
|
||||
name: 'slack-find-user-by-handle',
|
||||
displayName: 'Find User by Handle',
|
||||
description: 'Finds a user by matching against their Slack handle.',
|
||||
props: {
|
||||
handle: Property.ShortText({
|
||||
displayName: 'Handle',
|
||||
description: 'User handle (display name), without the leading @',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run({ auth, propsValue }) {
|
||||
const handle = propsValue.handle.replace('@', '');
|
||||
const client = new WebClient(auth.access_token);
|
||||
for await (const page of client.paginate('users.list', {
|
||||
limit: 1000, // Only limits page size, not total number of results
|
||||
})) {
|
||||
const response = page as UsersListResponse;
|
||||
if (response.members) {
|
||||
const matchedMember = response.members.find(
|
||||
(member) => member.profile?.display_name === handle
|
||||
);
|
||||
if (matchedMember) {
|
||||
return matchedMember;
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new Error(`Could not find user with handle @${handle}`);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,22 @@
|
||||
import { slackAuth } from '../../';
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { WebClient } from '@slack/web-api';
|
||||
|
||||
export const findUserByIdAction = createAction({
|
||||
auth: slackAuth,
|
||||
name: 'find-user-by-id',
|
||||
displayName: 'Find User by ID',
|
||||
description: 'Finds a user by their ID.',
|
||||
props: {
|
||||
id: Property.ShortText({
|
||||
displayName: 'ID',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run({ auth, propsValue }) {
|
||||
const client = new WebClient(auth.access_token);
|
||||
return await client.users.profile.get({
|
||||
user: propsValue.id,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,61 @@
|
||||
import { ConversationsHistoryResponse, WebClient } from '@slack/web-api';
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { slackAuth } from '../..';
|
||||
import { singleSelectChannelInfo, slackChannel } from '../common/props';
|
||||
|
||||
export const getChannelHistory = createAction({
|
||||
// auth: check https://www.activepieces.com/docs/developers/piece-reference/authentication,
|
||||
name: 'getChannelHistory',
|
||||
auth: slackAuth,
|
||||
displayName: 'Get channel history',
|
||||
description:
|
||||
'Retrieve all messages from a specific channel ("conversation") between specified timestamps',
|
||||
props: {
|
||||
info: singleSelectChannelInfo,
|
||||
channel: slackChannel(true),
|
||||
oldest: Property.Number({
|
||||
displayName: 'Oldest',
|
||||
description:
|
||||
'Only messages after this timestamp will be included in results',
|
||||
required: false,
|
||||
}),
|
||||
latest: Property.Number({
|
||||
displayName: 'Latest',
|
||||
description:
|
||||
'Only messages before this timestamp will be included in results. Default is the current time',
|
||||
required: false,
|
||||
}),
|
||||
inclusive: Property.Checkbox({
|
||||
displayName: 'Inclusive',
|
||||
description:
|
||||
'Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified',
|
||||
defaultValue: false,
|
||||
required: true,
|
||||
}),
|
||||
includeAllMetadata: Property.Checkbox({
|
||||
displayName: 'Include all metadata',
|
||||
description: 'Return all metadata associated with each message',
|
||||
defaultValue: false,
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run({ auth, propsValue }) {
|
||||
const client = new WebClient(auth.access_token);
|
||||
const messages = [];
|
||||
await client.conversations.history({ channel: propsValue.channel });
|
||||
for await (const page of client.paginate('conversations.history', {
|
||||
channel: propsValue.channel,
|
||||
oldest: propsValue.oldest,
|
||||
latest: propsValue.latest,
|
||||
limit: 200, // page size, does not limit the total number of results
|
||||
include_all_metadata: propsValue.includeAllMetadata,
|
||||
inclusive: propsValue.inclusive,
|
||||
})) {
|
||||
const response = page as ConversationsHistoryResponse;
|
||||
if (response.messages) {
|
||||
messages.push(...response.messages);
|
||||
}
|
||||
}
|
||||
return messages;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,47 @@
|
||||
import { slackAuth } from '../../index';
|
||||
import { AuthenticationType, httpClient, HttpMethod } from '@activepieces/pieces-common';
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { WebClient } from '@slack/web-api';
|
||||
|
||||
export const getFileAction = createAction({
|
||||
auth: slackAuth,
|
||||
name: 'get-file',
|
||||
displayName: 'Get File',
|
||||
description: 'Return information about a given file ID.',
|
||||
props: {
|
||||
fileId: Property.ShortText({
|
||||
displayName: 'File ID',
|
||||
required: true,
|
||||
description: 'You can pass the file ID from the New Message Trigger payload.',
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const client = new WebClient(context.auth.access_token);
|
||||
|
||||
const fileData = await client.files.info({ file: context.propsValue.fileId });
|
||||
|
||||
const fileDownloadUrl = fileData.file?.url_private_download;
|
||||
|
||||
if (!fileDownloadUrl) {
|
||||
throw new Error('Unable to find the download URL.');
|
||||
}
|
||||
|
||||
const response = await httpClient.sendRequest({
|
||||
method: HttpMethod.GET,
|
||||
url: fileDownloadUrl,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: context.auth.access_token,
|
||||
},
|
||||
responseType: 'arraybuffer',
|
||||
});
|
||||
|
||||
return {
|
||||
...fileData.file,
|
||||
data: await context.files.write({
|
||||
fileName: fileData.file?.name || `file`,
|
||||
data: Buffer.from(response.body),
|
||||
}),
|
||||
};
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,36 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { slackAuth } from '../..';
|
||||
import { singleSelectChannelInfo, slackChannel } from '../common/props';
|
||||
import { processMessageTimestamp } from '../common/utils';
|
||||
import { WebClient } from '@slack/web-api';
|
||||
|
||||
export const getMessageAction = createAction({
|
||||
name: 'get-message',
|
||||
displayName: 'Get Message by Timestamp',
|
||||
description: `Retrieves a specific message from a channel history using the message's timestamp.`,
|
||||
auth: slackAuth,
|
||||
props: {
|
||||
info: singleSelectChannelInfo,
|
||||
channel: slackChannel(true),
|
||||
ts: Property.ShortText({
|
||||
displayName: 'Message Timestamp',
|
||||
description:
|
||||
'Please provide the timestamp of the message you wish to retrieve, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run({ auth, propsValue }) {
|
||||
const messageTimestamp = processMessageTimestamp(propsValue.ts);
|
||||
if (!messageTimestamp) {
|
||||
throw new Error('Invalid Timestamp Value.');
|
||||
}
|
||||
const client = new WebClient(auth.access_token);
|
||||
|
||||
return await client.conversations.history({
|
||||
channel: propsValue.channel,
|
||||
latest: messageTimestamp,
|
||||
limit: 1,
|
||||
inclusive: true,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,24 @@
|
||||
import { slackAuth } from '../../index';
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { singleSelectChannelInfo, slackChannel, userId } from '../common/props';
|
||||
import { WebClient } from '@slack/web-api';
|
||||
|
||||
export const inviteUserToChannelAction = createAction({
|
||||
auth: slackAuth,
|
||||
name: 'invite-user-to-channel',
|
||||
displayName: 'Invite User to Channel',
|
||||
description: 'Invites an existing User to an existing channel.',
|
||||
props: {
|
||||
info: singleSelectChannelInfo,
|
||||
channel: slackChannel(true),
|
||||
userId,
|
||||
},
|
||||
async run(context) {
|
||||
const client = new WebClient(context.auth.access_token);
|
||||
|
||||
return await client.conversations.invite({
|
||||
channel: context.propsValue.channel,
|
||||
users: `${context.propsValue.userId}`,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,43 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { UsersListResponse, WebClient } from '@slack/web-api';
|
||||
import { slackAuth } from '../..';
|
||||
import { Member } from '@slack/web-api/dist/types/response/UsersListResponse';
|
||||
|
||||
export const listUsers = createAction({
|
||||
// auth: check https://www.activepieces.com/docs/developers/piece-reference/authentication,
|
||||
name: 'listUsers',
|
||||
displayName: 'List users',
|
||||
description: 'List all users of the workspace',
|
||||
props: {
|
||||
includeBots: Property.Checkbox({
|
||||
displayName: 'Include bots?',
|
||||
required: true,
|
||||
defaultValue: false,
|
||||
}),
|
||||
includeDisabled: Property.Checkbox({
|
||||
displayName: 'Include disabled users?',
|
||||
required: true,
|
||||
defaultValue: false,
|
||||
}),
|
||||
},
|
||||
auth: slackAuth,
|
||||
async run({ auth, propsValue }) {
|
||||
const client = new WebClient(auth.access_token);
|
||||
const results: Member[] = [];
|
||||
for await (const page of client.paginate('users.list', {
|
||||
limit: 1000, // Only limits page size, not total number of results
|
||||
})) {
|
||||
const response = page as UsersListResponse;
|
||||
if (response.members) {
|
||||
results.push(
|
||||
...response.members.filter(
|
||||
(member) =>
|
||||
(propsValue.includeDisabled || !member.deleted) &&
|
||||
(propsValue.includeBots || !member.is_bot)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
return results;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,23 @@
|
||||
import {
|
||||
createAction,
|
||||
Property,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import slackifyMarkdown from 'slackify-markdown';
|
||||
|
||||
export const markdownToSlackFormat = createAction({
|
||||
name: 'markdownToSlackFormat',
|
||||
displayName: 'Markdown to Slack format',
|
||||
description:
|
||||
"Convert Markdown-formatted text to Slack's pseudo - markdown syntax",
|
||||
requireAuth: false,
|
||||
props: {
|
||||
markdown: Property.LongText({
|
||||
displayName: 'Markdown text',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
|
||||
async run({ propsValue }) {
|
||||
return slackifyMarkdown(propsValue.markdown);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,32 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { slackAuth } from '../..';
|
||||
import { assertNotNullOrUndefined } from '@activepieces/shared';
|
||||
import {
|
||||
profilePicture,
|
||||
text,
|
||||
userId,
|
||||
username,
|
||||
actions,
|
||||
} from '../common/props';
|
||||
import { requestAction } from '../common/request-action';
|
||||
|
||||
export const requestActionDirectMessageAction = createAction({
|
||||
auth: slackAuth,
|
||||
name: 'request_action_direct_message',
|
||||
displayName: 'Request Action from A User',
|
||||
description:
|
||||
'Send a message to a user and wait until the user selects an action',
|
||||
props: {
|
||||
userId,
|
||||
text,
|
||||
actions,
|
||||
username,
|
||||
profilePicture,
|
||||
},
|
||||
async run(context) {
|
||||
const { userId } = context.propsValue;
|
||||
assertNotNullOrUndefined(userId, 'userId');
|
||||
|
||||
return await requestAction(userId, context);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,36 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { slackAuth } from '../..';
|
||||
import { assertNotNullOrUndefined } from '@activepieces/shared';
|
||||
import {
|
||||
profilePicture,
|
||||
text,
|
||||
slackChannel,
|
||||
username,
|
||||
actions,
|
||||
singleSelectChannelInfo,
|
||||
threadTs,
|
||||
} from '../common/props';
|
||||
import { requestAction } from '../common/request-action';
|
||||
|
||||
export const requestActionMessageAction = createAction({
|
||||
auth: slackAuth,
|
||||
name: 'request_action_message',
|
||||
displayName: 'Request Action in A Channel',
|
||||
description:
|
||||
'Send a message in a channel and wait until an action is selected',
|
||||
props: {
|
||||
info: singleSelectChannelInfo,
|
||||
channel: slackChannel(true),
|
||||
text,
|
||||
actions,
|
||||
threadTs,
|
||||
username,
|
||||
profilePicture,
|
||||
},
|
||||
async run(context) {
|
||||
const { channel } = context.propsValue;
|
||||
assertNotNullOrUndefined(channel, 'channel');
|
||||
|
||||
return await requestAction(channel, context);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,110 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { slackSendMessage } from '../common/utils';
|
||||
import { slackAuth } from '../..';
|
||||
import {
|
||||
assertNotNullOrUndefined,
|
||||
ExecutionType,
|
||||
PauseType,
|
||||
} from '@activepieces/shared';
|
||||
import { profilePicture, text, userId, username } from '../common/props';
|
||||
import { ChatPostMessageResponse, WebClient } from '@slack/web-api';
|
||||
|
||||
export const requestApprovalDirectMessageAction = createAction({
|
||||
auth: slackAuth,
|
||||
name: 'request_approval_direct_message',
|
||||
displayName: 'Request Approval from A User',
|
||||
description:
|
||||
'Send approval message to a user and then wait until the message is approved or disapproved',
|
||||
props: {
|
||||
userId,
|
||||
text,
|
||||
username,
|
||||
profilePicture,
|
||||
},
|
||||
async run(context) {
|
||||
if (context.executionType === ExecutionType.BEGIN) {
|
||||
const token = context.auth.access_token;
|
||||
const { userId, username, profilePicture } = context.propsValue;
|
||||
|
||||
assertNotNullOrUndefined(token, 'token');
|
||||
assertNotNullOrUndefined(text, 'text');
|
||||
assertNotNullOrUndefined(userId, 'userId');
|
||||
|
||||
const postMessage = await slackSendMessage({
|
||||
token,
|
||||
text: `${context.propsValue.text}`,
|
||||
username,
|
||||
profilePicture,
|
||||
conversationId: userId,
|
||||
});
|
||||
|
||||
const dmId = (postMessage as ChatPostMessageResponse).channel as string;
|
||||
const messageTs = (postMessage as ChatPostMessageResponse).ts as string
|
||||
|
||||
const approvalLink = context.generateResumeUrl({
|
||||
queryParams: { action: 'approve',messageTs },
|
||||
});
|
||||
const disapprovalLink = context.generateResumeUrl({
|
||||
queryParams: { action: 'disapprove',messageTs },
|
||||
});
|
||||
|
||||
const client = new WebClient(token);
|
||||
await client.chat.update({
|
||||
ts:messageTs,
|
||||
channel:dmId,
|
||||
text: context.propsValue.text,
|
||||
blocks: [
|
||||
{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: `${context.propsValue.text}`,
|
||||
},
|
||||
},
|
||||
{
|
||||
type: 'actions',
|
||||
block_id: 'actions',
|
||||
elements: [
|
||||
{
|
||||
type: 'button',
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Approve',
|
||||
},
|
||||
style: 'primary',
|
||||
url: approvalLink,
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Disapprove',
|
||||
},
|
||||
style: 'danger',
|
||||
url: disapprovalLink,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
context.run.pause({
|
||||
pauseMetadata: {
|
||||
type: PauseType.WEBHOOK,
|
||||
response: {},
|
||||
},
|
||||
});
|
||||
|
||||
return {
|
||||
approved: false, // default approval is false
|
||||
messageTs
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
approved: context.resumePayload.queryParams['action'] === 'approve',
|
||||
messageTs: context.resumePayload.queryParams['messageTs']
|
||||
|
||||
};
|
||||
}
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,114 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { slackSendMessage } from '../common/utils';
|
||||
import { slackAuth } from '../..';
|
||||
import {
|
||||
assertNotNullOrUndefined,
|
||||
ExecutionType,
|
||||
PauseType,
|
||||
} from '@activepieces/shared';
|
||||
import {
|
||||
profilePicture,
|
||||
singleSelectChannelInfo,
|
||||
slackChannel,
|
||||
text,
|
||||
username,
|
||||
} from '../common/props';
|
||||
import { ChatPostMessageResponse, WebClient } from '@slack/web-api';
|
||||
|
||||
export const requestSendApprovalMessageAction = createAction({
|
||||
auth: slackAuth,
|
||||
name: 'request_approval_message',
|
||||
displayName: 'Request Approval in a Channel',
|
||||
description:
|
||||
'Send approval message to a channel and then wait until the message is approved or disapproved',
|
||||
props: {
|
||||
info: singleSelectChannelInfo,
|
||||
channel: slackChannel(true),
|
||||
text,
|
||||
username,
|
||||
profilePicture,
|
||||
},
|
||||
async run(context) {
|
||||
if (context.executionType === ExecutionType.BEGIN) {
|
||||
const token = context.auth.access_token;
|
||||
const { channel, username, profilePicture } = context.propsValue;
|
||||
|
||||
assertNotNullOrUndefined(token, 'token');
|
||||
assertNotNullOrUndefined(text, 'text');
|
||||
assertNotNullOrUndefined(channel, 'channel');
|
||||
|
||||
const postMessage = await slackSendMessage({
|
||||
token,
|
||||
text: `${context.propsValue.text}`,
|
||||
username,
|
||||
profilePicture,
|
||||
conversationId: channel,
|
||||
});
|
||||
const messageTs = (postMessage as ChatPostMessageResponse).ts as string
|
||||
|
||||
const approvalLink = context.generateResumeUrl({
|
||||
queryParams: { action: 'approve', channel, messageTs },
|
||||
});
|
||||
const disapprovalLink = context.generateResumeUrl({
|
||||
queryParams: { action: 'disapprove', channel, messageTs },
|
||||
});
|
||||
|
||||
const client = new WebClient(token);
|
||||
await client.chat.update({
|
||||
channel: channel,
|
||||
ts: messageTs,
|
||||
text: context.propsValue.text,
|
||||
blocks: [
|
||||
{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: `${context.propsValue.text}`,
|
||||
},
|
||||
},
|
||||
{
|
||||
type: 'actions',
|
||||
block_id: 'actions',
|
||||
elements: [
|
||||
{
|
||||
type: 'button',
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Approve',
|
||||
},
|
||||
style: 'primary',
|
||||
url: approvalLink,
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Disapprove',
|
||||
},
|
||||
style: 'danger',
|
||||
url: disapprovalLink,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
context.run.pause({
|
||||
pauseMetadata: {
|
||||
type: PauseType.WEBHOOK,
|
||||
response: {},
|
||||
},
|
||||
});
|
||||
|
||||
return {
|
||||
approved: false, // default approval is false
|
||||
messageTs
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
approved: context.resumePayload.queryParams['action'] === 'approve',
|
||||
messageTs: context.resumePayload.queryParams['messageTs']
|
||||
};
|
||||
}
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,32 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { slackAuth } from '../..';
|
||||
import { WebClient } from '@slack/web-api';
|
||||
import { slackChannel } from '../common/props';
|
||||
import { processMessageTimestamp } from '../common/utils';
|
||||
|
||||
export const retrieveThreadMessages = createAction({
|
||||
name: 'retrieveThreadMessages',
|
||||
displayName: 'Retrieve Thread Messages',
|
||||
description: 'Retrieves thread messages by channel and thread timestamp.',
|
||||
auth: slackAuth,
|
||||
props: {
|
||||
channel: slackChannel(true),
|
||||
threadTs: Property.ShortText({
|
||||
displayName: 'Thread ts',
|
||||
description:
|
||||
'Provide the ts (timestamp) value of the **parent** message to retrieve replies of this message. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run({ auth, propsValue }) {
|
||||
const client = new WebClient(auth.access_token);
|
||||
const messageTimestamp = processMessageTimestamp(propsValue.threadTs);
|
||||
if (!messageTimestamp) {
|
||||
throw new Error('Invalid Timestamp Value.');
|
||||
}
|
||||
return await client.conversations.replies({
|
||||
channel: propsValue.channel,
|
||||
ts: messageTimestamp,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,49 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { slackAuth } from '../..';
|
||||
import { WebClient } from '@slack/web-api';
|
||||
|
||||
export const searchMessages = createAction({
|
||||
name: 'searchMessages',
|
||||
displayName: 'Search messages',
|
||||
description: 'Searches for messages matching a query',
|
||||
auth: slackAuth,
|
||||
props: {
|
||||
query: Property.ShortText({
|
||||
displayName: 'Search query',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run({ auth, propsValue }) {
|
||||
const userToken = auth.data['authed_user']?.access_token;
|
||||
if (userToken === undefined) {
|
||||
throw new Error(JSON.stringify(
|
||||
{
|
||||
message: 'Missing user token, please re-authenticate'
|
||||
}
|
||||
));
|
||||
}
|
||||
const client = new WebClient(userToken);
|
||||
const matches = [];
|
||||
|
||||
// We can't use the usual "for await ... of" syntax with client.paginate
|
||||
// Because search.messages uses a bastardized version of cursor-based pagination
|
||||
// Where you need to pass * as first cursor
|
||||
// https://api.slack.com/methods/search.messages#arg_cursor
|
||||
let cursor = '*';
|
||||
do {
|
||||
const page = await client.search.messages({
|
||||
query: propsValue.query,
|
||||
count: 100,
|
||||
// @ts-expect-error TS2353 - SDK is not aware cursor is actually supported
|
||||
cursor,
|
||||
});
|
||||
if (page.messages?.matches) {
|
||||
matches.push(...page.messages.matches);
|
||||
}
|
||||
// @ts-expect-error TS2353 - SDK is not aware next_cursor is actually returned
|
||||
cursor = page.messages?.pagination?.next_cursor;
|
||||
} while (cursor);
|
||||
|
||||
return matches;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,69 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { slackSendMessage } from '../common/utils';
|
||||
import { slackAuth } from '../../';
|
||||
import { assertNotNullOrUndefined } from '@activepieces/shared';
|
||||
import {
|
||||
profilePicture,
|
||||
text,
|
||||
userId,
|
||||
username,
|
||||
blocks,
|
||||
mentionOriginFlow,
|
||||
} from '../common/props';
|
||||
import { Block,KnownBlock } from '@slack/web-api';
|
||||
|
||||
|
||||
export const slackSendDirectMessageAction = createAction({
|
||||
auth: slackAuth,
|
||||
name: 'send_direct_message',
|
||||
displayName: 'Send Message To A User',
|
||||
description: 'Send message to a user',
|
||||
props: {
|
||||
userId,
|
||||
text,
|
||||
username,
|
||||
profilePicture,
|
||||
mentionOriginFlow,
|
||||
blocks,
|
||||
unfurlLinks: Property.Checkbox({
|
||||
displayName: 'Unfurl Links',
|
||||
description: 'Enable link unfurling for this message',
|
||||
required: false,
|
||||
defaultValue: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const token = context.auth.access_token;
|
||||
const { text, userId, blocks, unfurlLinks, mentionOriginFlow } = context.propsValue;
|
||||
|
||||
assertNotNullOrUndefined(token, 'token');
|
||||
assertNotNullOrUndefined(text, 'text');
|
||||
assertNotNullOrUndefined(userId, 'userId');
|
||||
|
||||
const blockList: (KnownBlock | Block)[] = [{ type: 'section', text: { type: 'mrkdwn', text } }]
|
||||
|
||||
if(blocks && Array.isArray(blocks)) {
|
||||
blockList.push(...(blocks as unknown as (KnownBlock | Block)[]))
|
||||
}
|
||||
|
||||
if(mentionOriginFlow) {
|
||||
(blockList as KnownBlock[])?.push({ type: 'context', elements: [
|
||||
{
|
||||
"type": "mrkdwn",
|
||||
"text": `Message sent by <${new URL(context.server.publicUrl).origin}/projects/${context.project.id}/flows/${context.flows.current.id}|this flow>.`
|
||||
}
|
||||
] })
|
||||
}
|
||||
|
||||
return slackSendMessage({
|
||||
token,
|
||||
text,
|
||||
username: context.propsValue.username,
|
||||
profilePicture: context.propsValue.profilePicture,
|
||||
conversationId: userId,
|
||||
blocks:blockList,
|
||||
unfurlLinks,
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import {
|
||||
profilePicture,
|
||||
slackChannel,
|
||||
username,
|
||||
blocks,
|
||||
threadTs,
|
||||
singleSelectChannelInfo,
|
||||
mentionOriginFlow,
|
||||
} from '../common/props';
|
||||
import { processMessageTimestamp, slackSendMessage } from '../common/utils';
|
||||
import { slackAuth } from '../../';
|
||||
import { Block,KnownBlock } from '@slack/web-api';
|
||||
|
||||
|
||||
export const slackSendMessageAction = createAction({
|
||||
auth: slackAuth,
|
||||
name: 'send_channel_message',
|
||||
displayName: 'Send Message To A Channel',
|
||||
description: 'Send message to a channel',
|
||||
props: {
|
||||
info: singleSelectChannelInfo,
|
||||
channel: slackChannel(true),
|
||||
text: Property.LongText({
|
||||
displayName: 'Message',
|
||||
description: 'The text of your message. When using Block Kit blocks, this is used as a fallback for notifications.',
|
||||
required: false,
|
||||
}),
|
||||
threadTs,
|
||||
username,
|
||||
profilePicture,
|
||||
file: Property.File({
|
||||
displayName: 'Attachment',
|
||||
required: false,
|
||||
}),
|
||||
replyBroadcast: Property.Checkbox({
|
||||
displayName: 'Broadcast reply to channel',
|
||||
description: 'When replying to a thread, also make the message visible to everyone in the channel (only applicable when Thread Timestamp is provided)',
|
||||
required: false,
|
||||
defaultValue: false,
|
||||
}),
|
||||
mentionOriginFlow,
|
||||
unfurlLinks: Property.Checkbox({
|
||||
displayName: 'Unfurl Links',
|
||||
description: 'Enable link unfurling for this message',
|
||||
required: false,
|
||||
defaultValue: true,
|
||||
}),
|
||||
blocks,
|
||||
},
|
||||
async run(context) {
|
||||
const token = context.auth.access_token;
|
||||
const { text, channel, username, profilePicture, threadTs, file, mentionOriginFlow, blocks, replyBroadcast, unfurlLinks } =
|
||||
context.propsValue;
|
||||
|
||||
if (!text && (!blocks || !Array.isArray(blocks) || blocks.length === 0)) {
|
||||
throw new Error('Either Message or Block Kit blocks must be provided');
|
||||
}
|
||||
|
||||
const blockList: (KnownBlock | Block)[] = [];
|
||||
|
||||
|
||||
if (text && (!blocks || !Array.isArray(blocks) || blocks.length === 0)) {
|
||||
blockList.push({ type: 'section', text: { type: 'mrkdwn', text } });
|
||||
}
|
||||
|
||||
if(blocks && Array.isArray(blocks) && blocks.length > 0) {
|
||||
blockList.push(...(blocks as unknown as (KnownBlock | Block)[]))
|
||||
}
|
||||
|
||||
if(mentionOriginFlow) {
|
||||
(blockList as KnownBlock[])?.push({ type: 'context', elements: [
|
||||
{
|
||||
"type": "mrkdwn",
|
||||
"text": `Message sent by <${new URL(context.server.publicUrl).origin}/projects/${context.project.id}/flows/${context.flows.current.id}|this flow>.`
|
||||
}
|
||||
] })
|
||||
}
|
||||
|
||||
return slackSendMessage({
|
||||
token,
|
||||
text: text || undefined,
|
||||
username,
|
||||
profilePicture,
|
||||
conversationId: channel,
|
||||
threadTs: threadTs ? processMessageTimestamp(threadTs) : undefined,
|
||||
file,
|
||||
blocks: blockList.length > 0 ? blockList : undefined,
|
||||
replyBroadcast,
|
||||
unfurlLinks,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,28 @@
|
||||
import { slackAuth } from '../../index';
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { singleSelectChannelInfo, slackChannel } from '../common/props';
|
||||
import { WebClient } from '@slack/web-api';
|
||||
|
||||
export const setChannelTopicAction = createAction({
|
||||
auth: slackAuth,
|
||||
name: 'set-channel-topic',
|
||||
displayName: 'Set Channel Topic',
|
||||
description: 'Sets the topic on a selected channel.',
|
||||
props: {
|
||||
info: singleSelectChannelInfo,
|
||||
channel: slackChannel(true),
|
||||
topic: Property.LongText({
|
||||
displayName: 'Topic',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { channel, topic } = context.propsValue;
|
||||
const client = new WebClient(context.auth.access_token);
|
||||
|
||||
return await client.conversations.setTopic({
|
||||
channel,
|
||||
topic,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,43 @@
|
||||
import { slackAuth } from '../../';
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { WebClient } from '@slack/web-api';
|
||||
import { z } from 'zod';
|
||||
import { propsValidation } from '@activepieces/pieces-common';
|
||||
|
||||
export const setUserStatusAction = createAction({
|
||||
auth: slackAuth,
|
||||
name: 'slack-set-user-status',
|
||||
displayName: 'Set User Status',
|
||||
description: "Sets a user's custom status",
|
||||
props: {
|
||||
text: Property.ShortText({
|
||||
displayName: 'Text',
|
||||
required: true,
|
||||
}),
|
||||
emoji: Property.ShortText({
|
||||
displayName: 'Emoji',
|
||||
required: false,
|
||||
description:
|
||||
'Emoji shortname (standard or custom), e.g. :tada: or :train:',
|
||||
}),
|
||||
expiration: Property.Number({
|
||||
displayName: 'Expires at',
|
||||
description: 'Unix timestamp - if not set, the status will not expire',
|
||||
required: false,
|
||||
}),
|
||||
},
|
||||
async run({ auth, propsValue }) {
|
||||
await propsValidation.validateZod(propsValue, {
|
||||
text: z.string().max(100),
|
||||
});
|
||||
|
||||
const client = new WebClient(auth.data['authed_user']?.access_token);
|
||||
return await client.users.profile.set({
|
||||
profile: {
|
||||
status_text: propsValue.text,
|
||||
status_emoji: propsValue.emoji,
|
||||
status_expiration: propsValue.expiration,
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,46 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { slackAuth } from '../..';
|
||||
import { blocks, singleSelectChannelInfo, slackChannel } from '../common/props';
|
||||
import { processMessageTimestamp } from '../common/utils';
|
||||
import { Block,KnownBlock, WebClient } from '@slack/web-api';
|
||||
|
||||
export const updateMessage = createAction({
|
||||
// auth: check https://www.activepieces.com/docs/developers/piece-reference/authentication,
|
||||
name: 'updateMessage',
|
||||
displayName: 'Update message',
|
||||
description: 'Update an existing message',
|
||||
auth: slackAuth,
|
||||
props: {
|
||||
info: singleSelectChannelInfo,
|
||||
channel: slackChannel(true),
|
||||
ts: Property.ShortText({
|
||||
displayName: 'Message Timestamp',
|
||||
description:
|
||||
'Please provide the timestamp of the message you wish to update, such as `1710304378.475129`. Alternatively, you can easily obtain the message link by clicking on the three dots next to the message and selecting the `Copy link` option.',
|
||||
required: true,
|
||||
}),
|
||||
text: Property.LongText({
|
||||
displayName: 'Message',
|
||||
description: 'The updated text of your message',
|
||||
required: true,
|
||||
}),
|
||||
blocks,
|
||||
},
|
||||
async run({ auth, propsValue }) {
|
||||
const messageTimestamp = processMessageTimestamp(propsValue.ts);
|
||||
if (!messageTimestamp) {
|
||||
throw new Error('Invalid Timestamp Value.');
|
||||
}
|
||||
const client = new WebClient(auth.access_token);
|
||||
|
||||
|
||||
const blockList = propsValue.blocks ?[{ type: 'section', text: { type: 'mrkdwn', text:propsValue.text } }, ...(propsValue.blocks as unknown as (KnownBlock | Block)[])] :undefined
|
||||
|
||||
return await client.chat.update({
|
||||
channel: propsValue.channel,
|
||||
ts: messageTimestamp,
|
||||
text: propsValue.text,
|
||||
blocks: blockList,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,42 @@
|
||||
import { slackAuth } from '../../';
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { WebClient } from '@slack/web-api';
|
||||
|
||||
export const updateProfileAction = createAction({
|
||||
auth: slackAuth,
|
||||
name: 'slack-update-profile',
|
||||
displayName: 'Update Profile',
|
||||
description: 'Update basic profile field such as name or title.',
|
||||
props: {
|
||||
firstName: Property.ShortText({
|
||||
displayName: 'First Name',
|
||||
required: false,
|
||||
}),
|
||||
lastName: Property.ShortText({
|
||||
displayName: 'Last Name',
|
||||
required: false,
|
||||
}),
|
||||
email: Property.ShortText({
|
||||
displayName: 'Email',
|
||||
description: `Changing a user's email address will send an email to both the old and new addresses, and also post a slackbot message to the user informing them of the change.`,
|
||||
required: false,
|
||||
}),
|
||||
userId: Property.ShortText({
|
||||
displayName: 'User',
|
||||
description:
|
||||
'ID of user to change. This argument may only be specified by admins on paid teams.You can use **Find User by Email** action to retrieve ID.',
|
||||
required: false,
|
||||
}),
|
||||
},
|
||||
async run({ auth, propsValue }) {
|
||||
const client = new WebClient(auth.data['authed_user']?.access_token);
|
||||
return client.users.profile.set({
|
||||
profile: {
|
||||
first_name: propsValue.firstName,
|
||||
last_name: propsValue.lastName,
|
||||
email: propsValue.email,
|
||||
},
|
||||
user: propsValue.userId,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,38 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { slackAuth } from '../../index';
|
||||
import { WebClient } from '@slack/web-api';
|
||||
import {
|
||||
slackChannel,
|
||||
} from '../common/props';
|
||||
|
||||
export const uploadFile = createAction({
|
||||
auth: slackAuth,
|
||||
name: 'uploadFile',
|
||||
displayName: 'Upload file',
|
||||
description: 'Upload file without sharing it to a channel or user',
|
||||
props: {
|
||||
file: Property.File({
|
||||
displayName: 'Attachment',
|
||||
required: true,
|
||||
}),
|
||||
title: Property.ShortText({
|
||||
displayName: 'Title',
|
||||
required: false,
|
||||
}),
|
||||
filename: Property.ShortText({
|
||||
displayName: 'Filename',
|
||||
required: false,
|
||||
}),
|
||||
channel: slackChannel(false),
|
||||
},
|
||||
async run(context) {
|
||||
const token = context.auth.access_token;
|
||||
const { file, title, filename, channel } = context.propsValue;
|
||||
const client = new WebClient(token);
|
||||
return await client.files.uploadV2({
|
||||
file_uploads: [{ file: file.data, filename: filename || file.filename }],
|
||||
title: title,
|
||||
channel_id: channel,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,181 @@
|
||||
import { OAuth2PropertyValue, Property } from '@activepieces/pieces-framework';
|
||||
import { UsersListResponse, WebClient } from '@slack/web-api';
|
||||
import {slackAuth} from '../../index';
|
||||
const slackChannelBotInstruction = `
|
||||
Please make sure add the bot to the channel by following these steps:
|
||||
1. Type /invite in the channel's chat.
|
||||
2. Click on Add apps to this channel.
|
||||
3. Search for and add the bot.
|
||||
`;
|
||||
|
||||
export const multiSelectChannelInfo = Property.MarkDown({
|
||||
value:
|
||||
slackChannelBotInstruction +
|
||||
`\n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly in an array like this: \`{\`{ ['your_channel_id_1', 'your_channel_id_2', ...] \`}\`}`,
|
||||
});
|
||||
|
||||
export const singleSelectChannelInfo = Property.MarkDown({
|
||||
value:
|
||||
slackChannelBotInstruction +
|
||||
`\n**Note**: If you can't find the channel in the dropdown list (which fetches up to 2000 channels), please click on the **(F)** and type the channel ID directly.
|
||||
`,
|
||||
});
|
||||
|
||||
export const slackChannel = <R extends boolean>(required: R) =>
|
||||
Property.Dropdown<string, R,typeof slackAuth>({
|
||||
auth: slackAuth,
|
||||
displayName: 'Channel',
|
||||
description:
|
||||
"You can get the Channel ID by right-clicking on the channel and selecting 'View Channel Details.'",
|
||||
required,
|
||||
refreshers: [],
|
||||
async options({ auth }) {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'connect slack account',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
const authentication = auth as OAuth2PropertyValue;
|
||||
const accessToken = authentication['access_token'];
|
||||
|
||||
const channels = await getChannels(accessToken);
|
||||
|
||||
return {
|
||||
disabled: false,
|
||||
placeholder: 'Select channel',
|
||||
options: channels,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
export const username = Property.ShortText({
|
||||
displayName: 'Username',
|
||||
description: 'The username of the bot',
|
||||
required: false,
|
||||
});
|
||||
|
||||
export const profilePicture = Property.ShortText({
|
||||
displayName: 'Profile Picture',
|
||||
description: 'The profile picture of the bot',
|
||||
required: false,
|
||||
});
|
||||
|
||||
export const threadTs = Property.ShortText({
|
||||
displayName: 'Reply to Thread (Thread Message Link/Timestamp)',
|
||||
description:
|
||||
'Provide the ts (timestamp) or link value of the **parent** message to make this message a reply. Do not use the ts value of the reply itself; use its parent instead. For example `1710304378.475129`.Alternatively, you can easily obtain the message link by clicking on the three dots next to the parent message and selecting the `Copy link` option.',
|
||||
required: false,
|
||||
});
|
||||
|
||||
export const mentionOriginFlow = Property.Checkbox({
|
||||
displayName: 'Mention flow of origin?',
|
||||
description:
|
||||
'If checked, adds a mention at the end of the Slack message to indicate which flow sent the notification, with a link to said flow.',
|
||||
required: false,
|
||||
defaultValue: false,
|
||||
});
|
||||
|
||||
export const blocks = Property.Json({
|
||||
displayName: 'Block Kit blocks',
|
||||
description: 'See https://api.slack.com/block-kit for specs',
|
||||
required: false,
|
||||
defaultValue: []
|
||||
});
|
||||
|
||||
export const userId = Property.Dropdown<string,true,typeof slackAuth>({
|
||||
auth: slackAuth,
|
||||
displayName: 'User',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
async options({ auth }) {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'connect slack account',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const accessToken = (auth as OAuth2PropertyValue).access_token;
|
||||
|
||||
const client = new WebClient(accessToken);
|
||||
const users: { label: string; value: string }[] = [];
|
||||
for await (const page of client.paginate('users.list', {
|
||||
limit: 1000, // Only limits page size, not total number of results
|
||||
})) {
|
||||
const response = page as UsersListResponse;
|
||||
if (response.members) {
|
||||
users.push(
|
||||
...response.members
|
||||
.filter((member) => !member.deleted)
|
||||
.map((member) => {
|
||||
return { label: member.name || '', value: member.id || '' };
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
return {
|
||||
disabled: false,
|
||||
placeholder: 'Select User',
|
||||
options: users,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
export const text = Property.LongText({
|
||||
displayName: 'Message',
|
||||
required: true,
|
||||
});
|
||||
|
||||
export const actions = Property.Array({
|
||||
displayName: 'Action Buttons',
|
||||
required: true,
|
||||
properties: {
|
||||
label: Property.ShortText({
|
||||
displayName: 'Label',
|
||||
required: true,
|
||||
}),
|
||||
style: Property.StaticDropdown({
|
||||
displayName: 'Style',
|
||||
required: false,
|
||||
defaultValue: null,
|
||||
options: {
|
||||
options: [
|
||||
{ label: 'Default', value: null },
|
||||
{ label: 'Primary', value: 'primary' },
|
||||
{ label: 'Danger', value: 'danger' },
|
||||
],
|
||||
},
|
||||
}),
|
||||
},
|
||||
});
|
||||
|
||||
export async function getChannels(accessToken: string) {
|
||||
const client = new WebClient(accessToken);
|
||||
const channels: { label: string; value: string }[] = [];
|
||||
const CHANNELS_LIMIT = 2000;
|
||||
|
||||
let cursor;
|
||||
do {
|
||||
const response = await client.conversations.list({
|
||||
types: 'public_channel,private_channel',
|
||||
exclude_archived: true,
|
||||
limit: 1000,
|
||||
cursor,
|
||||
});
|
||||
|
||||
if (response.channels) {
|
||||
channels.push(
|
||||
...response.channels.map((channel) => {
|
||||
return { label: channel.name || '', value: channel.id || '' };
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
cursor = response.response_metadata?.next_cursor;
|
||||
} while (cursor && channels.length < CHANNELS_LIMIT);
|
||||
|
||||
return channels;
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
import { processMessageTimestamp, slackSendMessage } from './utils';
|
||||
import {
|
||||
assertNotNullOrUndefined,
|
||||
ExecutionType,
|
||||
PauseType,
|
||||
} from '@activepieces/shared';
|
||||
import { ChatPostMessageResponse } from '@slack/web-api';
|
||||
|
||||
export const requestAction = async (conversationId: string, context: any) => {
|
||||
const { actions } = context.propsValue;
|
||||
assertNotNullOrUndefined(actions, 'actions');
|
||||
|
||||
if (!actions.length) {
|
||||
throw new Error(`Must have at least one button action`);
|
||||
}
|
||||
|
||||
const actionTextToIds = actions.map(
|
||||
({ label, style }: { label: string; style: string }) => {
|
||||
if (!label) {
|
||||
throw new Error(`Button text for the action cannot be empty`);
|
||||
}
|
||||
|
||||
return {
|
||||
label,
|
||||
style,
|
||||
actionId: encodeURI(label as string),
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
if (context.executionType === ExecutionType.BEGIN) {
|
||||
context.run.pause({
|
||||
pauseMetadata: {
|
||||
type: PauseType.WEBHOOK,
|
||||
actions: actionTextToIds.map(
|
||||
(action: { actionId: string }) => action.actionId
|
||||
),
|
||||
},
|
||||
});
|
||||
|
||||
const token = context.auth.access_token;
|
||||
const { text, username, profilePicture } = context.propsValue;
|
||||
|
||||
assertNotNullOrUndefined(token, 'token');
|
||||
assertNotNullOrUndefined(text, 'text');
|
||||
|
||||
const actionElements = actionTextToIds.map(
|
||||
(action: { label: string; style: string; actionId: string }) => {
|
||||
const actionLink = context.generateResumeUrl({
|
||||
queryParams: { action: action.actionId },
|
||||
});
|
||||
|
||||
return {
|
||||
type: 'button',
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: action.label,
|
||||
},
|
||||
...(action.style && {style: action.style}),
|
||||
value: actionLink,
|
||||
action_id: action.actionId,
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
const messageResponse: ChatPostMessageResponse = await slackSendMessage({
|
||||
token,
|
||||
text: `${context.propsValue.text}`,
|
||||
username,
|
||||
profilePicture,
|
||||
threadTs: context.propsValue.threadTs
|
||||
? processMessageTimestamp(context.propsValue.threadTs)
|
||||
: undefined,
|
||||
blocks: [
|
||||
{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: `${context.propsValue.text}`,
|
||||
},
|
||||
},
|
||||
{
|
||||
type: 'actions',
|
||||
block_id: 'actions',
|
||||
elements: actionElements,
|
||||
},
|
||||
],
|
||||
conversationId: conversationId,
|
||||
});
|
||||
|
||||
return {
|
||||
action: actionTextToIds.at(0) || 'N/A',
|
||||
payload: {
|
||||
type: 'action_blocks',
|
||||
user: {
|
||||
id: messageResponse.message?.user,
|
||||
username: 'user.name',
|
||||
name: 'john.smith',
|
||||
team_id: messageResponse.message?.team,
|
||||
},
|
||||
container: {
|
||||
type: 'message',
|
||||
message_ts: messageResponse.ts,
|
||||
channel_id: messageResponse.channel,
|
||||
is_ephemeral: false,
|
||||
},
|
||||
trigger_id: 'trigger_id',
|
||||
team: {
|
||||
id: messageResponse.message?.team,
|
||||
domain: 'team_name',
|
||||
},
|
||||
channel: {
|
||||
id: messageResponse.channel,
|
||||
name: '#channel',
|
||||
},
|
||||
message: messageResponse.message,
|
||||
state: {},
|
||||
actions: [
|
||||
{
|
||||
action_id: 'action_id',
|
||||
block_id: 'actions',
|
||||
value: 'resume_url',
|
||||
style: 'primary',
|
||||
type: 'button',
|
||||
action_ts: 'action_ts',
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
} else {
|
||||
const payloadQueryParams = context.resumePayload.queryParams as {
|
||||
action: string;
|
||||
};
|
||||
|
||||
return {
|
||||
action: decodeURI(payloadQueryParams.action),
|
||||
payload: context.resumePayload.body,
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,130 @@
|
||||
import { ApFile } from '@activepieces/pieces-framework';
|
||||
import { Block, WebClient } from '@slack/web-api';
|
||||
|
||||
export const slackSendMessage = async ({
|
||||
text,
|
||||
conversationId,
|
||||
username,
|
||||
profilePicture,
|
||||
blocks,
|
||||
threadTs,
|
||||
token,
|
||||
file,
|
||||
replyBroadcast,
|
||||
unfurlLinks,
|
||||
}: SlackSendMessageParams) => {
|
||||
const client = new WebClient(token);
|
||||
|
||||
if (file) {
|
||||
return await client.files.uploadV2({
|
||||
channel_id: conversationId,
|
||||
initial_comment: text,
|
||||
thread_ts: threadTs,
|
||||
file_uploads: [
|
||||
{
|
||||
file: file.data,
|
||||
filename: file.filename,
|
||||
},
|
||||
],
|
||||
});
|
||||
} else {
|
||||
const messageParams: any = {
|
||||
text,
|
||||
channel: conversationId,
|
||||
username,
|
||||
icon_url: profilePicture,
|
||||
blocks: blocks as Block[],
|
||||
thread_ts: threadTs,
|
||||
};
|
||||
|
||||
if (replyBroadcast) {
|
||||
messageParams.reply_broadcast = replyBroadcast;
|
||||
}
|
||||
|
||||
if (unfurlLinks === false) {
|
||||
messageParams.unfurl_links = false;
|
||||
}
|
||||
|
||||
return await client.chat.postMessage(messageParams);
|
||||
}
|
||||
};
|
||||
|
||||
type SlackSendMessageParams = {
|
||||
token: string;
|
||||
conversationId: string;
|
||||
username?: string;
|
||||
profilePicture?: string;
|
||||
blocks?: unknown[] | Record<string, any>;
|
||||
text?: string;
|
||||
file?: ApFile;
|
||||
threadTs?: string;
|
||||
replyBroadcast?: boolean;
|
||||
unfurlLinks?: boolean;
|
||||
};
|
||||
|
||||
export function processMessageTimestamp(input: string) {
|
||||
// Regular expression to match a URL containing the timestamp
|
||||
const urlRegex = /\/p(\d+)(\d{6})$/;
|
||||
// Check if the input is a URL
|
||||
const urlMatch = input.match(urlRegex);
|
||||
if (urlMatch) {
|
||||
const timestamp = `${urlMatch[1]}.${urlMatch[2]}`;
|
||||
return timestamp;
|
||||
}
|
||||
|
||||
// Check if the input is already in the desired format
|
||||
const timestampRegex = /^(\d+)\.(\d{6})$/;
|
||||
const timestampMatch = input.match(timestampRegex);
|
||||
if (timestampMatch) {
|
||||
return input;
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
export function getFirstFiveOrAll(array: unknown[]) {
|
||||
if (array.length <= 5) {
|
||||
return array;
|
||||
} else {
|
||||
return array.slice(0, 5);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse a message text to extract command and arguments
|
||||
*/
|
||||
export function parseCommand(
|
||||
text: string,
|
||||
botUserId: string,
|
||||
validCommands: string[]
|
||||
): { command: string; args: string[] } | null {
|
||||
if (!botUserId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Check if the message mentions the bot
|
||||
const mentionRegex = new RegExp(`<@${botUserId}>\\s+(.+)`, 's');
|
||||
const mentionMatch = text.match(mentionRegex);
|
||||
|
||||
if (!mentionMatch) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Extract the text after the mention
|
||||
const commandText = mentionMatch[1].trim();
|
||||
|
||||
// Split into command and arguments (first word is command, rest are args)
|
||||
const parts = commandText.split(/\s+/);
|
||||
const command = parts[0].toLowerCase();
|
||||
const args = parts.slice(1);
|
||||
|
||||
// Check if it's a valid command
|
||||
if (!validCommands.includes(command)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return {
|
||||
command,
|
||||
args,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
import { TriggerStrategy, createTrigger } from '@activepieces/pieces-framework';
|
||||
import { slackAuth } from '../../';
|
||||
import { WebClient } from '@slack/web-api';
|
||||
|
||||
const sampleData = {
|
||||
type: 'channel_created',
|
||||
channel: {
|
||||
id: 'C024BE91L',
|
||||
name: 'fun',
|
||||
created: 1360782804,
|
||||
creator: 'U024BE7LH',
|
||||
},
|
||||
};
|
||||
|
||||
export const channelCreated = createTrigger({
|
||||
auth: slackAuth,
|
||||
name: 'channel_created',
|
||||
displayName: 'Channel created',
|
||||
description: 'Triggers when a channel is created',
|
||||
props: {},
|
||||
type: TriggerStrategy.APP_WEBHOOK,
|
||||
sampleData: sampleData,
|
||||
onEnable: async (context) => {
|
||||
// Older OAuth2 has team_id, newer has team.id
|
||||
const teamId =
|
||||
context.auth.data['team_id'] ?? context.auth.data['team']['id'];
|
||||
context.app.createListeners({
|
||||
events: ['channel_created'],
|
||||
identifierValue: teamId,
|
||||
});
|
||||
},
|
||||
onDisable: async (context) => {
|
||||
// Ignored
|
||||
},
|
||||
test: async (context) => {
|
||||
const client = new WebClient(context.auth.access_token);
|
||||
const response = await client.conversations.list({
|
||||
exclude_archived: true,
|
||||
limit: 10,
|
||||
types: 'public_channel,private_channel',
|
||||
});
|
||||
if (!response.channels) {
|
||||
return [];
|
||||
}
|
||||
return response.channels.map((channel) => {
|
||||
return {
|
||||
type: 'channel_created',
|
||||
channel: {
|
||||
id: channel.id,
|
||||
name: channel.name,
|
||||
created: channel.created,
|
||||
creator: channel.creator,
|
||||
},
|
||||
};
|
||||
});
|
||||
},
|
||||
|
||||
run: async (context) => {
|
||||
const payloadBody = context.payload.body as PayloadBody;
|
||||
return [payloadBody.event];
|
||||
},
|
||||
});
|
||||
|
||||
type PayloadBody = {
|
||||
event: object;
|
||||
};
|
||||
@@ -0,0 +1,101 @@
|
||||
import {
|
||||
Property,
|
||||
TriggerStrategy,
|
||||
createTrigger,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { userId } from '../common/props';
|
||||
import { slackAuth } from '../../';
|
||||
import { parseCommand } from '../common/utils';
|
||||
|
||||
export const newCommandInDirectMessageTrigger = createTrigger({
|
||||
auth: slackAuth,
|
||||
name: 'new-command-in-direct-message',
|
||||
displayName: 'New Command in Direct Message',
|
||||
description:
|
||||
'Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2) via Direct Message.',
|
||||
props: {
|
||||
user: userId,
|
||||
commands: Property.Array({
|
||||
displayName: 'Commands',
|
||||
description:
|
||||
'List of valid commands that the bot should respond to (e.g., help, ocr, remind)',
|
||||
required: true,
|
||||
defaultValue: ['help'],
|
||||
}),
|
||||
ignoreBots: Property.Checkbox({
|
||||
displayName: 'Ignore Bot Messages ?',
|
||||
required: true,
|
||||
defaultValue: true,
|
||||
}),
|
||||
ignoreSelfMessages: Property.Checkbox({
|
||||
displayName: 'Ignore Message from Yourself ?',
|
||||
required: true,
|
||||
defaultValue: false,
|
||||
}),
|
||||
},
|
||||
type: TriggerStrategy.APP_WEBHOOK,
|
||||
sampleData: undefined,
|
||||
onEnable: async (context) => {
|
||||
// Older OAuth2 has team_id, newer has team.id
|
||||
const teamId =
|
||||
context.auth.data['team_id'] ?? context.auth.data['team']['id'];
|
||||
context.app.createListeners({
|
||||
events: ['message'],
|
||||
identifierValue: teamId,
|
||||
});
|
||||
},
|
||||
onDisable: async (context) => {
|
||||
// Ignored
|
||||
},
|
||||
|
||||
run: async (context) => {
|
||||
const payloadBody = context.payload.body as PayloadBody;
|
||||
const commands = (context.propsValue.commands as string[]) ?? [];
|
||||
const user = context.propsValue.user as string;
|
||||
const authUserId = context.auth.data['authed_user']?.id;
|
||||
|
||||
|
||||
if (payloadBody.event.channel_type !== 'im') {
|
||||
return [];
|
||||
}
|
||||
|
||||
// Check for bot messages if configured to ignore them
|
||||
if (
|
||||
(context.propsValue.ignoreBots && payloadBody.event.bot_id) ||
|
||||
(context.propsValue.ignoreSelfMessages && payloadBody.event.user === authUserId)
|
||||
) {
|
||||
return [];
|
||||
}
|
||||
|
||||
// Check for mention and parse command
|
||||
if (user && payloadBody.event.text) {
|
||||
const parsedCommand = parseCommand(
|
||||
payloadBody.event.text,
|
||||
user,
|
||||
commands
|
||||
);
|
||||
|
||||
if (parsedCommand && commands.includes(parsedCommand.command)) {
|
||||
// Return event with parsed command
|
||||
return [
|
||||
{
|
||||
...payloadBody.event,
|
||||
parsed_command: parsedCommand,
|
||||
},
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
return [];
|
||||
},
|
||||
});
|
||||
|
||||
type PayloadBody = {
|
||||
event: {
|
||||
channel: string;
|
||||
bot_id?: string;
|
||||
text?: string;
|
||||
channel_type: string;
|
||||
user: string;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,127 @@
|
||||
import {
|
||||
OAuth2PropertyValue,
|
||||
Property,
|
||||
TriggerStrategy,
|
||||
createTrigger,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { getChannels, multiSelectChannelInfo, userId } from '../common/props';
|
||||
import { slackAuth } from '../../';
|
||||
import { parseCommand } from '../common/utils';
|
||||
|
||||
export const newCommand = createTrigger({
|
||||
auth: slackAuth,
|
||||
name: 'new_command',
|
||||
displayName: 'New Command in Channel',
|
||||
description:
|
||||
'Triggers when a specific command is sent to the bot (e.g., @bot command arg1 arg2)',
|
||||
props: {
|
||||
info: multiSelectChannelInfo,
|
||||
user: userId,
|
||||
commands: Property.Array({
|
||||
displayName: 'Commands',
|
||||
description:
|
||||
'List of valid commands that the bot should respond to (e.g., help, ocr, remind)',
|
||||
required: true,
|
||||
defaultValue: ['help'],
|
||||
}),
|
||||
channels: Property.MultiSelectDropdown({
|
||||
auth: slackAuth,
|
||||
displayName: 'Channels',
|
||||
description:
|
||||
'If no channel is selected, the flow will be triggered for commands in all channels',
|
||||
required: false,
|
||||
refreshers: [],
|
||||
async options({ auth }) {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'connect slack account',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
const authentication = auth as OAuth2PropertyValue;
|
||||
const accessToken = authentication['access_token'];
|
||||
const channels = await getChannels(accessToken);
|
||||
return {
|
||||
disabled: false,
|
||||
placeholder: 'Select channel',
|
||||
options: channels,
|
||||
};
|
||||
},
|
||||
}),
|
||||
ignoreBots: Property.Checkbox({
|
||||
displayName: 'Ignore Bot Messages ?',
|
||||
required: true,
|
||||
defaultValue: true,
|
||||
}),
|
||||
},
|
||||
type: TriggerStrategy.APP_WEBHOOK,
|
||||
sampleData: undefined,
|
||||
onEnable: async (context) => {
|
||||
// Older OAuth2 has team_id, newer has team.id
|
||||
const teamId =
|
||||
context.auth.data['team_id'] ?? context.auth.data['team']['id'];
|
||||
context.app.createListeners({
|
||||
events: ['message'],
|
||||
identifierValue: teamId,
|
||||
});
|
||||
},
|
||||
onDisable: async (context) => {
|
||||
// Ignored
|
||||
},
|
||||
|
||||
run: async (context) => {
|
||||
const payloadBody = context.payload.body as PayloadBody;
|
||||
const channels = (context.propsValue.channels as string[]) ?? [];
|
||||
const commands = (context.propsValue.commands as string[]) ?? [];
|
||||
const user = context.propsValue.user as string;
|
||||
|
||||
|
||||
// check if it's channel message
|
||||
if (!['channel','group'].includes(payloadBody.event.channel_type)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
// Check if we should process this channel
|
||||
if (
|
||||
!(channels.length === 0 || channels.includes(payloadBody.event.channel))
|
||||
) {
|
||||
return [];
|
||||
}
|
||||
|
||||
// Check for bot messages if configured to ignore them
|
||||
if (context.propsValue.ignoreBots && payloadBody.event.bot_id) {
|
||||
return [];
|
||||
}
|
||||
|
||||
// Check for mention and parse command
|
||||
if (user && payloadBody.event.text) {
|
||||
const parsedCommand = parseCommand(
|
||||
payloadBody.event.text,
|
||||
user,
|
||||
commands
|
||||
);
|
||||
|
||||
if (parsedCommand && commands.includes(parsedCommand.command)) {
|
||||
// Return event with parsed command
|
||||
return [
|
||||
{
|
||||
...payloadBody.event,
|
||||
parsed_command: parsedCommand,
|
||||
},
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
return [];
|
||||
},
|
||||
});
|
||||
|
||||
type PayloadBody = {
|
||||
event: {
|
||||
channel: string;
|
||||
bot_id?: string;
|
||||
text?: string;
|
||||
channel_type:string
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,63 @@
|
||||
import { Property, TriggerStrategy, createTrigger } from '@activepieces/pieces-framework';
|
||||
import { slackAuth } from '../../';
|
||||
|
||||
|
||||
|
||||
export const newDirectMessageTrigger = createTrigger({
|
||||
auth: slackAuth,
|
||||
name: 'new-direct-message',
|
||||
displayName: 'New Direct Message',
|
||||
description: 'Triggers when a message was posted in a direct message channel.',
|
||||
props: {
|
||||
ignoreBots: Property.Checkbox({
|
||||
displayName: 'Ignore Bot Messages ?',
|
||||
required: true,
|
||||
defaultValue: false,
|
||||
}),
|
||||
ignoreSelfMessages: Property.Checkbox({
|
||||
displayName: 'Ignore Message from Yourself ?',
|
||||
required: true,
|
||||
defaultValue: false,
|
||||
}),
|
||||
},
|
||||
type: TriggerStrategy.APP_WEBHOOK,
|
||||
sampleData: undefined,
|
||||
onEnable: async (context) => {
|
||||
// Older OAuth2 has team_id, newer has team.id
|
||||
const teamId = context.auth.data['team_id'] ?? context.auth.data['team']['id'];
|
||||
context.app.createListeners({
|
||||
events: ['message'],
|
||||
identifierValue: teamId,
|
||||
});
|
||||
},
|
||||
onDisable: async (context) => {
|
||||
// Ignored
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
const payloadBody = context.payload.body as PayloadBody;
|
||||
const userId = context.auth.data['authed_user']?.id;
|
||||
|
||||
if (payloadBody.event.channel_type !== 'im') {
|
||||
return [];
|
||||
}
|
||||
|
||||
// check for bot messages
|
||||
if (
|
||||
(context.propsValue.ignoreBots && payloadBody.event.bot_id) ||
|
||||
(context.propsValue.ignoreSelfMessages && payloadBody.event.user === userId)
|
||||
) {
|
||||
return [];
|
||||
}
|
||||
return [payloadBody.event];
|
||||
},
|
||||
});
|
||||
|
||||
type PayloadBody = {
|
||||
event: {
|
||||
channel: string;
|
||||
bot_id?: string;
|
||||
user: string;
|
||||
channel_type: string;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,80 @@
|
||||
import {
|
||||
Property,
|
||||
TriggerStrategy,
|
||||
createTrigger,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { slackAuth } from '../../';
|
||||
import { userId } from '../common/props';
|
||||
|
||||
export const newMentionInDirectMessageTrigger = createTrigger({
|
||||
auth: slackAuth,
|
||||
name: 'new-mention-in-direct-message',
|
||||
displayName: 'New Mention in Direct Message',
|
||||
description:
|
||||
'Triggers when a username is mentioned in a direct message channel.',
|
||||
props: {
|
||||
user: userId,
|
||||
ignoreBots: Property.Checkbox({
|
||||
displayName: 'Ignore Bot Messages ?',
|
||||
required: true,
|
||||
defaultValue: false,
|
||||
}),
|
||||
ignoreSelfMessages: Property.Checkbox({
|
||||
displayName: 'Ignore Message from Yourself ?',
|
||||
required: true,
|
||||
defaultValue: false,
|
||||
}),
|
||||
},
|
||||
type: TriggerStrategy.APP_WEBHOOK,
|
||||
sampleData: undefined,
|
||||
onEnable: async (context) => {
|
||||
// Older OAuth2 has team_id, newer has team.id
|
||||
const teamId =
|
||||
context.auth.data['team_id'] ?? context.auth.data['team']['id'];
|
||||
context.app.createListeners({
|
||||
events: ['message'],
|
||||
identifierValue: teamId,
|
||||
});
|
||||
},
|
||||
onDisable: async (context) => {
|
||||
// Ignored
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
const payloadBody = context.payload.body as PayloadBody;
|
||||
const userId = context.auth.data['authed_user']?.id;
|
||||
|
||||
if (payloadBody.event.channel_type !== 'im') {
|
||||
return [];
|
||||
}
|
||||
|
||||
// check for bot messages
|
||||
if (
|
||||
(context.propsValue.ignoreBots && payloadBody.event.bot_id) ||
|
||||
(context.propsValue.ignoreSelfMessages &&
|
||||
payloadBody.event.user === userId)
|
||||
) {
|
||||
return [];
|
||||
}
|
||||
|
||||
//check for mention
|
||||
if (
|
||||
context.propsValue.user &&
|
||||
payloadBody.event.text?.includes(`<@${context.propsValue.user}>`)
|
||||
) {
|
||||
return [payloadBody.event];
|
||||
}
|
||||
|
||||
return [];
|
||||
},
|
||||
});
|
||||
|
||||
type PayloadBody = {
|
||||
event: {
|
||||
channel: string;
|
||||
bot_id?: string;
|
||||
user: string;
|
||||
channel_type: string;
|
||||
text?: string;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,99 @@
|
||||
import {
|
||||
OAuth2PropertyValue,
|
||||
Property,
|
||||
TriggerStrategy,
|
||||
createTrigger,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { getChannels, multiSelectChannelInfo, userId } from '../common/props';
|
||||
import { slackAuth } from '../../';
|
||||
|
||||
export const newMention = createTrigger({
|
||||
auth: slackAuth,
|
||||
name: 'new_mention',
|
||||
displayName: 'New Mention in Channel',
|
||||
description: 'Triggers when a username is mentioned.',
|
||||
props: {
|
||||
info: multiSelectChannelInfo,
|
||||
user: userId,
|
||||
channels: Property.MultiSelectDropdown({
|
||||
auth: slackAuth,
|
||||
displayName: 'Channels',
|
||||
description:
|
||||
'If no channel is selected, the flow will be triggered for username mentions in all channels',
|
||||
required: false,
|
||||
refreshers: [],
|
||||
async options({ auth }) {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'connect slack account',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
const authentication = auth as OAuth2PropertyValue;
|
||||
const accessToken = authentication['access_token'];
|
||||
const channels = await getChannels(accessToken);
|
||||
return {
|
||||
disabled: false,
|
||||
placeholder: 'Select channel',
|
||||
options: channels,
|
||||
};
|
||||
},
|
||||
}),
|
||||
ignoreBots: Property.Checkbox({
|
||||
displayName: 'Ignore Bot Messages ?',
|
||||
required: true,
|
||||
defaultValue: false,
|
||||
}),
|
||||
},
|
||||
type: TriggerStrategy.APP_WEBHOOK,
|
||||
sampleData: undefined,
|
||||
onEnable: async (context) => {
|
||||
// Older OAuth2 has team_id, newer has team.id
|
||||
const teamId =
|
||||
context.auth.data['team_id'] ?? context.auth.data['team']['id'];
|
||||
context.app.createListeners({
|
||||
events: ['message'],
|
||||
identifierValue: teamId,
|
||||
});
|
||||
},
|
||||
onDisable: async (context) => {
|
||||
// Ignored
|
||||
},
|
||||
|
||||
run: async (context) => {
|
||||
const payloadBody = context.payload.body as PayloadBody;
|
||||
const channels = (context.propsValue.channels as string[]) ?? [];
|
||||
|
||||
// check if it's channel message
|
||||
if (!['channel','group'].includes(payloadBody.event.channel_type)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
|
||||
if (channels.length === 0 || channels.includes(payloadBody.event.channel)) {
|
||||
// check for bot messages
|
||||
if (context.propsValue.ignoreBots && payloadBody.event.bot_id) {
|
||||
return [];
|
||||
}
|
||||
// check for mention
|
||||
if (
|
||||
context.propsValue.user &&
|
||||
payloadBody.event.text?.includes(`<@${context.propsValue.user}>`)
|
||||
) {
|
||||
return [payloadBody.event];
|
||||
}
|
||||
}
|
||||
|
||||
return [];
|
||||
},
|
||||
});
|
||||
|
||||
type PayloadBody = {
|
||||
event: {
|
||||
channel: string;
|
||||
bot_id?: string;
|
||||
text?: string;
|
||||
channel_type:string
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,64 @@
|
||||
import { Property, TriggerStrategy, createTrigger } from '@activepieces/pieces-framework';
|
||||
import { singleSelectChannelInfo, slackChannel } from '../common/props';
|
||||
import { slackAuth } from '../../';
|
||||
import { WebClient } from '@slack/web-api';
|
||||
import { isNil } from '@activepieces/shared';
|
||||
import { getFirstFiveOrAll } from '../common/utils';
|
||||
|
||||
|
||||
|
||||
export const newMessageInChannelTrigger = createTrigger({
|
||||
auth: slackAuth,
|
||||
name: 'new-message-in-channel',
|
||||
displayName: 'New Message Posted to Channel',
|
||||
description: 'Triggers when a new message is posted to a specific #channel you choose.',
|
||||
props: {
|
||||
info: singleSelectChannelInfo,
|
||||
channel: slackChannel(true),
|
||||
ignoreBots: Property.Checkbox({
|
||||
displayName: 'Ignore Bot Messages ?',
|
||||
required: true,
|
||||
defaultValue: false,
|
||||
}),
|
||||
},
|
||||
type: TriggerStrategy.APP_WEBHOOK,
|
||||
sampleData: undefined,
|
||||
async onEnable(context) {
|
||||
// Older OAuth2 has team_id, newer has team.id
|
||||
const teamId = context.auth.data['team_id'] ?? context.auth.data['team']['id'];
|
||||
context.app.createListeners({
|
||||
events: ['message'],
|
||||
identifierValue: teamId,
|
||||
});
|
||||
},
|
||||
async onDisable(context) {
|
||||
// Ignored
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
const payloadBody = context.payload.body as PayloadBody;
|
||||
|
||||
// check if it's channel message
|
||||
if (!['channel','group'].includes(payloadBody.event.channel_type)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
if (payloadBody.event.channel === context.propsValue.channel) {
|
||||
// check for bot messages
|
||||
if (context.propsValue.ignoreBots && payloadBody.event.bot_id) {
|
||||
return [];
|
||||
}
|
||||
return [payloadBody.event];
|
||||
}
|
||||
|
||||
return [];
|
||||
},
|
||||
});
|
||||
|
||||
type PayloadBody = {
|
||||
event: {
|
||||
channel: string;
|
||||
bot_id?: string;
|
||||
channel_type:string
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,52 @@
|
||||
import { Property, TriggerStrategy, createTrigger } from '@activepieces/pieces-framework';
|
||||
import { slackAuth } from '../../';
|
||||
|
||||
export const newMessageTrigger = createTrigger({
|
||||
auth: slackAuth,
|
||||
name: 'new-message',
|
||||
displayName: 'New Public Message Posted Anywhere',
|
||||
description: 'Triggers when a new message is posted to any channel.',
|
||||
props: {
|
||||
ignoreBots: Property.Checkbox({
|
||||
displayName: 'Ignore Bot Messages ?',
|
||||
required: true,
|
||||
defaultValue: false,
|
||||
}),
|
||||
},
|
||||
type: TriggerStrategy.APP_WEBHOOK,
|
||||
sampleData: undefined,
|
||||
onEnable: async (context) => {
|
||||
// Older OAuth2 has team_id, newer has team.id
|
||||
const teamId = context.auth.data['team_id'] ?? context.auth.data['team']['id'];
|
||||
context.app.createListeners({
|
||||
events: ['message'],
|
||||
identifierValue: teamId,
|
||||
});
|
||||
},
|
||||
onDisable: async (context) => {
|
||||
// Ignored
|
||||
},
|
||||
|
||||
run: async (context) => {
|
||||
const payloadBody = context.payload.body as PayloadBody;
|
||||
|
||||
// check if it's channel message
|
||||
if (!['channel','group'].includes(payloadBody.event.channel_type)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
// check for bot messages
|
||||
if (context.propsValue.ignoreBots && payloadBody.event.bot_id) {
|
||||
return [];
|
||||
}
|
||||
return [payloadBody.event];
|
||||
},
|
||||
});
|
||||
|
||||
type PayloadBody = {
|
||||
event: {
|
||||
channel: string;
|
||||
bot_id?: string;
|
||||
channel_type:string
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,64 @@
|
||||
import {
|
||||
Property,
|
||||
TriggerStrategy,
|
||||
createTrigger,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { slackAuth } from '../../';
|
||||
import { slackChannel } from '../common/props';
|
||||
import { WebClient } from '@slack/web-api';
|
||||
|
||||
|
||||
export const newReactionAdded = createTrigger({
|
||||
auth: slackAuth,
|
||||
name: 'new_reaction_added',
|
||||
displayName: 'New Reaction',
|
||||
description: 'Triggers when a new reaction is added to a message',
|
||||
props: {
|
||||
emojis: Property.Array({
|
||||
displayName: 'Emojis (E.g fire, smile)',
|
||||
description: 'Select emojis to trigger on',
|
||||
required: false,
|
||||
}),
|
||||
channel: slackChannel(false),
|
||||
},
|
||||
type: TriggerStrategy.APP_WEBHOOK,
|
||||
sampleData: undefined,
|
||||
onEnable: async (context) => {
|
||||
// Older OAuth2 has team_id, newer has team.id
|
||||
const teamId =
|
||||
context.auth.data['team_id'] ?? context.auth.data['team']['id'];
|
||||
context.app.createListeners({
|
||||
events: ['reaction_added'],
|
||||
identifierValue: teamId,
|
||||
});
|
||||
},
|
||||
onDisable: async (context) => {
|
||||
// Ignored
|
||||
},
|
||||
|
||||
|
||||
|
||||
run: async (context) => {
|
||||
const payloadBody = context.payload.body as PayloadBody;
|
||||
if (context.propsValue.emojis) {
|
||||
if (!context.propsValue.emojis.includes(payloadBody.event.reaction)) {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
if (context.propsValue.channel) {
|
||||
if (payloadBody.event.item['channel'] !== context.propsValue.channel) {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
return [payloadBody.event];
|
||||
},
|
||||
});
|
||||
|
||||
type PayloadBody = {
|
||||
event: {
|
||||
reaction: string;
|
||||
item: {
|
||||
channel: string;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,44 @@
|
||||
import { TriggerStrategy, createTrigger } from '@activepieces/pieces-framework';
|
||||
import { slackAuth } from '../../';
|
||||
|
||||
export const newSavedMessageTrigger = createTrigger({
|
||||
auth: slackAuth,
|
||||
name: 'new-saved-message',
|
||||
displayName: 'New Saved Message',
|
||||
description: 'Triggers when you save a message.',
|
||||
props: {},
|
||||
type: TriggerStrategy.APP_WEBHOOK,
|
||||
sampleData: undefined,
|
||||
onEnable: async (context) => {
|
||||
// Older OAuth2 has team_id, newer has team.id
|
||||
const teamId = context.auth.data['team_id'] ?? context.auth.data['team']['id'];
|
||||
context.app.createListeners({
|
||||
events: ['star_added'],
|
||||
identifierValue: teamId,
|
||||
});
|
||||
},
|
||||
onDisable: async (context) => {
|
||||
// Ignored
|
||||
},
|
||||
|
||||
run: async (context) => {
|
||||
const payloadBody = context.payload.body as PayloadBody;
|
||||
|
||||
// check if it's saved message
|
||||
if (payloadBody.event.type === 'star_added' && payloadBody.event.item.type ==='message') {
|
||||
return [payloadBody.event.item];
|
||||
}
|
||||
|
||||
return [];
|
||||
},
|
||||
});
|
||||
|
||||
type PayloadBody = {
|
||||
event: {
|
||||
type: string;
|
||||
event_ts: string;
|
||||
item:{
|
||||
type:string
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,62 @@
|
||||
import { TriggerStrategy, createTrigger } from '@activepieces/pieces-framework';
|
||||
import { slackAuth } from '../../';
|
||||
import { WebClient } from '@slack/web-api';
|
||||
|
||||
const sampleData = {
|
||||
id: 'heart',
|
||||
image: 'https://emoji.slack-edge.com/T06BTHUEFFF/heart/84a171ae62daacc7.jpg',
|
||||
};
|
||||
|
||||
export const newTeamCustomEmojiTrigger = createTrigger({
|
||||
auth: slackAuth,
|
||||
name: 'new-team-custom-emoji',
|
||||
displayName: 'New Team Custom Emoji',
|
||||
description: 'Triggers when a custom emoji has been added to a team.',
|
||||
props: {},
|
||||
type: TriggerStrategy.APP_WEBHOOK,
|
||||
sampleData,
|
||||
onEnable: async (context) => {
|
||||
// Older OAuth2 has team_id, newer has team.id
|
||||
const teamId = context.auth.data['team_id'] ?? context.auth.data['team']['id'];
|
||||
context.app.createListeners({
|
||||
events: ['emoji_changed'],
|
||||
identifierValue: teamId,
|
||||
});
|
||||
},
|
||||
onDisable: async (context) => {
|
||||
// Ignored
|
||||
},
|
||||
|
||||
test: async (context) => {
|
||||
const client = new WebClient(context.auth.access_token);
|
||||
|
||||
const response = await client.emoji.list();
|
||||
|
||||
if (!response.emoji) return [sampleData];
|
||||
|
||||
return Object.entries(response.emoji).map(([id, image]) => ({
|
||||
id,
|
||||
image,
|
||||
}));
|
||||
},
|
||||
|
||||
run: async (context) => {
|
||||
const payloadBody = context.payload.body as PayloadBody;
|
||||
|
||||
// check if it's emoji message
|
||||
if (payloadBody.event.type !== 'emoji_changed' && payloadBody.event.subtype !== 'add') {
|
||||
return [];
|
||||
}
|
||||
|
||||
return [{ id: payloadBody.event.name, image: payloadBody.event.value }];
|
||||
},
|
||||
});
|
||||
|
||||
type PayloadBody = {
|
||||
event: {
|
||||
type: string;
|
||||
subtype: string;
|
||||
name: string;
|
||||
value: string;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,103 @@
|
||||
import { TriggerStrategy, createTrigger } from '@activepieces/pieces-framework';
|
||||
import { slackAuth } from '../../';
|
||||
import { WebClient } from '@slack/web-api';
|
||||
|
||||
const sampleData = {
|
||||
id: 'USLACKBOT',
|
||||
team_id: 'T06BTHUEFFF',
|
||||
name: 'slackbot',
|
||||
deleted: false,
|
||||
color: '757575',
|
||||
real_name: 'Slackbot',
|
||||
tz: 'America/Los_Angeles',
|
||||
tz_label: 'Pacific Daylight Time',
|
||||
tz_offset: -25200,
|
||||
profile: {
|
||||
title: '',
|
||||
phone: '',
|
||||
skype: '',
|
||||
real_name: 'Slackbot',
|
||||
real_name_normalized: 'Slackbot',
|
||||
display_name: 'Slackbot',
|
||||
display_name_normalized: 'Slackbot',
|
||||
fields: {},
|
||||
status_text: '',
|
||||
status_emoji: '',
|
||||
status_emoji_display_info: [],
|
||||
status_expiration: 0,
|
||||
avatar_hash: 'sv41d8cd98f0',
|
||||
always_active: true,
|
||||
first_name: 'slackbot',
|
||||
last_name: '',
|
||||
image_24: 'https://a.slack-edge.com/80588/img/slackbot_24.png',
|
||||
image_32: 'https://a.slack-edge.com/80588/img/slackbot_32.png',
|
||||
image_48: 'https://a.slack-edge.com/80588/img/slackbot_48.png',
|
||||
image_72: 'https://a.slack-edge.com/80588/img/slackbot_72.png',
|
||||
image_192: 'https://a.slack-edge.com/80588/marketing/img/avatars/slackbot/avatar-slackbot.png',
|
||||
image_512: 'https://a.slack-edge.com/80588/img/slackbot_512.png',
|
||||
status_text_canonical: '',
|
||||
team: 'T06BTHUEFFF',
|
||||
},
|
||||
is_admin: false,
|
||||
is_owner: false,
|
||||
is_primary_owner: false,
|
||||
is_restricted: false,
|
||||
is_ultra_restricted: false,
|
||||
is_bot: false,
|
||||
is_app_user: false,
|
||||
updated: 0,
|
||||
is_email_confirmed: false,
|
||||
who_can_share_contact_card: 'EVERYONE',
|
||||
};
|
||||
|
||||
export const newUserTrigger = createTrigger({
|
||||
auth: slackAuth,
|
||||
name: 'new-user',
|
||||
displayName: 'New User',
|
||||
description: 'Triggers when a new user is created / first joins your org.',
|
||||
props: {},
|
||||
type: TriggerStrategy.APP_WEBHOOK,
|
||||
sampleData,
|
||||
onEnable: async (context) => {
|
||||
// Older OAuth2 has team_id, newer has team.id
|
||||
const teamId = context.auth.data['team_id'] ?? context.auth.data['team']['id'];
|
||||
context.app.createListeners({
|
||||
events: ['team_join'],
|
||||
identifierValue: teamId,
|
||||
});
|
||||
},
|
||||
onDisable: async (context) => {
|
||||
// Ignored
|
||||
},
|
||||
|
||||
test: async (context) => {
|
||||
const client = new WebClient(context.auth.access_token);
|
||||
|
||||
const response = await client.users.list({limit:10});
|
||||
|
||||
if (!response.members) return [sampleData];
|
||||
|
||||
return response.members;
|
||||
},
|
||||
|
||||
run: async (context) => {
|
||||
const payloadBody = context.payload.body as PayloadBody;
|
||||
|
||||
// check if it's emoji message
|
||||
if (payloadBody.event.type !== 'team_join') {
|
||||
return [];
|
||||
}
|
||||
|
||||
return [payloadBody.event.user];
|
||||
},
|
||||
});
|
||||
|
||||
type PayloadBody = {
|
||||
event: {
|
||||
type: string;
|
||||
event_ts:string,
|
||||
user:{
|
||||
id:string
|
||||
}
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user