SlackでBot(アプリやカスタム統合)が投稿するメッセージの表示名が、意図したものと異なる場合があります。特に複数のBotを運用している現場では、メッセージの送信元が一目で分からないと、業務の効率や情報の信頼性に影響を与えることがあります。表示名がなぜ変わってしまうのか、その原因はアプリの設定方法やAPIの使い方に起因することが多く、正しく理解することで初めて安定した運用が可能になります。この記事では、Bot投稿の表示名に関する基本設定と、利用条件を確認するための具体的な手順を紹介します。
【要点】この記事で確認すること
- 最初に見る場所: Slack管理画面のアプリ設定(App Settings)内の「Bot User」セクションにあるDisplay Name、およびメッセージ送信APIで指定する「username」パラメータ。
- 切り分けの軸: アプリの種類(レガシーなカスタムBot vs 新しいSlackアプリ)、権限スコープ(特にchat:write.customizeの有無)、メッセージ送信方法(Incoming Webhook、APIメソッドchat.postMessageなど)。
- 注意点: 会社PCで管理者権限のない状態でアプリの権限設定を変更すると、意図せず他の機能に影響を与える可能性があります。変更前には必ずSlack管理者に確認しましょう。
ADVERTISEMENT
目次
Bot投稿の表示名が決まる仕組みと2つの設定ポイント
SlackのBotがメッセージを投稿するとき、表示名は原則としてアプリ単位で設定された「Bot Display Name」が使われます。しかし、API経由でメッセージを送信する際に「username」パラメータを指定すると、その値が表示名として上書きされることがあります。この2つの設定ポイントを理解することが、問題解決の第一歩です。
アプリ設定画面の「Bot User」セクション
Slack API管理画面(api.slack.com/apps)で対象のアプリを開き、「Bot Users」のタブにある「Display Name」フィールドです。ここで設定した名前が、何も指定しない場合のデフォルト表示名になります。この設定はチーム内で一貫して使用されるため、運用ルールに沿った名前を設定することが望ましいです。
メッセージ送信APIの「username」パラメータ
Incoming Webhookやchat.postMessageメソッドでメッセージを送る際、オプションで「username」に任意の文字列を指定できます。ただし、このパラメータは権限によって動作が異なります。具体的には、アプリに「chat:write.customize」スコープが付与されていない場合、usernameパラメータは無視され、アプリ設定の表示名が強制される仕様です。
カスタムBotとアプリ連携で異なる表示名の扱い
Slackには大きく分けて「レガシーなカスタムBot」(Classic Apps)と、現在主流の「Slackアプリ」(BoltやManifestを使用)の2種類があります。それぞれ表示名の動作が異なりますので、自分の環境がどちらに該当するかを最初に確認してください。
| 項目 | レガシーカスタムBot | 新しいSlackアプリ |
|---|---|---|
| 表示名の固定方法 | App Settingsの「Display Name」のみ。APIのusernameパラメータは常に無視。 | App Settingsの「Display Name」がデフォルト。chat:write.customize権限があればusernameパラメータが有効。 |
| 権限設定 | シンプルで追加権限不要。 | OAuthスコープにchat:write.customizeが必要。スコープがなければusernameパラメータは無視。 |
| 管理画面の場所 | Slack管理画面の「Custom Integrations」 | Slack API Portal内の各アプリ詳細 |
レガシーカスタムBotの場合
2018年以前に作成されたカスタム統合です。このタイプではアプリ設定で表示名を変更しても、APIのusernameパラメータはまったく効きません。もし複数のBotが同じ名前で投稿されているように見える場合は、別々のBotで同じ表示名を設定していないか確認してください。
新しいSlackアプリの場合
現在推奨されるアプリ形式です。表示名を柔軟に制御するには、アプリに「chat:write.customize」スコープを追加する必要があります。このスコープがないと、usernameパラメータを指定しても無視されます。スコープの追加は開発者や管理者がAPI Dashboardで行います。
表示名が反映されない3つの失敗パターンと判断基準
実際に運用していると、設定したはずの表示名が正しく表示されないケースが頻発します。代表的な失敗パターンを以下にまとめました。
パターン1:権限不足によるusernameパラメータ無視
新しいSlackアプリでusernameを指定しても表示名が変わらない場合、ほぼ100%権限不足です。アプリの「OAuth & Permissions」ページで「chat:write.customize」がスコープに含まれているか確認します。含まれていない場合、アプリの再インストールが必要です。
パターン2:複数のBotで同じ表示名を設定
たとえば2つの異なるBotに「アラートBot」という表示名を設定すると、どちらの投稿も同じ表示名で表示され、区別がつかなくなります。また、Slack上では同じBotとして扱われ、メンションが正しく届かない問題も発生します。表示名はワークスペース内でユニークにすることを推奨します。
パターン3:レガシー統合と新アプリの混在
古いカスタム統合と新しいアプリが併存している環境では、Incoming Webhookの送信元が異なるのに同じ名前で表示される場合があります。この場合、各統合の設定画面で表示名が重複していないか、またAPIのusernameパラメータが意図せず指定されていないかを確認します。
判断基準
表示名が想定と異なる場合、まずはSlackの管理画面で「Message Activity Log」を開き、そのメッセージの送信元アプリを特定します。次にアプリ設定画面で表示名フィールドがグレーアウトしているかどうかを確認します。グレーアウトしている場合、権限不足またはレガシー統合である可能性が高いと言えます。
管理者が確認すべき表示名関連の設定項目
Slackワークスペースの管理者またはアプリ開発者は、以下の設定を一通り確認することで多くの問題を解決できます。
アプリごとの権限スコープ
Slack API Dashboardの「OAuth & Permissions」で、スコープ一覧に「chat:write.customize」が含まれているか確認します。含まれていない場合は「Add an OAuth Scope」から追加し、アプリを再インストールしてください。再インストール後、トークンが再発行されるので注意が必要です。
Bot Display Nameの重複チェック
ワークスペース内で同じ表示名のBotが存在しないか確認します。方法としては、Slack管理画面の「Manage Apps」→「App Directory」→「Installed Apps」で一覧を表示し、表示名のカラムをソートして重複をチェックします。重複が見つかった場合は、一意の名前に変更してください。
Incoming WebhookとSlash Commandの設定
Incoming Webhookを使用している場合、Webhook URL作成時に「Descriptive Label」というフィールドで表示名に相当するものを設定できます。また、Slash Commandの場合は、カスタム統合の設定画面でBot Userの表示名がそのまま使われます。これらの設定も確認対象です。
トラブルシューティング:表示名が期待と異なる場合の対処手順
実際に表示名が意図と異なる場合、次の手順で原因を特定して修正します。
- メッセージの送信元アプリを特定する:該当メッセージの右クリックメニューから「メッセージの詳細」を選び、メッセージのAPI情報を確認します。または管理者であればSlack管理画面の「Message Activity Log」で送信元アプリIDを確認します。
- アプリ設定の表示名を確認する:Slack API Dashboardで該当アプリを開き、「Bot Users」のDisplay Nameが現在表示されている名前と一致しているか確認します。
- 権限スコープを確認する:同じく「OAuth & Permissions」でchat:write.customizeが含まれているか確認します。ない場合は追加し、アプリを再インストールする必要があります。管理者権限が必要な作業です。
- APIリクエストのパラメータを確認する:もし自社開発のアプリであれば、chat.postMessageやIncoming Webhookの送信時にusernameパラメータを指定していないかコードを確認します。指定していて権限がない場合は、権限を追加するか、パラメータを削除します。
- 表示名の重複を確認する:管理画面で全Botの表示名一覧を取得し、重複がないかチェックします。重複していた場合は、片方の表示名を変更します。
- レガシー統合かどうかを確認する:アプリの作成日が2018年以前で、Slack API Dashboardに「Classic App」の表示がある場合はレガシー統合です。この場合、表示名の変更はアプリ設定のみで行い、APIのusernameパラメータは無視されることを理解してください。
よくある質問(FAQ)
Q1. Botの表示名をユーザー名(@user)と同じにしたいのですが、設定方法を教えてください。
表示名とユーザー名は別物です。Botの場合、ユーザー名は「Bot User Name」という別フィールドで設定します。表示名をユーザー名と同じにするには、アプリ設定のDisplay Nameにユーザー名と同じ文字列を入力してください。ただし、ユーザー名は一意である必要があるため、表示名でユーザー名を再現すると混乱を招く可能性があります。運用ルールを決めてから設定しましょう。
Q2. 表示名に絵文字や特殊文字を使ってもいいですか?
Slackの表示名では絵文字や多くのUnicode文字が使用可能です。ただし、一部の古いクライアントやプラットフォームでは正しく表示されない場合があります。また、検索やメンションの機能に影響を与える可能性があるため、業務用途では英数字と一般的な記号にとどめることをおすすめします。
Q3. 別のワークスペースに同じアプリをインストールしたら表示名が引き継がれません。なぜですか?
表示名の設定はワークスペースごとに独立しています。アプリを別のワークスペースにインストールする際は、そのワークスペースで改めて表示名を設定し直す必要があります。逆に、表示名をワークスペース間で統一したい場合は、手動で同じ文字列を入力するか、カスタムスクリプトで設定を同期する方法を検討してください。
Q4. 表示名を変更しても反映されません。どうすればいいですか?
まずはアプリの再インストールを試みてください。設定変更後にトークンが更新されていない場合があります。また、Slackのキャッシュが原因で古い表示名が残ることもあるため、ブラウザのキャッシュクリアやアプリの再起動も効果的です。それでも直らない場合は、Slackのサポートに問い合わせることを検討してください。
まとめ
SlackのBot投稿の表示名は、アプリ設定の「Display Name」とAPIの「username」パラメータの2つの要素で決まります。新しいSlackアプリでは、usernameを有効にするためにchat:write.customize権限が必須であり、この権限がないと設定が無視されるため、トラブルの多くは権限不足が原因です。また、複数のBotで表示名が重複しないように管理することも重要です。運用ルールを策定し、管理者と開発者で適切な設定を共有することで、表示名に関する混乱を未然に防げます。
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Excel】文字が入っているセルの「個数」を数える!COUNTA関数の簡単な使い方
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Outlook】予定表の「祝日」が表示されない!最新カレンダーの追加と二重表示の修正手順
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
