Connect Harvest, QuickBooks, Xero and Slack
Integrations live under “Settings”, then “Import” or “Integrations”. Both pages are for owners and admins.
Import from Harvest
Section titled “Import from Harvest”Sumhour reads Harvest over its API. In Harvest, open Settings, then Developers, and create a personal access token. Copy it and the account id.
On the Import page, fill in “Personal access token” and “Account id”. “Time from” and “Time to” are optional and only limit time entries and expenses; everything else comes across whole. Press “Count what would be imported” for a dry run that only counts. Then press “Import now”. It runs in the background; if it fails partway, “Resume” continues.
- Clients, projects and tasks match existing ones by name, and people match by email, so a half set-up workspace merges instead of doubling. Running the import again adds nothing twice.
- New people get an account and sign in later with an email link. Their role follows their Harvest access role; Harvest contractors become contractors.
- Harvest keeps no rate history, so current rates start on the import date. Each entry keeps the rates Harvest recorded on it.
- Invoices keep their Harvest numbers (an
H-prefix is added if a number is taken). Work Harvest already billed stays billed, so it never shows as uninvoiced in month end.
Not imported: Harvest’s roles, departments and employee ids, approval history (weeks arrive open; locked entries stay locked), retainer definitions, and receipts over 20 MB. The token is stored encrypted and dropped when the import finishes.
Import a CSV from Toggl, Clockify or anything else
Section titled “Import a CSV from Toggl, Clockify or anything else”Export a detailed report as CSV from Toggl Track or Clockify. Files from other trackers work if they have a header row with a date, a duration (or start and end times), a person and a project. Files can be up to 50 MB.
Choose the file and press “Check the file”. Toggl and Clockify exports are recognised. For other files Sumhour guesses the columns and shows the first five rows so you can correct the mapping. If dates could be read either way, pick the “Date order”. Then press “Import” with the row count.
Durations can be 1:30:00, 1:30, 1.5, 1h 30m or 90m. People match by email; a row with only a name is filed under you. Clients, projects and tasks match by name and are created when missing. Rows without a date, duration, person or project are skipped and listed. The same export imported twice adds nothing.
Revert an import
Section titled “Revert an import”Every finished or failed import has a “Revert” button. It deletes everything that run created, including time logged since on the projects it created, and removes the people it added. Records it only matched stay as they were.
QuickBooks Online and Xero
Section titled “QuickBooks Online and Xero”Under Accounting, press “Connect QuickBooks Online” or “Connect Xero” and approve access. QuickBooks then needs a “Service item” for invoice lines; Xero needs a “Sales account” and lets you pick whether “Invoices arrive as” approved or draft. Tax codes and a bank or deposit account for payments are optional.
Tick “Push every invoice when it is sent” to push automatically; a failed push never blocks the send. You can also press “Push” on an invoice (later “Push payments”), or open “Reconciliation” to see where every sent invoice stands and push up to 20 unsynced ones per click. Drafts are never pushed.
Customers match by exact name and are created with the client’s billing email. Sumhour checks your books for the invoice number first, so a retry never makes a duplicate. An invoice edited after pushing is not sent again; adjust with a credit note in your books.
Payments come back the other way too. When your bookkeeper records a payment against a pushed invoice in QuickBooks or Xero (a bank transfer, a cheque), Sumhour picks it up within three hours, records it with the date and reference, and marks the invoice paid when nothing is left to pay. “Check for payments now” on Reconciliation looks straight away. Credit notes and prepayments are not counted as money received. A payment already typed into Sumhour is matched rather than added twice, one that would take an invoice past its total waits for you to check, and a payment deleted in your books is removed from Sumhour as well.
Admins connect; accountants can push and use Reconciliation too. On Sumhour Cloud, QuickBooks Online and Xero open at launch. A self-hosted server needs its own app keys; until then the card says “Not set up on this server”.
HubSpot won deals
Section titled “HubSpot won deals”When a deal reaches a won stage in HubSpot, Sumhour can turn it into a client, a fixed-fee project and a payment schedule. An admin connects HubSpot once under Settings → Integrations → Won deals; a HubSpot Super Admin approves the access. Sumhour only reads deals, companies and contacts, and never changes anything in HubSpot.
Won deals wait on Projects → Won deals, with the company, the amount in the deal’s currency and the date it was won. Each one shows what Sumhour would create:
- Client: the client made from the same HubSpot company before, else a client of the same name, else a new one with the company’s address and the contact’s email as billing email.
- Project: the deal’s name, as a fixed-fee project with the deal amount as its fee and budget.
- Payment schedule: the workspace’s choice from Settings (50% up front and 50% on delivery to start with), or no schedule for one invoice of the full fee.
Change anything, then press “Create project”. The deposit is due straight away, as with an accepted estimate. “Not a project” puts a deal aside for good.
A won stage is any stage HubSpot marks with a 100% win probability, in every pipeline, so a renamed or custom “Signed” stage counts too. Sumhour looks every 15 minutes, and at once when you press “Check HubSpot now”. On the first connection it brings in deals won in the last 30 days. A project bills in its client’s currency, so a deal in euros goes to a client who bills in euros; if a client of that name bills in another currency, the new one is named with the currency, for example “Linden & Co (EUR)”.
On Sumhour Cloud, HubSpot opens at launch. A self-hosted server needs its own HubSpot app: the steps are in integrations/hubspot-app/README.md in the repository.
Suggestions from your calendar and GitHub
Section titled “Suggestions from your calendar and GitHub”Meetings and commits land in each person’s Suggestions tray, and nothing is logged until they press “Accept”. Accepted suggestions follow the same rules as any entry.
Calendars are personal: each person presses “Connect my Google Calendar” or “Connect my Outlook calendar” on the Suggestions page, or both. Sumhour reads only their own calendar (for Google, the primary one) and skips cancelled, all-day, declined and “free” events. Outlook works with work and school accounts and with personal Outlook.com accounts. The meetings also fill “From my calendar” in a new entry and the outlines on the Calendar view. GitHub is workspace-wide: an admin presses “Install the GitHub App”, picks repositories and can add teammates’ GitHub usernames. Commits match people by email, pull requests by username, and arrive grouped per person, day and repository with no duration, because a commit says nothing about hours.
Suggestions sync hourly, on each GitHub push, and when you press “Sync now”. On Sumhour Cloud, calendars and GitHub open at launch, once Google has approved the calendar access and Microsoft’s app is in place; a self-hosted server can use them now with its own Google client, Microsoft Entra app (with Calendars.Read) and GitHub App. More in tracking time.
Slack and Teams notifications
Section titled “Slack and Teams notifications”Workspace events can post to a Slack channel, a Microsoft Teams channel, or both, with no app to install in either.
- Slack: add Incoming WebHooks, pick a channel and copy the URL. Paste it under “Incoming webhook URL”, tick the events you want and press “Connect Slack”.
- Microsoft Teams: in the channel, open ⋯ → Workflows, pick “Send webhook alerts to a channel”, press Save and copy the link it shows. Paste it under “Workflows webhook link”, tick the events and press “Connect Microsoft Teams”. Each event arrives as a card with a button back to Sumhour. The old Teams “Incoming Webhook” connector stopped working in May 2026, so its links are refused.
You can post submitted, approved and sent-back weeks, new expenses, invoices and estimates going out, payments, voided invoices, new projects and clients, and write-offs. Each channel has its own list. Single time entries are left out on purpose. “Send a test message” checks the setup.
Webhooks
Section titled “Webhooks”Webhooks send signed JSON to your own endpoint, or to Zapier, Make or n8n. Under Webhooks, press “Add an endpoint”, enter the “Endpoint URL”, then tick “Every event, including ones added later” or pick events, and press “Save endpoint”.
The signing secret is shown once, right after saving. Later, “Show secret” reveals it and “New secret” replaces it (the old one stops working at once). Requests follow the Standard Webhooks format, with an HMAC-SHA256 signature in the webhook-signature header.
A failed delivery is retried seven times over nearly two days, with gaps growing from 1 minute to 24 hours, before Sumhour gives up; you can retry it by hand. After 20 failures in a row the endpoint pauses itself and says why. “Send test event” checks the receiver. Delivery logs are kept for 30 days. On Sumhour Cloud, endpoint URLs must be public https addresses.
Payloads and signature checking are in the webhook reference.
The Sumhour nodes for n8n go on npm as n8n-nodes-sumhour with the public launch. In n8n, open “Settings”, then “Community nodes”, press “Install” and enter the package name.
Make a token under “API tokens” in your account menu and paste it into a new “Sumhour API” credential in n8n. Tick only the permissions the workflow needs. Self-hosted Sumhour works too: put your server’s address in “Sumhour Address”.
The Sumhour node logs and changes time, starts and stops the timer, submits, approves or sends back weeks, adds expenses, clients and projects, drafts invoices, records payments and runs reports. Draft invoices are never sent from n8n. The node also works as a tool for the n8n AI Agent.
The Sumhour Trigger node starts a workflow within seconds of an event, such as “Invoice Sent”, “Payment Recorded” or “Week Submitted”. Turning the workflow on subscribes it in Sumhour and turning it off removes the subscription. It needs an owner’s or admin’s token with the events:write permission, because events carry the whole workspace, and your n8n has to be reachable from the internet.
