Yes, I added the app to the private channel but not shared one.
I did try using both OAuth toke and Bit user token but I received same error message with Message Slack User node.
Yes, I added the app to the private channel but not shared one.
I did try using both OAuth toke and Bit user token but I received same error message with Message Slack User node.
That should be fine, I think it only needs to be invited to private channels.
Weird, I don’t see why your bot token would still be failing - though another user wasn’t able to post to certain channels either and switched to messaging by user. We never found out why.
These are my user token scopes:
Be careful with how you use the user tokens though. The bot token will post as the bot whereas the user token lets KNIME send messages on behalf of the user:

The first post used my bot token and the second post uses my user token. So I wouldn’t advise sharing the user token.
I’m going to have to add some more logging into the code, it was supposed to say what scope was missing when you get a missing_scope error.
Well, I see the following error using Channel History node but I see the scope in both User and BOT token scopes. However, its not mentioning the name of the missing scope using Message Slack User node.
ERROR Channel History 0:60 Execute failed: API call failed: missing_scope scope needed: groups:read
From your most recent images of your scopes your user token doesn’t have groups:read, if it;s there now then I assume you have added it after that screenshot? If so the error message should’t be saying you need groups:read - though this is the response from slack itself…
Is it a private channel you are trying to read? If so this is a scenario you will need to use a user token as the bot tokens provide limited functionality.
I’ll update the Message Slack User Node to fix the missing details in the error message.
I haven’t posted complete list of User token scopes but actually, it’s been added.
It raises same error for both private and shared channels.
I’ve just pushed an update to the Message Slack User node. This is now available on the nightly update site (version: 2.0.1.v202004091613). The error message should now look like this:
ERROR Message Slack User (beta) 0:9 Execute failed: Failed to post message: missing_scope - needed: channels:write,groups:write,mpim:write,im:write
DEBUG Message Slack User (beta) 0:9 Execute failed: Failed to post message: missing_scope - needed: channels:write,groups:write,mpim:write,im:write
java.io.IOException: Failed to post message: missing_scope - needed: channels:write,groups:write,mpim:write,im:write
at com.sjwebb.knime.slack.api.SlackBotApi.directMessage(SlackBotApi.java:387)
Ok, let’s try getting back to basics.
The Message Slack User node makes two API calls:
ConversationOpen: conversations.open method | Slack
This gets the required identifier for the channel / user conversation
ChatPostMessage: chat.postMessage method | Slack
This is the call that sends the user the message. The API docs state it only needs the chat:write scope on the bot token.
I just deleted all my scopes waited a bit for this to process and started from scratch. To run this node on my Slack workspace the only scopes I need to have active are (the other nodes are the reason we need additional scopes):
For some reason, I am getting Forbidden error by accessing this link http://update.knime.com/community-contributions/trunk to download latest version.
If possible, Could you share the zip file with me?
You should see forbidden in a browser but it should work as an update site in KNIME.
Hopefully the zip is:
http://update.knime.com/community-contributions/trunk/CommunityContributions_trunk_202004091613.zip
I did try by providing the trunk link in KNIME preferences but I see same error w/o additional information.
Let me check with the zip file.
I am still getting same error w/o additional information by considering zip file.
It’s possible the zip isn’t updated as frequently as the nightly built live is.
I installed and tested it on my machine so the update did build. Maybe try again tomorrow?
Although if the version number of the nodes updated to today’s date and its saying missing_scope but not showing what the scope is I don’t know what else I can do without actually having access to the tokens myself which I assume isn’t really possible.
Nevermind, I just checked the zip and it seems to have the latest version of the jar installed.
I really don’t understand why you are getting a missing_scope error without actually missing the scopes and as I can’t recreate this I’m not sure how to progress to find you a fix.
EDIT: I see there is a new version of the Java Slack API. I will upgrade the nodes to use that and maybe we’ll get lucky.
Ok, here we go again. I have updated the slack api dependencies to the latest official release.It now appears that the user oauth token is not required as all nodes function on the bot oauth token. So you only need to use a user token and scopes if you want to let KNIME impersonate you.
I have made the following changes to the Message Slack User node:
To allow sending to multiple users I had to add some additional scopes to allow the bot to create the group discussions and send messages to it. You shouldn’t need to add any additional scopes to send to a single user.
My bot scopes now look like this:
Notes on using a display name:
The display name is the value you’d use to mention a specific user. For example ‘@sam’:

Note that a display name is not unique. The node is set up to fail if multiple users have the same display name, in which case you must use their ID instead.

When sending a message to a single user you should see the the new message under apps:

If sending to multiple people you should see it in a group chat. This example is sending to @Sam,@Sam2

![]()
I hope this latest update works for you but if it doesn’t please share with me the full stack trace error which will hopefully help me narrow down where in the call it is failing.
Cheers
Sam
I am getting following error when I reload the trunk. However, I am still getting missing_scope error only. If possible, please share the zip file with me.
The zip is: http://update.knime.com/community-contributions/trunk/CommunityContributions_trunk_202004100602.zip
For future reference you can find this link yourself by browsing this page: https://www.knime.com/community then scroll down to Nightly Builds and it’s the link highlighted:
However I think the reason you’re having issues with the live site in KNIME is you’ve got a mistake in it.
You should be using: http://update.knime.com/community-contributions/trunk
But you’re using http://updaet.knime.com/community-contributions/trunk (which is giving you an unknown host error not a forbidden error)
I am getting following error this time though chat:write scope is part of my workspace.
What else could be wrong?
ERROR Message Slack User (beta) 0:17 Execute failed: Failed to send message to user (USLACKBOT)null - null needed: chat:write:bot
Can you try send a message to a real person rather than the slack bot? I’ve never tried to do that myself and not sure what it would actually do in this scenario.
It says you need chat:write:bot rather than chat:write.
It looks like it’s able to open the conversation which is a good start. It’s failing at step 2 which is sending the message. Can you check and see if the error is the same trying to send the message to yourself?
Yes, the error is same even when I send message to myself and I don’t see chat:write:bot scope in available scopes.
Following error when I use OAuth Token
ERROR Message Slack User (beta) 0:20 java.lang.Exception: missing_scope - needed: users:read
ERROR Message Slack User (beta) 0:20 Execute failed: missing_scope - needed: users:read
Following error when I use BOT User OAuth Token
ERROR Message Slack User (beta) 0:17 java.io.IOException: Failed to send message to user (WLA807PSM)null - null needed: chat:write:bot
ERROR Message Slack User (beta) 0:17 Execute failed: Failed to send message to user (WLA807PSM)null - null needed: chat:write:bot
To confirm you have added users.read? The first error implies you haven’t.
I don’t understand why it would ask for chat.write.bot when using the bot token as this is a user scope. I cant add this scope myself either.
This is the slack documentation for the call that is failing that details the required scopes and what type they are:
At this stage I’d suggest making a support request to slack to help you get your scopes sorted. You could try using the Slack API tester to make the calls and see if they work:
Call 1: https://api.slack.com/methods/conversations.open/test
Enter your bot token under “Or, provide your own token:”
You need the ID value from the returned response for the next call.
Call 2: https://api.slack.com/methods/chat.postMessage/test
Provide your token again, the channel value is the ID returned in the previous call and some sample text.
These should give you the same errors as the KNIME nodes - let me know if they don’t.


Thanks for all Sam. I will work w/Slack team on this.
When can we have release version w/these changes?