Slack
Connect Slack to catch untracked time (timestamps only, never content) — and run your timer with /pp commands.
Connect Slack and ProjectPacer notices when you're working from the messages you send — so a stretch of Slack work with no timer running can surface as missed time to log, and a timer that ran long can be trimmed back to your last real activity. It's a signal source for AI suggestions, not a place you track time.
Slack is opt-in. Connecting a workspace turns the signal on so it starts working right away — and you can switch it off any time, on the Slack page or under Settings → AI suggestions. Turning it off deletes the timestamps already stored.
What it reads — and what it never does
ProjectPacer only ever looks at your own sent messages, and keeps just the timestamp and which channel — never the message text, never messages from anyone else, never who you're talking to.
- Timestamps only. That you sent a message at a time, not what it said.
- Only yours. We search your own sent messages; we never receive other people's.
- No content, ever. Nothing you or anyone typed is stored.
- Names, to help you map. So you can point any channel at a project, ProjectPacer can list your channels' names (public and private) — names only, never their messages. Only channels you're in: a private channel you're not a member of stays invisible, exactly as it does to you in Slack.
- DMs stay anonymous. A direct message never shows who it's with — it's listed only as "Direct message." (The one exception, on purpose: a Slack Connect conversation surfaces the external workspace, e.g. "Client A," so you can bill time to them — never the person.)
Optionally it also notes when you're active in Slack (handy for catching work from your phone) — again, just presence, never content. It checks every few minutes, so work from your phone still registers even with ProjectPacer nowhere in sight.
ProjectPacer requests read-only metadata — message timestamps and channel names — to draft time for review. It does not store the content of any message, and never reads anyone else's. Slack connects per person, so no one can switch it on for a teammate. If you administer the workspace, telling your team which integrations are in use is still your responsibility.
Connect a workspace
In Settings → Apps & integrations, find Slack and click Connect, then authorize it in Slack. That's it — connecting turns the signal on, so it starts catching untracked time straight away.
Changed your mind? Turn Slack off right on the Slack page, or under Settings → AI suggestions. Off means nothing is recorded, and the timestamps already stored are deleted.
People are in several Slacks. Connect as many workspaces as you want — each is separate, and you can map each to different work.
Slack is connected per person — you connect your own account, it sees only your own activity, and it doesn't affect or reveal anything to your teammates. It's not a workspace-wide install an admin flips on for everyone; each person connects (and can disconnect) their own.
Your sent-message activity refreshes on its own every few minutes; presence a touch faster. Impatient? Sync now on the Slack settings page pulls it immediately.
Which workspace a Slack logs into
This applies only to people who belong to more than one ProjectPacer workspace. With a single workspace, everything logs there.
Each connected Slack team maps to one ProjectPacer workspace — set it with the This Slack logs into → picker on the connection. Time caught from that Slack (and /pp log//pp start without a project) is logged there, and the project pickers below draw from that workspace's projects. A connection left on My active workspace logs wherever you're currently working (the old behaviour). You can only map a Slack to a workspace you're a member of.
Map Slack to your projects
So missed time lands on the right project, you tell ProjectPacer what maps where. It picks the most specific rule that applies:
Map any channel you're in — public or private — to a project from the picker; channels you've recently posted in are pinned as recently active. Point #acme-build at the Acme project and messages there attribute to Acme.
If you share a channel with a client's workspace (Slack Connect), map that external workspace to their project — so a DM with Client A counts toward Client A, wherever it happens.
Set a workspace default for the common case: you're a guest in a client's Slack, so everything there is that client.
A channel mapping beats a Slack Connect mapping, which beats the workspace default. Anything unmapped still counts as untracked time — it just won't come pre-tagged with a project.
Run your timer from Slack — /pp
Once it's set up, control your own timer without leaving Slack. Every reply is private to you.
/pp start [project] [description]— start a timer. Lead with a project name to attach it:/pp start Acme fixing the header./pp stop— stop the running timer/pp pause·/pp resume/pp switch <project>— stop, then start on another project/pp log <duration> <description>— log a finished entry:/pp log 1h30m sprint planning(1h30m,90m,1:30, and1.5all work)/pp status— what's running ·/pp today— today's entries
Type these anywhere in Slack — a channel, or the direct message with ProjectPacer. Only you see the reply.
/pp acts on your own time, in a workspace you can track time in — the same permissions you have in the app apply. If your workspace uses timesheet approvals or locking, /pp (and Log all) won't write into a period you've already submitted, that's been approved, or that's locked; you'll get a note to ask an admin to reopen it.
Notifications
ProjectPacer can DM you as @ProjectPacer. Everything is off until you turn it on, under Settings → Notifications — where you choose the channel for each nudge (a Slack DM, a desktop notification, a browser alert, or any combination). See Notifications for the full channel grid; below is what the Slack DMs themselves look like. The four types:
- Things to review — meetings you haven't logged, and entries that look mis-attributed. Only the suggestion types you've kept on under AI suggestions are counted, so a type you switched off there won't surface here either. The DM names each meeting and the project it would land on, and Log all logs exactly that list — nothing you can't see. By default this is one roundup a day; flip on Nudge me during the day to get it intraday instead — batched a few hours after something's pending and never more than once every four hours, so it stays a couple of pings, not a stream.
- Running-timer nudge — when a timer looks left-on: it's been running but your connected sources have gone quiet, so it's probably still ticking after you stopped. The more sources agree, the sooner it arrives (and a live meeting holds it back) — the same call the in-app Overrun suggestion makes. Stop it right from the DM.
- Start-a-timer nudge — the opposite catch: you're clearly at your desk during working hours but no timer is running, so you're probably tracking nothing. Start timer begins a blank timer on your default workspace — pick the project in the app when you get a sec. It fires at most once per lull (never every few minutes), stays quiet outside your working hours and on weekends, and holds off if you've stopped a timer in the last half hour.
- Daily digest — a summary of what you tracked, at the end of your workday. It also closes out the day, surfacing anything still left to review no matter how recent — the catch-all the intraday nudges deliberately hold back on.
It only knows you're at your desk from your presence signals, and it reads them together rather than firing on a single stray ping. The desktop app treats waking or unlocking your computer as here and keeps you there until it idles, locks, or sleeps — a real working window, read as away the moment you step off. Slack presence adds the steady corroboration (it's polled while you're active, and catches mobile work too — turn Slack on under AI suggestions). With no presence signal connected there's nothing to read, so the nudge simply never fires; the more signals agree, the more sure it is — and it says so ("active in Slack and at your desk").
Quiet hours hold everything back overnight (10pm–7am by default), and each one has a Send a test so you can see it first. It won't nag: a digest arrives at most once a day, a running timer is nudged once, a start-a-timer nudge comes at most once every few hours, and a review item is DMed once and then never re-raised — you won't get the same suggestion two days running.
Quiet hours and the digest are read against your clock, using the time zone under Settings → Preferences — which also sets when your workday ends, and so when the digest arrives. If you haven't set a time zone, those hours are read in UTC and things can land at odd times.
A meeting that belongs to a project shared with you from another workspace isn't listed in the DM and isn't logged by Log all — log those from AI suggestions in the app, where your access to the other workspace is checked properly. Everything else works from Slack.
Turning it off
Disconnect a workspace any time from Settings → Apps & integrations → Slack — its mappings go with it, and your logged time is untouched. Turning the Slack source off under Settings → AI suggestions stops all recording and deletes the Slack timestamps already stored.
How signals like Slack turn into time you can review.