Dex Bot
Digital Experience チームの Slack アプリケーション
Digital Experience チームは、チームへの重要なメッセージとアラートを自動化するための Slack アプリケーションを作成しました。アプリの設定はこちらで確認できます。
コラボレーター
現在、このアプリケーションは Digital Experience チームの次のメンバーによって管理されています:
Contentful 連携
現在、このボットの主な用途は、CMS プラットフォーム上でメインページのいずれかが変更された際にチームに通知することです。これにより次の情報を含むメッセージがチームへ送信されます:
- エントリータイトル
- 変更を行ったユーザーのユーザー ID
- 更新時刻
- エントリー ID
- 変更後のエントリーバージョン
また、CMS で前のバージョンとの比較を開くボタンも含まれています。

この連携は 2 つの Webhook を使用して行われています:
Contentful Webhook は、エントリー情報を含むカスタムペイロードを Slack Webhook へ送信するように設定されており、それが Slack ボットからのメッセージをトリガーします。このメッセージは Slack の dex-alerts チャンネルへ送信されます。
Slack Block
送信されるメッセージは、Slack の Block システム を使って作成されました。これは事前構築された Slack UI コンポーネントを使ってメッセージを構造化し、入力やボタンの形でインタラクティビティを追加するものです。これは JSON 形式で構築されています。CMS アラートメッセージで使用されているペイロードは次のとおりです:
{
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "Monitored page content updated",
"emoji": true
}
},
{
"type": "section",
"text": {
"type": "plain_text",
"emoji": true,
"text": "Entry title: {/payload/fields/title/en-US}"
}
},
{
"type": "divider"
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Updated by user:* {/payload/sys/updatedBy/sys/id} \n\n *Update time:* {/payload/sys/updatedAt} \n\n *Entry ID:* {/payload/sys/id} \n\n *Version*: {/payload/sys/revision}"
},
"accessory": {
"type": "image",
"image_url": "https://assets.stickpng.com/images/5a81af7d9123fa7bcc9b0793.png",
"alt_text": "calendar thumbnail"
}
},
{
"type": "divider"
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "View changes in Contentful"
},
"accessory": {
"type": "button",
"text": {
"type": "plain_text",
"text": "View changes",
"emoji": true
},
"url": "https://app.contentful.com/spaces/{/payload/sys/space/sys/id}/entries/{/payload/sys/id}/compare"
}
}
]
}
