You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Slack Workflow Builder渲染变量中的Markdown文本?

解决Slack Workflow Builder渲染自定义步骤Markdown变量的问题

针对你遇到的Workflow Builder无法渲染自定义步骤生成的Markdown字符串问题,给你两个可行的解决思路:

思路一:改用Block Kit结构传递消息内容

Workflow Builder对Slack的Block Kit支持更完善,你可以在自定义步骤的execute环节生成Block格式的JSON数组,而非纯Markdown字符串,这样后续步骤能正确解析并渲染格式。

实现代码示例

在你的自定义步骤execute函数里,生成Block结构的消息并返回:

def execute(step, client, logger):
    # 执行原有输入数据验证逻辑
    # 构建Block格式的消息内容
    message_blocks = [
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": "*CICD构建故障通知*\n构建任务 `build-xxx` 执行失败,责任人: <@Uxxxxxxx>"
            }
        },
        {
            "type": "context",
            "elements": [
                {"type": "mrkdwn", "text": "故障时间: 2024-05-20 14:30"}
            ]
        }
    ]
    # 返回Block变量给Workflow
    return {"message_blocks": message_blocks}

Workflow配置调整

在Workflow Builder的最后一步“发送消息”中,切换到「Blocks」模式,插入变量{{data.message_blocks}}即可,此时Slack会自动解析Block中的Markdown语法并渲染。

思路二:自定义步骤直接调用API发送消息

绕过Workflow Builder的消息发送步骤,直接在自定义步骤里用Slack API完成频道消息和DM的发送,这样能完全控制消息的渲染逻辑。

实现代码示例

def execute(step, client, logger):
    # 获取Workflow传入的参数(频道ID、用户ID等)
    target_channel = step["inputs"]["ci_status_channel"]
    responsible_user = step["inputs"]["user_id"]
    
    # 生成带Markdown的消息内容
    channel_msg = "*CICD构建故障*\n> 任务ID: `build-xxx`\n> 失败原因: 依赖包拉取超时"
    user_msg = "你负责的CICD任务 `build-xxx` 失败了,请尽快排查修复"
    
    # 发送频道消息(启用mrkdwn渲染)
    client.chat_postMessage(
        channel=target_channel,
        text=channel_msg,
        mrkdwn=True
    )
    # 发送DM给责任人
    client.chat_postMessage(
        channel=responsible_user,
        text=user_msg,
        mrkdwn=True
    )
    # 无需返回变量给后续步骤
    return {}

Workflow配置调整

删除原来的最后一步消息发送,只保留你的自定义步骤即可,所有消息发送逻辑由机器人完成,确保Markdown被正确渲染。


内容的提问来源于stack exchange,提问作者Mobile Ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 08:48:29