Currently, the Atomicwork Assistant branding requires a manifest file from the Atomicwork team that you then need to upload to your Slack workspace.
A manifest file is a configuration file written in YAML or JSON that defines the structure of a Slack app.
What You’ll Need
A Slack workspace with app creation privileges
A Slack account
Your app’s manifest file (YAML or JSON)
Step-by-Step Instructions
Go to https://<domain>.atomicwork.com/settings/apps/SLACK. If there is an app that is already connected, please disconnect the app.
Generate the manifest using API.
curl --location 'https://<domain>.atomicwork.com/api/channel/slack/customise' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <bearer token>' \ --data '{ "app_name": "<Custom App Name>", "long_description": "<Description, should be atleast 170 characters.>", "type": "SLACK", "short_description": "<Should be atleast 20 characters>" }' curl --location 'https://<domain>.atomicwork.com/api/v1/channel/slack/customise' \ --header 'Content-Type: application/json' \ --header 'X-Api-Key:Access Key' \ --data '{ "app_name": "<Custom App Name>", "long_description": "<Description, should be atleast 170 characters.>", "type": "SLACK", "short_description": "<Should be atleast 20 characters>" }'Copy the response from key “manifest” and unescape string.
Note: Easiest way to do it is using a command line utility called JQ. Copy the
response, and run the command -
pbpaste | jq -r '.manifest' | sed 's/\\n/\n/g' | jq '.’{"manifest":"{ "display_information": { "name": "Test Abhinay", "description": "Test short description", "background_color": "#676f78", "long_description": "Test Test custom slack app for testing the atom slack custom branding apps and credentials. This may need an update in the branding also as well. Test custom slack app for testing the atom slack custom branding apps and credentials. This may need an update in the branding also as well." }, "features": { "app_home": { "home_tab_enabled": true, "messages_tab_enabled": true, "messages_tab_read_only_enabled": false }, "bot_user": { "display_name": "Test Abhinay", "always_online": true }, "shortcuts": [ { "name": "Save as Verified Answer", "type": "message", "callback_id": "atom_add_verified_answer", "description": "Saves message response as Verified Answer" } ] }, "oauth_config": { "redirect_urls": [ "https://esd.atomicworkm6.com" ], "scopes": { "bot": [ "app_mentions:read", "channels:history", "channels:join", "channels:manage", "channels:read", "chat:write", "chat:write.customize", "chat:write.public", "commands", "conversations.connect:read", "dnd:read", "emoji:read", "files:write", "groups:history", "groups:read", "groups:write", "im:history", "im:read", "im:write", "links:write", "metadata.message:read", "mpim:write", "reactions:read", "reactions:write", "team.preferences:read", "team:read", "users.profile:read", "users:read", "users:read.email", "files:read" ] } }, "settings": { "event_subscriptions": { "request_url": "https://bot.atomicworkm3.com/api/v1/slack/events/custom-app", "bot_events": [ "app_home_opened", "app_mention", "message.channels", "message.groups", "message.im", "reaction_added", "reaction_removed" ] }, "interactivity": { "is_enabled": true, "request_url": "https://bot.atomicworkm3.com/api/v1/slack/form/interactive/custom-app", "message_menu_options_url": "https://bot.atomicworkm3.com/api/v1/slack/form/select-data-sources/custom-app" }, "org_deploy_enabled": false, "socket_mode_enabled": false, "token_rotation_enabled": false } }"}From that copy the entire response from manifest key. It should look like:
{"display_information": {"name": "Test Abhinay", "description": "Test short description", "background_color": "#676f78", "long_description": "Test Test custom slack app for testing the atom slack custom branding apps and credentials. This may need an update in the branding also as well. Test custom slack app for testing the atom slack custom branding apps and credentials. This may need an update in the branding also as well." }, "features": {"app_home": {"home_tab_enabled": true, "messages_tab_enabled": true, "messages_tab_read_only_enabled": false}, "bot_user": {"display_name": "Test Abhinay", "always_online": true}, "shortcuts": [{ "name": "Save as Verified Answer", "type": "message", "callback_id": "atom_add_verified_answer", "description": "Saves message response as Verified Answer" }]}, "oauth_config": {"redirect_urls": [ "https://esd.atomicworkm6.com"], "scopes": { "bot": ["app_mentions:read", "channels:history", "channels:join", "channels:manage", "channels:read", "chat:write", "chat:write.customize", "chat:write.public", "commands", "conversations.connect:read", "dnd:read", "emoji:read", "files:write", "groups:history", "groups:read", "groups:write", "im:history", "im:read", "im:write", "links:write", "metadata.message:read", "mpim:write", "reactions:read", "reactions:write", "team.preferences:read", "team:read", "users.profile:read", "users:read", "users:read.email", "files:read"]}}, "settings": {"event_subscriptions": {"request_url":"https://bot.atomicworkm3.com/api/v1/slack/events/custom-app", "bot_events": [ "app_home_opened", "app_mention", "message.channels", "message.groups", "message.im", "reaction_added", "reaction_removed"]}, "interactivity": { "is_enabled": true, "request_url": "https://bot.atomicworkm3.com/api/v1/slack/form/interactive/custom-app", "message_menu_options_url":"https://bot.atomicworkm3.com/api/v1/slack/form/select-data-sources/custom-app"}, "org_deploy_enabled": false, "socket_mode_enabled": false, "token_rotation_enabled": false } }Copy the JSON code and navigate to https://api.slack.com/apps. Click on Create New App. Select From a manifest.
Pick a workspace and click on Next
Select the type as JSON and copy in the JSON code.
Ensure these scopes haven't been changed and click on Create.
Navigate to App settings > Event Subscriptions. Click on the Retry button in the Request URL field. This is to verify the app with Atomicwork.
Click Save changes
Go to Install app > Install to your <workspace>
After you install the app, a Bot User OAuth Token is generated. Copy the token into your notes application.
Go to App settings > Basic information. Copy the signing secret key into your notes app as well.
Make a call to this API and save.
curl --location 'https://<domain>.atomicwork.com/api/v1/channel-access-config' \ --header 'Content-Type: application/json' \ --header 'x-api-key: <Api Access Key>' \ --data '{ "config_data": { "channel_type": "SLACK", "token": "<Bot user token>", "signing_secret": "<Signing secret>" }, "description": "Slack channel config", "channel_type": "SLACK" }'Go to Atomicwork > Settings > Apps > Slack. If the status is "connected to your <slack domain>", the app has been successfully uploaded.
