This node.js example connector allows you to make your Teneo bot available on Slack. The connector acts as middleware between Slack and Teneo and uses the Slack Events API to receive messages from Slack. This guide will take you through the steps of creating a new Slack app and deploying the connector to respond to events sent by Slack.
You can find the source code of this connector on Github.
The Slack Events API requires that the connector is available via https. On this page we will be using Heroku to host this connector, for which a (free) Heroku account is needed. You can however also manually install the connector on a location of your choice, see Running the connector locally.
Your bot needs to be published and you need to know the engine url.
You will need a Slack account with permission to add apps to your workspace.
In the left navigation menu under 'Features' choose 'OAuth & Permissions'. Scroll down until you see 'Scopes'. Under 'Bot Token Scopes' click the 'Add an OAuth Scope' button. In the field that appears type chat:write
Still on the 'OAuth & Permissions', scroll back to the top and click the 'Install App to Workspace' button and authorize. Copy the 'Bot User OAuth Access Token', you will need it in the next step when you deploy the connector.
Click the button below to deploy the connector to Heroku:
When Heroku has finished deploying, click 'View app' and copy the url of your Heroku app, you will need it in the next step.
If you prefer to run your bot locally, see Running the connector locally.
Go back to your app on Slack. Then:
https://[yourherokuappname].herokuapp.com/slack/events
(replace [yourherokuappname] with the name of your app on Heroku).
/slack/events
, and that the connector is already running locally, or on Heroku, to avoid a 'Challenge parameter' error.message.im
That's it! Your bot should now be available in Slack and responding to messages that are sent to it. 🕺
Open the Slack app or visit slack.com in your browser and go to the workspace in which you added your bot.
To add message attachments, this connector looks for an output parameter slack in the engine response. The value of that parameter is assumed to contain the attachement JSON as defined by Slack.
If we look at Slack's JSON specification of attachments, to attach an image the value of the slack output parameter would need to look like this:
{
"fallback": "Image description as fallback",
"image_url": "https://url.to/an/image.png"
}
Note: although it is possible to add multiple attachments to a Slack message, this connector assumes the output parameter contains just the JSON for a single attachment.
For more details on how to populate output parameters in Teneo, please see: How to populate output parameters in the Build your bot section.
If you prefer to manually install this connector or run it locally so you can extend it, proceed as follows:
npm install
in the folder where you unzipped the connector.ngrok http 3000
SLACK_SIGNING_SECRET=<your_slack_signing_secret> SLACK_BOT_USER_OAUTH_ACCESS_TOKEN=<your_slack_bot_oauth_token> TENEO_ENGINE_URL=<your_engine_url> node server.js
Was this page helpful?