What is your goal?
Make a workflow that works with any Slack workspace — when I test it locally it works fine, but when an external platform (Gravity AI) evaluates it, the Slack bot steps fail with not_in_channel error even though the bot is in the channel.
What is the problem & what have you tried?
My workflow works perfectly in ActivePieces when I test it locally:
Bot is in my Slack channel (#all-assessment)
“Get channel history” step retrieves messages
Slack messages send correctly
But when Gravity AI runs the workflow for evaluation, it fails:
An API error occurred: not_in_channel
The connected Slack account (bot or user) is not a member of the channel it is trying to read history from.
Error messages or input/output bundles
My workflow has a hardcoded Slack connection (my bot token) embedded in it. When Gravity AI runs the workflow, it tries to use MY bot in THEIR evaluation environment — but MY bot isn’t in THEIR channels.
Screenshots (scenario flow, module settings, errors)
Your diagnosis is right, and there is a second hardcoded value that will still break you after you fix the first one.
Channel IDs are workspace-specific. Even with a bot that is properly installed in the evaluator’s workspace, an ID captured from your own #all-assessment points at nothing in theirs, and you get the same class of failure. Resolve the channel by name at run time with conversations.list and use the ID it returns, so the workflow carries a name rather than an identity.
For the membership itself, a bot with the channels:join scope can add itself with conversations.join before it reads history, which removes not_in_channel without anyone doing anything manually. The limit is worth stating plainly: this works for public channels only. A private channel always needs a human to invite the bot, and no scope changes that.
On the token, there is no way around it. A workflow that is meant to run in any workspace cannot ship your credentials, because your bot has no standing in someone else’s Slack. The evaluating platform has to provide its own Slack connection, or the workflow has to run a Slack install flow so the person testing it authorises their own. If Gravity AI cannot supply a connection, that is the thing to raise with them rather than something to solve in the workflow.