Openflow Connector for Slack

Note

The connector is subject to the Connector Terms.

This topic describes the basic concepts of Openflow Connector for Slack, steps to set it up, and limitations.

The Openflow Connector for Slack connects a Slack Workspace to Snowflake in order to ingest Slack messages and user permissions. The connector also supports the Cortex Search service and can make ingested messages ready for conversational analysis for use in AI Assistants using SQL, Python or REST APIs.

Limitations

  • The connector only ingests new messages of a Slack conversation after the Slack App has been added to the conversation. Older messages are not ingested.

  • Only Slack text messages are ingested. File attachments and other media are not ingested.

  • If a user edits an existing message or deletes a message, the changes are not captured once ingested.

Workflow

  1. Slack Admin creates a Slack App as described later, then installs the App in the channels or conversations they wish to ingest messages from. The Bot token and App token from the Slack App need to be provided to the Snowflake Account Admin

  2. Snowflake account admin:

    1. Downloads and imports the connector definition file from the documentation into the Snowflake Openflow canvas.

    2. Specifies the required parameters for the flow template, for example, Bot token, App token, and database and schema names.

    3. Runs flow. The following happens when the flow is run in Openflow:

      1. The flow automatically creates a database, schema and the necessary tables and external access integration in Snowflake on behalf of the admin. It also creates a Cortex Search and wires up chunks and ACLs and metadata. By default, these are only accessible to the Snowflake account admin role

      2. Fetches specified conversations, metadata, ACLs from the Slack channel(s). An ACL is defined as the snapshot list of user IDs and emails that are members of each channel being ingested.

      3. Chunks ingested conversation messages

      4. Puts chunked conversation messages along with metadata and ACLs into Snowflake tables

  3. IT Developer in customer’s organization creates bespoke Chat App and passes user identity which is the user’s email registered on Slack, as a filter when invoking Cortex Search REST API with the end user’s question

  4. End users of the Chat App in the customer’s organization see responses from Cortex Search restricted to chunks from conversations they have access to in the Slack channel based on ACLs, along with a link to the source conversation.

Considerations

  • By default, any user with the Snowflake account admin role will be able to “see” the raw ingested messages and conversations and tables created by the flow template

  • The user with the Snowflake account admin role decides who can access the internal stage and tables through Snowflake roles.

  • The user with the Snowflake account admin role decides who can query the Cortex Search service through Snowflake roles.

Language: English