Slackが離席中を判断するしくみ:読んでいる4つの信号
Slackは4つの信号であなたが離席中かを判断します。コンピューターでのキーボードやマウスの入力、PCのスリープとロック、スマホのアプリが画面に出ているか、手動の離席中の設定。サインイン中の端末はそれぞれ個別に報告し、1台でもアクティブなら緑です。
スマホで読んでいますか?
離席テストはパソコンで実行しましょう
Slackはパソコンで離席になるので、この無料テストもパソコンで動きます。このページを自分に送って、デスクでStartを押してください。
On this page
Slackは、4つの信号からあなたが離席中かどうかを判断します。コンピューターでの最近のキーボードやマウスの入力、PCのスリープとロックの状態、スマホのアプリが画面に出ているか、そして「自分を離席中に設定」を選んだかどうかです。PCでは、Slackのデスクトップアプリはどのアプリでの入力も数えます。Slackの中だけではありません。コンピューターのアイドル時間を10秒ごとに読んでいるからです(Slackデスクトップ版4.52.178のコードで2026年10月7日に確認)。サインイン中の端末はそれぞれこれらを個別に送り、どれか1台がアクティブとみなされれば、あなたはアクティブと表示されます。カレンダーは判断に使われません。Slack Green は、コンピューターの電源が切れていても、スリープ中でも、ロック中でも、閉じていても、サーバー側であなたをアクティブに保ちます。7日間無料、カード不要です。
このページでは判断の仕組みを説明します。PCなら10分といった正確な時間はSlackはどれくらいアクティブのままかにあります。
多くの人が毎日ぶつかるのは、入力のない時間です。長い通話、読み物、閉じたりスリープしたりしたノートPC。サーバー側のツールなら、こうした時間もアクティブを保てます。コンピューターにソフトウェアもハードウェアも要りません。
Slackが読む4つの信号
| 信号 | 出どころ | 働き |
|---|---|---|
| コンピューターでの入力 | デスクトップアプリ: どのアプリでのキーやマウスの入力も、システムのアイドル時間から読む。ブラウザのタブ: そのタブの中で起きたこと | 最後の入力からPCのセッションを10分間アクティブに保つ |
| スリープとロック | OS | そのPCのセッションをすぐに離席中にする |
| スマホの画面表示 | 前面にあるモバイルアプリ | 画面に出ているあいだはアクティブ、アプリを離れると離席中 |
| 手動の離席中 | プロフィールメニューの「自分を離席中に設定」 | 戻すまで、どこでも離席中 |
デスクトップアプリは、マウスの行き先、ほかのアプリで入力した内容、画面、Webカメラを記録しません。読むのは、コンピューターが何秒操作されていないかという1つの数字だけです。このMacのアプリから、そのチェックを出力しました。
#!/usr/bin/env python3
# Print the idle check inside the Slack desktop app on this Mac (app.asar, plain JavaScript).
import re, plistlib
app = "/Applications/Slack.app/Contents"
print("Slack", plistlib.load(open(app + "/Info.plist", "rb"))["CFBundleShortVersionString"])
js = open(app + "/Resources/app.asar", "rb").read().decode("latin-1")
check = re.search(r"let r=\(\)=>\{let t=(\d+)>=\w+\.powerMonitor\.getSystemIdleTime\(\)\?(\w+)\.ACTIVE:\2\.IDLE.*?setInterval\(r,(\w+)\)", js)
print("idle check:", check.group(0)[:160], "...")
print("active if system idle seconds <=", check.group(1), "| checked every", check.group(3), "ms")
tickle = re.search(r"TICKLE_MESSAGE_SERVER,e=>\{.{0,320}?t\.send\(\w+\.TICKLE_MESSAGE_SERVER\)", js)
print("on active, sends to every loaded workspace:", tickle.group(0)[-60:])
出力:
Slack 4.52.178
idle check: let r=()=>{let t=20>=eE.powerMonitor.getSystemIdleTime()?h4.ACTIVE:h4.IDLE,{app:{systemIdleStatus:r,systemLockedStatus:n}}=e.store.getState();t===h4.IDLE||n||e. ...
active if system idle seconds <= 20 | checked every 1e4 ms
on active, sends to every loaded workspace: mId(e);t&&!t.isDestroyed()&&t.send(nc.TICKLE_MESSAGE_SERVER)
アプリは10秒(1e4ミリ秒)ごとに、どれだけ操作がないかをシステムに尋ねます。答えが20秒以下で画面がロックされていなければ、開いているすべてのワークスペースのメッセージサーバーに合図を送り、それであなたはアクティブのままになります。エディタやブラウザでの入力、ジグラーの動きも、Slackでの入力と同じようにこの時間をリセットします。ブラウザのタブのSlackにはこのチェックがありません。2026年10月7日のテストでは、タブは入力なしで30分アクティブのままだったので、ブラウザのルールは断定しません。プライバシーの話はSlackはマウスの動きを追跡するかにあります。
どのシグナルも自分のPCやスマホから来るので、ノートPCがスリープするか、画面がロックされるか、入力のないまま10分たつと、Slackは離席中になります。サーバー側で動くツールなら、入力なしでSlackの点を緑に保てます。ノートPCを閉じていても、スマホをロックしていても同じです。
Slackが信号を適用する順番
- 手動の離席中が最優先。 「自分を離席中に設定」を選んだら、戻すまで離席中のままです。入力してもメッセージを送っても変わりません。
- 次にスリープとロック。 スリープ中かロック中のPCは、数秒で離席中を送ります。無操作タイマーが回る前です。
- そして入力の猶予。 起きていてロックされていないPCは、最後のキーボードやマウスの入力から10分間アクティブのままで、新しい入力のたびにやり直しになります。デスクトップアプリでは、ほかのアプリでの入力も数えられます。
- スマホでは、画面に出ていることがタイマーの代わり。 アプリは前面にあるあいだアクティブで、離れると離席中になります。
複数の端末のまとめ方
サインイン中のセッションはそれぞれ個別に報告し、点はそれらすべてをまとめた結果を表示します。どこかに1つでもアクティブなセッションがあれば緑、すべてのセッションがアイドルなら灰色です。どの端末が優先ということはありません。
「ステータスが勝手に変わった」という報告の多くは、これで説明できます。スマホで返信しているあいだはノートPCが緑を保っていたが、そのノートPCがスリープし、スマホがロックされ、最後のアクティブなセッションがなくなった、というケースです。タイミングからこれらを見分ける方法は作業中なのにSlackが離席中になる理由にあります。いないのに点が緑のままなら、いないのにSlackでアクティブと表示されるを参照してください。
点の裏にある接続
Slackのアプリは、Slackのサーバーとのあいだにリアルタイムの接続(WebSocket)を開いたままにし、それを通じて操作を報告します。VPNの切り替え、Wi-Fiの切り替え、厳しいプロキシでこの接続が切れると、アプリが再接続するまで在席状況は古いままになります。1分以上点がおかしいなら、アプリを再起動するかタブを再読み込みして、接続をやり直してください。同じ切断で、あなたの画面ではすべての同僚が灰色に見えることもあります。その場合の対処はSlackで全員がオフラインに見えるにまとめています。
サーバー側のツールが効くのも、これが理由です。あなた自身のセッショントークンで接続するものは、ノートPCが開いていても閉じていても、1つのセッションとして数えられます。PCに触らずにSlackをアクティブに保つ仕組みはこれです。
SlackのAPIが示す在席状況
Slackの users.getPresence メソッドを使うと、判断の中身が見えます。ほかの人について尋ねると、返るのは active か away だけです。自分について尋ねると、Slackはまとめる前の要素を返します。
curl -s -H "Authorization: Bearer $SLACK_USER_TOKEN" \
"https://slack.com/api/users.getPresence"
auto_away は、無操作のためにSlackが離席中にしたとき true になります。manual_away は、「自分を離席中に設定」を選んだとき true になります。connection_count は、いま接続しているセッションの数です。last_activity は、Slackがあなたの操作を最後に数えた時刻です。対になる書き込み用のメソッド users.setPresence が受け付けるのは auto か away だけです。「常にアクティブ」という値はありません。auto は判断をSlackに戻すだけです。curlとPythonでの両メソッドのコードはSlackの在席状況APIガイドにあります。
まわりの人に見えるもの
同僚に見えるのは、緑の点か中抜きの灰色の点です。どの信号が原因なのか、どのくらい離席中なのか、どの端末を使っているのかは見えません。無操作、スリープ、アプリを閉じた状態、手動の離席中は、どれも同じ灰色の点です。その点が相手にとって何を意味するかはSlackの離席中ステータスの意味にあります。
管理者にはもう少し見えますが、在席状況のリアルタイムの履歴は見えません。分析では1人ごとのアクティブだった日数と投稿したメッセージ数を、アクセスログではIPアドレスと端末付きのサインインを見られます。プラン別の完全な一覧はSlackは従業員の監視に使えるかに、在席状況のツールがそれらのログで何を変えるかは在席維持ツールでバレるかにあります。
よくある質問
Slackはいつオフラインと表示しますか?
Slackには、離席中と別のオフライン状態はありません。Slackを閉じる、サインアウトする、すべてのセッションがアイドルになる、のどれでも、同じ中抜きの灰色の点で離席中と表示されます。
Slackは自動で離席中にしますか?
します。PCでは、キーボードやマウスの入力がないまま10分たつか、PCがスリープかロックした時点で離席中にします。スマホでは、アプリを離れたときに離席中にします。
Slackはカレンダーや会議を使って離席中にしますか?
しません。カレンダーアプリは「会議中」のようなステータスを設定できますが、点は上の4つの信号にしか従いません。点とステータスは別の仕組みです。
メッセージを読んでいるだけのとき、Slackはどうやってアクティブだとわかるのですか?
スクロールかクリックをしない限り、わかりません。入力なしで読んでいるのは、PCから離れているのと同じに見えます。
ハドルに参加しているとアクティブのままですか?
はい。Slackのアプリでハドルが続いているあいだはアクティブです。同僚には、あなたがハドル中であることも見えます。
Slackの判断の仕方を変えられますか?
変えられません。どのプランにもタイマーの設定や常にアクティブにするスイッチはなく、APIが受け付けるのは auto か away だけです。緑を保つ方法はどれも、入力を続けるか、アクティブなセッションを保つものです。比較はSlackで離席中と表示されないようにする方法にあります。
関連記事
Slackの非アクティブ、解除済み、離席中の違い
離席中は灰色の点、非アクティブは28日Slackを使わなかったときのお支払いのステータス、解除済みは管理者が止めたアカウントです。実際のワークスペースの管理画面で、それぞれがどこに出るかを確かめました。
Slackがすぐ離席中になるのはなぜ?本当の原因
Slackがすぐ離席中になるのは、タイマーが思ったより短く、キーボードやマウスの入力がないまま10分で切り替わり、さらに3つのよくある出来事がタイマーを飛ばして即座に切り替えるからです。原因ごとに見分け方と直し方があります。
Slackに最終ログイン(最終アクティブ)表示はある?同僚には出ません
Slackは同僚に現在の点だけを見せ、最終ログインの時刻は出しません。有料プランでは管理者がメンバーごとの最終アクティブ日を見られます。誰に何が見えるかと、相手の最後のメッセージを探す方法。