{"revision":"c10276e953456835cdbb1f3a60d58ae1980be353","document":{"id":21611,"path":"integrate-applications/integration-hub/slack-spoke.md","title":"Slack Spoke","bundle":null,"doc_type":null,"release":"australia","body":"\n# Slack Spoke\n\nUse the Slack spoke to post messages and manage access to channels.\n\n## Integration Hub subscription\n\nThis spoke requires an Integration Hub subscription. For more information, see [Legal schedules - IntegrationHub overview](https://www.servicenow.com/content/dam/servicenow-assets/public/en-us/doc-type/legal/snc-addendum-integrationhub.pdf). To learn more about the subscription, contact your account manager.\n\n## Spoke version\n\nThe Slack spoke v1.9.3 is the latest version. For version history of the spoke, see [Slack spoke release notes](https://www.servicenow.com/docs/r/store-release-notes/store-integrationhub-rn-slack.html).\n\n## Slack account requirements\n\nThe Slack spoke requires creating a workspace and custom app on your Slack account to generate the OAuth 2.0 tokens for the Slack spoke. See [Configure Slack app](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/integrate-applications/integration-hub/configure-slack-workspace.md).\n\n**Note:** The spoke set up procedure outlined here requires bot user tokens only. You can't use the Create User and Deactivate User actions while using the bot token scopes. To use these actions, you must obtain user token from your Slack account.\n\n## Spoke subflows\n\nThe Slack spoke provides some sample subflows to demonstrate automating the Slack workspace tasks. To customize a sample subflow, copy it to a new application scope. Available sample subflows include:\n\n<table id=\"table_xg2_mgg_3mb\"><thead><tr><th>\n\nSubflow\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nInsert Slack User Details by Member ID\n\n</td><td>\n\nInserts details of the required user in the Slack User Cache module, based on the Member ID.\n\n</td></tr><tr><td>\n\nInsert Slack User Details by User ID\n\n</td><td>\n\nInserts details of the required user in the Slack User Cache module, based on the User ID.\n\n</td></tr><tr><td>\n\nPost Actionable Message\n\n</td><td>\n\nPosts an actionable message to a Slack channel.**Note:** This subflow requires an outbound configuration as an input. Customize the default outbound configurations or create an outbound configuration as per your requirement. For more information, see [Configure outbound configurations in ServiceNow instance](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/integrate-applications/integration-hub/conf-outbound-slack.md).\n\n</td></tr><tr><td>\n\nPost Approval Message\n\n</td><td>\n\nPosts an approval message to a Slack channel.**Note:** This subflow requires an outbound configuration as an input. Customize the default outbound configurations or create an outbound configuration as per your requirement. For more information, see [Configure outbound configurations in ServiceNow instance](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/integrate-applications/integration-hub/conf-outbound-slack.md).\n\n</td></tr><tr><td>\n\nRespond to Slack Approval Message\n\n</td><td>\n\nPosts an acknowledgment message on a Slack channel.\n\n</td></tr><tr><td>\n\nRespond to Slack Command\n\n</td><td>\n\nPosts a response to a command on a Slack channel.\n\n</td></tr><tr><td>\n\nRespond to Slack Message Action\n\n</td><td>\n\nPosts a notification on a Slack channel.\n\n</td></tr></tbody>\n</table>While customizing the subflows, make sure that the subflows are configured to avoid infinite loops.\n\n## Spoke actions\n\nThe Slack spoke provides actions to automate the Slack workspace tasks when events occur in the ServiceNow instance. Available actions include:\n\n<table id=\"table_u1p_kh2_hfb\"><thead><tr><th>\n\nCategory\n\n</th><th>\n\nAction\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td rowspan=\"12\">\n\nConversation Management\n\n</td><td>\n\nAdd User to Channel\n\n</td><td>\n\nAdds an existing user to the specified channel in the Slack workspace.\n\n</td></tr><tr><td>\n\nArchive Channel\n\n</td><td>\n\nArchives a channel in a Slack workspace.\n\n</td></tr><tr><td>\n\nRename Conversation\n\n</td><td>\n\nRenames a conversation.\n\n</td></tr><tr><td>\n\nLook up Conversation Info\n\n</td><td>\n\nRetrieves information about a conversation.\n\n</td></tr><tr><td>\n\nCreate Channel\n\n</td><td>\n\nCreates a channel in a Slack workspace.\n\n</td></tr><tr><td>\n\nLook Up Attachments Stream By Conversation or Member ID\n\n</td><td>\n\nRetrieves attachments related with the relevant channel, member, or bot user.\n\n</td></tr><tr><td>\n\nLook up Channel History Stream\n\n</td><td>\n\nRetrieves the history of a channel. You must provide the channel ID, and the start and end date as inputs.\n\n</td></tr><tr><td>\n\nLook up Conversation\n\n</td><td>\n\nRetrieves the conversation messages for a thread from the specified channel.\n\n</td></tr><tr><td>\n\nOpen Conversation\n\n</td><td>\n\nOpens or resumes a direct message or a multi-person direct message.\n\n</td></tr><tr><td>\n\nLook up Conversation IDs Stream by Member ID\n\n</td><td>\n\nRetrieves details of the Conversation IDs related with the specified member on Slack.\n\n</td></tr><tr><td>\n\nSet Topic for Channel\n\n</td><td>\n\nSets the topic for a Slack channel.\n\n</td></tr><tr><td>\n\nRemove User from Channel\n\n</td><td>\n\nRemoves a user from a channel in the Slack workspace.\n\n</td></tr><tr><td rowspan=\"8\">\n\nNotification Management\n\n</td><td>\n\nPost Actionable Message\n\n</td><td>\n\nPosts an actionable message to a Slack channel.**Note:** This action requires an outbound configuration as an input. Customize the default outbound configurations or create an outbound configuration as per your requirement. For more information, see [Configure outbound configurations in ServiceNow instance](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/integrate-applications/integration-hub/conf-outbound-slack.md).\n\n</td></tr><tr><td>\n\nPost Approval Message\n\n</td><td>\n\nPosts an approval message to a Slack channel.**Note:** This action requires an outbound configuration as an input. Customize the default outbound configurations or create an outbound configuration as per your requirement. For more information, see [Configure outbound configurations in ServiceNow instance](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/integrate-applications/integration-hub/conf-outbound-slack.md).\n\n</td></tr><tr><td>\n\nPost Change Details\n\n</td><td>\n\nPosts Change record details to a channel.\n\n</td></tr><tr><td>\n\nPost Incident Details\n\n</td><td>\n\nPosts Incident record details to a channel.\n\n</td></tr><tr><td>\n\nPost Message\n\n</td><td>\n\nPosts a message to a Slack Channel.\n\n</td></tr><tr><td>\n\nPost Response to Slack\n\n</td><td>\n\nPosts a response to Slack.\n\n</td></tr><tr><td>\n\nUpdate Approval Record\n\n</td><td>\n\nUpdates an approval record.\n\n</td></tr><tr><td>\n\nPost Problem Details\n\n</td><td>\n\nPosts a Problem record detail to a channel.\n\n</td></tr><tr><td rowspan=\"6\">\n\nUser Management\n\n</td><td>\n\nCreate User\n\n</td><td>\n\nCreates a user in the Slack workspace.**Note:** This action requires a user token from the Slack account. If you have bot user tokens, you can't use this action.\n\n</td></tr><tr><td>\n\nDeactivate User\n\n</td><td>\n\nDeactivates the specified user from the Slack workspace.**Note:**\n\nThis action requires a user token from the Slack account. If you have bot user tokens, you can't use this action.\n\n</td></tr><tr><td>\n\nLook up User\n\n</td><td>\n\nReturns information about the specified user or bot. The information can be name, time zone, workspace admin rights, and team ownership of a user or bot.\n\n</td></tr><tr><td>\n\nDeactivate Subscription\n\n</td><td>\n\nDeactivates a user subscription in Slack. To use this action, perform the steps outlined in the Create a Slack Enterprise Grid application and Create a Slack Enterprise connection section in [Integrating with Slack](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/it-asset-management/integrate-with-slack.md).\n\n</td></tr><tr><td>\n\nLook up Access Logs Stream\n\n</td><td>\n\nRetrieves the access logs for all users since the provided oldest date. To use this action, perform the steps outlined in the Create a Slack workspace application and Create a Slack workspace connection section in [Integrating with Slack](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/it-asset-management/integrate-with-slack.md).\n\n</td></tr><tr><td>\n\nLook up Users Stream\n\n</td><td>\n\nRetrieves all users in the Slack Enterprise grid. To use this action, perform the steps outlined in the Create a Slack Enterprise Grid application and Create a Slack Enterprise connection section in [Integrating with Slack](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/it-asset-management/integrate-with-slack.md).\n\n</td></tr></tbody>\n</table>**Note:**\n\n-   Create User and Deactivate User actions require the admin scope. The spoke set up procedure outlined here requires bot user tokens only. You can't use the Create User and Deactivate User actions while using the bot token scopes. To use these actions, you must obtain user token from your Slack account.\n-   The admin scope is available to Slack workspace owners only.\n\n## Available AI agents\n\nInstall Now Assist for Integration Hub and start using the available AI agents. For more information, see [ServiceNow Otto for Integration Hub](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/integrate-applications/integration-hub/now-assist-spokes.md).\n\nThis spoke provides standalone AI agents that mimic human-like intelligence to perform tasks in your ServiceNow instance.\n\n-   In the ServiceNow agentic system, you can create an agentic workflow that comprises of a set of large language model \\(LLM\\) instructions along with one or more standalone AI agents to execute an objective. See [Create an agentic workflow](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/intelligent-experiences/configure-use-case-ai-agents.md) for information about adding AI agents to create agentic workflows as per your requirement and provide the required trigger.\n\n    You can also search for other available AI agents and add them to your agentic workflow. See [Find AI agents](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/intelligent-experiences/find-ai-agents.md) for more information.\n\n-   You can create a clone of the required spoke AI agent and customize it as per your requirement. See [Duplicate an AI agent](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/intelligent-experiences/clone-ai-agent.md) for more information about creating a clone.\n-   See [AI Agent Studio \\(legacy\\)](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/intelligent-experiences/na-ai-agents.md) for information about AI agents.\n\nAvailable AI agents include:\n\n|AI Agent|Description|\n|--------|-----------|\n|Slack user manager|Manages Slack users and integrates Slack actions with the ServiceNow workflows. It looks up users and streamlines user management and communication within the Slack Channels.|\n|Slack notification manager|Automates workflows by executing the Slack Spoke actions. It enables the users to send notifications and updates such as details of incidents, problems, changes, and requests to the Slack channels. It streamlines communication and manages notifications better.|\n|Slack conversation manager|Performs actions such as setting channel topics, renaming conversations, adding or removing users from channels, creating and archiving channels.|\n\nThere might be AI agents installed on your instance that are not used in agentic workflows. To learn how to see all agents that are available to you, see [Find AI agents](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/intelligent-experiences/find-ai-agents.md).\n\n**Note:** Ensure that the user running an AI agent has the required roles and permissions to access data or perform operations on data in the table that is associated with the AI agent.\n\n## Spoke modules\n\nThe Slack spoke adds the Slack application to your ServiceNow instance. The Slack application includes these modules:\n\n<table id=\"table_czw_rch_3mb\"><thead><tr><th>\n\nModule\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nSlack Modal Configuration\n\n</td><td>\n\nCreate modals and specify fields that should be displayed in your Slack modal.\n\n</td></tr><tr><td>\n\nSlack User Cache\n\n</td><td>\n\nAccess information about users who have performed actions on the Slack channel that needed updates in the ServiceNow instance or a response from the ServiceNow instance.\n\n</td></tr><tr><td>\n\nSlack Channel Cache\n\n</td><td>\n\nAccess information about the channels on which actions are performed that needed updates in the ServiceNow instance or response from ServiceNow instance.\n\n</td></tr><tr><td>\n\nInbound Decisions\n\n</td><td>\n\nSpecify events in Slack application for which actions must be performed in ServiceNow instance.For example, you can specify inbound decisions to update the task details in your ServiceNow instance when an approver approves the task on the relevant Slack channel. Five sample inbound decisions are available for your reference. Customize these decisions or create inbound decisions as per your requirement.\n\n When the conditions mentioned in the inbound decisions are met, the associated subflow is triggered and a record is created in the Slack User Cache module for the Slack user, who initiated the inbound action.\n\n</td></tr><tr><td>\n\nInbound Decisions for Modals\n\n</td><td>\n\nSpecify subflows that must be triggered when the required inbound decisions are met.When the conditions mentioned in the inbound decisions are met, the associated subflow is triggered and a record is created in the Slack User Cache module for the Slack user, who initiated the inbound action.\n\n</td></tr><tr><td>\n\nSlack Outbound Choices\n\n</td><td>\n\nChoices that should be displayed as a list on the Slack channels.\n\n</td></tr><tr><td>\n\nInbound Slack Message\n\n</td><td>\n\nAccess information about the inbound messages to your ServiceNow instance from the Slack application.\n\n</td></tr><tr><td>\n\nOutbound Configurations\n\n</td><td>\n\nSpecify events in ServiceNow instance for which actions must be performed on Slack application.For example, you can specify outbound configurations to send a message on Slack channel asking for approval when a task is created in your ServiceNow instance. Three sample outbound configurations are available for your reference. Customize these configurations or create outbound configurations as per your requirement.\n\n The outbound configurations also provide a template to the Post Actionable Message and Post Approval Message actions. For example, you can configure the outbound configurations to display the **Approve** and **Reject** buttons in the approval message that is sent on the relevant Slack channel.\n\n When the configurations mentioned in the outbound configurations are met, the relevant subflow is triggered to perform actions in the Slack application.\n\n</td></tr><tr><td>\n\nSlack Configurations\n\n</td><td>\n\nProvide information about the Slack app and Signing Key.\n\n</td></tr></tbody>\n</table>Data in these modules is populated from these spoke tables:\n\n<table id=\"table_zys_1bq_gnb\"><thead><tr><th>\n\nTable\n\n</th><th>\n\nFields\n\n</th></tr></thead><tbody><tr><td>\n\nSlack Channel Cache \\[sn\\_slack\\_ah\\_v2\\_slack\\_channel\\_cache\\]\n\n</td><td>\n\n-   Channel ID\n-   Channel Link\n-   Channel Name\n-   Creator\n-   Document ID\n-   Is Archived\n-   Is Private\n-   Source table\n\n</td></tr><tr><td>\n\nSlack Configurations \\[sn\\_slack\\_ah\\_v2\\_slack\\_configurations\\]\n\n</td><td>\n\n-   Client Secret\n-   Connection Alias\n-   Property Name\n-   Slack App\n\n</td></tr><tr><td>\n\nSlack Credential \\[sn\\_slack\\_ah\\_v2\\_slack\\_credential\\]\n\n</td><td>\n\n-   Authentication Key\n-   Active\n-   Context Name\n-   Domain Name\n-   Privacy Key\n\n</td></tr><tr><td>\n\nSlack Outbound Choices \\[sn\\_slack\\_ah\\_v2\\_slack\\_outbound\\_choices\\]\n\n</td><td>\n\n-   Name\n-   Active\n-   Language\n-   Sequence\n-   Domain\n-   Value\n\n</td></tr><tr><td>\n\nSlack User Cache \\[sn\\_slack\\_ah\\_v2\\_slack\\_user\\_details\\]\n\n</td><td>\n\n-   Display Name\n-   Slack Member ID\n-   Team ID\n-   User\n\n</td></tr><tr><td>\n\nSlack Workspace Tokens \\[sn\\_slack\\_ah\\_v2\\_slack\\_workspace\\_tokens\\]\n\n</td><td>\n\n-   Connection Alias\n-   Slack App\n-   Workspace Name\n\n</td></tr><tr><td>\n\nSlack Modal Configuration \\[sn\\_slack\\_ah\\_v2\\_slack\\_modal\\_configuration\\]\n\n</td><td>\n\n-   Modal Title\n-   Name\n-   Script Validation\n-   Custom Modal\n\n</td></tr></tbody>\n</table>## Connection and credential alias requirements\n\nIntegration Hub uses aliases to manage connection and credential information, and OAuth credentials. Using an alias eliminates the need to configure multiple credentials and connection information profiles when using multiple environments. If the connection or credential information changes, you don't need to update any actions that use the connection.\n\nFor information about setting up the spoke, see [Set up Slack spoke](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/integrate-applications/integration-hub/set-up-slack.md).\n\n"}}