Frequently Asked Questions
Can't find your question? Email support@overtimelog.com or see the full contact page.
Privacy & data
Is my Slack data sent to any server?
slack.com (and, if you enable it, to the
AI endpoint you configured).
Can my employer tell that I'm using OvertimeLog?
What exactly is stored, and where?
%APPDATA%\OvertimeLog\ on Windows,
~/Library/Application Support/OvertimeLog on
macOS, ~/.local/share/OvertimeLog on Linux.
Full breakdown in the Privacy
Policy.
Does OvertimeLog collect analytics or telemetry?
What happens to my data if I uninstall?
Can I export all my data (GDPR Art. 20)?
Legality & compliance
Is it legal to use OvertimeLog?
Will my export be accepted as evidence?
Does OvertimeLog comply with GDPR?
Slack integration
Do I need admin permissions in Slack?
What Slack scopes does it request?
users:read for display names.
Exact list is shown in the OAuth consent screen during
setup and is documented in the in-app
Settings โ About page.
Can I disconnect Slack later?
What about AI summaries โ where do those go?
When should I use a manual entry vs a Slack interaction?
Slack interactions are detected automatically from after-hours messages in your workspace. They carry an SHA-256 evidence hash, a permalink back to Slack, and a timestamp captured at ingestion โ so a recipient can verify the row matches a real Slack event.
Manual entries cover the work that
didn't leave a Slack trace: a 90-minute incident debug
via PagerDuty, a client call on Zoom, a pairing
session in VS Code Live Share, a Saturday in the
server room. You log them by hand from the dashboard.
They flow into the same billing math and exports as
Slack interactions, but the PDF and Excel mark them
explicitly: [M] prefix on the channel,
a yellow row tint, an evidence row reading
[manually logged] with n/a (manual)
in the SHA-256 column. That difference matters โ the
recipient should see at a glance which rows are
cryptographically backed and which are user-attested.
The Free tier includes 5 manual entries per week within the same 14-day visibility window that applies to Slack data. Pro removes both limits.
If a manual entry overlaps with Slack messages (you logged 19:00โ21:00 manually but also sent Slack DMs at 19:30), the dashboard surfaces a yellow callout so you can decide which side to keep before exporting. OvertimeLog never auto-resolves overlaps.
How do I link tickets to my time?
Each row on the dashboard has a Ticket
column with a small + ticket button. Click
to pick a provider (Jira, Linear, GitHub, or a
custom one) and type the reference
(ENG-1234, BUG-567,
or the issue number for GitHub). Save with Enter
or click the chip to open the ticket in your
tracker.
OvertimeLog doesn't call the tracker's API at this
stage โ it just keeps the reference next to the
row and renders the right URL using a template you
configure once in
Settings → Ticket integrations
(e.g. https://acme.atlassian.net/browse/{ref}).
Your data stays local; no third party sees it.
API-driven title and status auto-fill is on the
roadmap as a Pro feature.
Linked refs show up next to the channel in the PDF
invoice (engineering | [T] ENG-1234)
and as a dedicated Ticket column
with a clickable hyperlink in the Excel export.
The Free tier lets you configure one provider at a time; Pro unlocks all four for per-link selection.
How do I connect Jira so titles auto-fill?
Pro users can connect a Jira Cloud instance and
OvertimeLog will auto-fill each linked row's
ticket title, status, and assignee on the
dashboard and in the PDF / Excel exports โ no
more manually typing "Migrate auth service to
OIDC" next to ENG-1234.
Set-up (one-time, ~30 seconds):
- Generate an API token at id.atlassian.com/manage-profile/security/api-tokens. Copy it.
- In OvertimeLog: Settings → Jira
API integration. Paste your site
URL (
https://your-org.atlassian.net), Atlassian email, and the API token. Save. - Click Test connection. You should see "โ Connected โ <Your name> on <your-site>.atlassian.net".
After that, every time you link a Jira ref on the dashboard the title shows up next to the chip within a second or two. Hover the chip for full status / assignee / last-cached timestamp. The โณ button on each row forces a fresh fetch; the dashboard also refreshes any ticket older than a week in the background when you open it.
Privacy: credentials are stored encrypted on your machine (same Fernet key as the Slack OAuth tokens). Only the issue keys you link leave your machine, and only to the Atlassian host you typed. See Privacy §5.4 for the full call list and data-flow disclosure.
Disconnecting: Settings → Jira → Disconnect clears the encrypted credentials immediately. Existing links keep their cached title until you re-link or clear them.
How do I connect Linear so titles auto-fill?
Same shape as the Jira integration above, just
talking to Linear: Pro users link
ENG-1234-style refs on the dashboard
and the title, workflow state, and assignee fill
in automatically โ on the dashboard and in PDF /
Excel exports.
Set-up (one-time, ~20 seconds):
- Generate a personal API key at
linear.app/settings/api.
Copy it (it starts with
lin_api_). - In OvertimeLog: Settings → Linear API integration. Paste the key. Save.
- Click Test connection. You should see "โ Connected โ <your name> on <your-workspace>".
After that, every Linear ref you link on the dashboard fetches its title within a second or two. The โณ button forces a refresh; the dashboard also refreshes any Linear ticket older than a week in the background when you open it โ the same TTL behaviour as Jira.
Privacy: the API key is stored
encrypted on your machine (same Fernet key as the
Slack OAuth tokens). Only the issue identifiers
you link leave your machine, and only to
api.linear.app. See
Privacy §5.5
for the full call list and data-flow disclosure.
Disconnecting: Settings → Linear → Disconnect clears the encrypted key immediately. Existing links keep their cached title until you re-link or clear them.
How do I connect GitHub so issue titles auto-fill?
Same shape as the Jira and Linear integrations
above, just talking to GitHub: Pro users link
bare issue numbers (e.g. 42) on the
dashboard and the title, open/closed state, and
assignee fill in automatically โ on the
dashboard and in PDF / Excel exports. v1 wires
up one repository per OvertimeLog instance;
multi-repo lands in a follow-up slice.
Set-up (one-time, ~30 seconds):
- Generate a Personal Access Token at
github.com/settings/tokens. Only
repo:read(classic) or "Read access to issues" (fine-grained) is needed. Copy it. - In OvertimeLog: Settings → GitHub API integration. Type the repository owner (your username or organisation), the repository name, and paste the token. Save.
- Click Test connection. You should see "โ Connected โ <your name> on <owner>/<repo>".
After that, every GitHub ref you link on the dashboard fetches its title within a second or two. The โณ button forces a refresh; the dashboard also refreshes any GitHub ticket older than a week in the background when you open it โ the same TTL behaviour as Jira and Linear.
Privacy: the token is stored
encrypted on your machine (same Fernet key as
the Slack OAuth tokens). Only the issue numbers
you link leave your machine, and only to
api.github.com. See
Privacy §5.6
for the full call list and data-flow disclosure.
Disconnecting: Settings → GitHub → Disconnect clears the encrypted credentials immediately. Existing links keep their cached title until you re-link or clear them.
How do I connect Asana so task names auto-fill?
Same shape as Jira / Linear / GitHub: Pro users
link Asana task GIDs (the long numeric IDs in
a task's URL โ e.g. 1234567890123456)
on the dashboard and the task name, completion
state, and assignee fill in automatically โ on
the dashboard and in PDF / Excel exports.
Set-up (one-time, ~20 seconds):
- Generate a Personal Access Token at app.asana.com/0/my-apps. Copy it.
- In OvertimeLog: Settings → Asana API integration. Paste the PAT. Save.
- Click Test connection. You should see "โ Connected โ <your name> on <your-workspace>".
After that, every Asana GID you link fetches its task name within a second or two. The โณ button forces a refresh; the dashboard also refreshes any Asana task older than a week in the background when you open it โ the same TTL behaviour as Jira / Linear / GitHub.
Privacy: the PAT is stored
encrypted on your machine (same Fernet key as
the Slack OAuth tokens). Only the task GIDs
you link leave your machine, and only to
app.asana.com. See
Privacy §5.7
for the full call list and data-flow disclosure.
Disconnecting: Settings → Asana → Disconnect clears the encrypted PAT immediately. Existing links keep their cached title until you re-link or clear them.
Licensing & payments
How is the Free tier different from Pro?
Does one licence cover all my devices?
How do refunds work?
Do I need a licence renewal to keep using Pro?
Technical
What are the system requirements?
Can I audit the source?
TODO.md.
Where is the database, and can I back it up?
overtime.db inside the app-data folder (see
Privacy FAQ above). It's a plain SQLite file โ back it up
however you back up your other files. Restore by copying
it back into the same folder before starting the app.
Is there a CLI or API?
http://localhost:5000. There's a small HTTP
API used by the UI โ you can script against it if you want
to, but we haven't formally committed to stability. A
proper CLI is on the longer-term wishlist.