Integrations

Warren connects with Harvest for time tracking and invoices, Slack for conversational hour logging, and Microsoft Teams for weekly reporting. Harvest sync, Slack, and Warren Sync all run on a self-hosted server — the server code and Slack app manifest are available on Gumroad. MS Teams reporting uses an incoming webhook and needs no server. All integrations are optional — use what fits your studio.

👤
Role required: Admin — All integrations are configured in Settings. Only Admins can access Settings.

Overview

⏱ Harvest — time entries & invoices
đŸ’Ŧ Slack — hour logging & summaries
đŸŸĻ Microsoft Teams — weekly reports

Connecting Harvest

Harvest is a time tracking and invoicing tool. When connected, Warren imports time entries as logs and pulls invoices into the Invoices section.

What you'll need

1

Open Settings → Integrations → Harvest

Press ⌘, to open Settings, then navigate to Integrations.

2

Enter your credentials

Paste your Harvest Account ID and Personal Access Token. Warren stores these in your macOS Keychain — they're never sent to any server except Harvest's.

3

Test the connection

Click Connect. Warren fetches your Harvest projects to verify the credentials work.

4

Map your users

Warren shows each Harvest user and asks you to match them to a Warren team member. This is how time entries get attributed to the right person.

Time sync

Once Harvest is connected, Warren can sync time entries in both directions:

DirectionWhat happens
Harvest → Warren Time entries logged in Harvest appear as Warren time logs. Useful if your team already uses Harvest's timer.
Warren → Harvest Hours logged in Warren (or via the Slack bot) are pushed to Harvest. Keeps your Harvest reports accurate.

Sync runs automatically in the background, or you can trigger it manually with the â†ģ Sync button in the Invoices toolbar.

âš ī¸
The first sync imports all historical Harvest entries. Depending on your Harvest history, this can take a minute. Do it when you're not mid-session.

Invoices from Harvest

Warren pulls invoices directly from Harvest and displays them in the Invoices section. You can:

💡
Linking invoices to projects feeds their amounts into the burn rate calculation. An invoiced amount is shown separately from unbilled hours so you can see exactly what's been billed vs. what's still outstanding.

User & project mapping

Warren maintains a mapping table that links Warren team members and projects to their Harvest equivalents. You can review and edit these in Settings → Harvest → Mappings.

If a team member logs hours in Warren but they're not mapped to a Harvest user, those entries won't sync to Harvest. Check the mapping table if you notice missing entries.

Connecting Slack

The Warren Slack bot lets your team log hours directly in Slack without opening the app. It also sends weekly burn rate summaries to a channel of your choosing.

â„šī¸
Warren uses a self-hosted Slack app model — each workspace creates their own private Slack app using Warren's configuration. Your tokens stay on your Mac and are never sent to any Warren server.

What you'll need

1

Create a new Slack app from the Warren manifest

Go to api.slack.com/apps → Create New App → From an app manifest. Choose your workspace, then paste the YAML below into the manifest editor and click Next.

display_information:
  name: Warren
  description: Log hours and track project burn rate from Slack
  background_color: "#5B4FE9"
features:
  bot_user:
    display_name: Warren
    always_online: true
oauth_config:
  scopes:
    bot:
      - chat:write
      - im:history
      - im:write
      - app_mentions:read
      - users:read
      - channels:history
settings:
  event_subscriptions:
    bot_events:
      - message.im
      - app_mention
  interactivity:
    is_enabled: true
  socket_mode_enabled: true
  token_rotation_enabled: false
2

Install the app to your workspace

Review the summary and click Create. Then go to Settings → Install App and click Install to Workspace. Approve the permissions.

3

Copy your Bot Token

After installing, go to OAuth & Permissions. Copy the Bot User OAuth Token — it starts with xoxb-.

4

Generate an App-Level Token

Go to Basic Information → App-Level Tokens → Generate Token and Scopes. Name it anything (e.g. "Warren Socket"), add the connections:write scope, and click Generate. Copy the token — it starts with xapp-.

5

Add both tokens to Warren

Open Warren → ⌘, Settings → Slack. Enable the Slack Bot toggle, paste your Bot Token (xoxb-) and App Token (xapp-), then click Save Tokens.

6

Link your team members

Go to Team, open each team member's profile, and set their Slack Member ID. This tells Warren who is logging when someone sends a message. To find a Slack Member ID: in Slack, click the person's name → View full profile → three-dot menu → Copy member ID.

âš ī¸
Team members without a linked Slack ID can still send commands, but their hours won't be saved to any project. Warren will warn them in Slack to ask a manager to link their profile.

Linking team members to Slack

Warren matches incoming Slack messages to team members using their Slack Member ID. Without this, hours logged in Slack won't be attributed to anyone.

To link a member: go to Team → open the team member → set their Slack Member ID.

To find someone's Slack Member ID: in Slack, click their name → View full profile → three-dot menu → Copy member ID. It looks like U012AB3CD.

Logging hours via Slack

Once connected, team members can log hours by mentioning the bot in any channel or DMing it directly.

Basic syntax

Example messageWhat it does
@warren log 3h brand refreshLogs 3 hours to a project matching "brand refresh"
@warren log 1.5h on pitch deck todayLogs 1.5 hours today
@warren log 2h discovery yesterdayLogs 2 hours to the previous day
@warren hoursShows your logged hours for the current week
@warren helpLists available commands
â„šī¸
Warren matches the project name you type against your active projects. If there's ambiguity, the bot will ask you to clarify by number. You can also set a Slack alias for each team member in their Warren profile so the bot knows who's logging.

Streak tracking

Warren tracks each person's daily logging streak and celebrates milestones in Slack. Streaks encourage consistent time logging across the team — a common pain point in design studios.

Weekly burn rate summaries

Warren can post a weekly burn rate summary to a designated Slack channel. It shows:

To configure: Settings → Slack → Weekly Summary → choose a channel and a day/time to post.

Warren Sync

Warren Sync is Warren's self-hosted synchronization solution. It lets you keep Warren data in step across multiple Macs and share read-only project views with clients — all on your own domain.

â„šī¸
Warren Sync requires a self-hosted PHP/MySQL server. See the Warren Sync documentation for full installation instructions.

What you'll need

1

Install the sync server

Upload the warren-cloud-sync/ folder to your web host, configure your database, and run the web installer. See Install the sync server for detailed steps.

2

Connect Warren

Open Warren → ⌘, Settings → Warren Sync. Enter your server URL, Workspace ID, and credentials. Toggle Warren Sync On.

3

Repeat on every Mac

Install Warren on each Mac and connect it to the same server with the same credentials. All devices will share the same workspace data.

Client share links

Once Warren Sync is configured, you can generate read-only project URLs for your clients. Each link can be password-protected and given an expiry date.

To create one: open a project → click Share → set optional password and expiry → Generate Link. See Client share links for more.

💡
Warren Sync uses a last-write-wins strategy. Warren pushes a full snapshot after every save and pulls on launch. Let one device finish saving before starting work on another to avoid overwriting work.

Microsoft Teams reporting

Warren can post the same weekly report to a Microsoft Teams channel. Configuration is in Settings → Integrations → Microsoft Teams.

You'll need a Teams Incoming Webhook URL from your Teams workspace. Paste it into Warren and Warren will send reports to that channel on your chosen schedule.