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.
Overview
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
- A Harvest account with at least Manager access
- Your Harvest Account ID (found in Harvest â Settings â Integrations)
- A Personal Access Token (generated in Harvest â Developer Tools)
Open Settings â Integrations â Harvest
Press â, to open Settings, then navigate to Integrations.
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.
Test the connection
Click Connect. Warren fetches your Harvest projects to verify the credentials work.
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:
| Direction | What 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.
Invoices from Harvest
Warren pulls invoices directly from Harvest and displays them in the Invoices section. You can:
- Filter by status: Draft, Open, Partial, Paid, Closed
- Search by invoice number, client name, or subject
- See monthly totals: paid, outstanding, overdue
- Link a Harvest invoice to a specific Warren project
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.
What you'll need
- A Slack workspace where you have App installation permission
- About 3 minutes
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
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.
Copy your Bot Token
After installing, go to OAuth & Permissions. Copy the Bot User OAuth Token â it starts with xoxb-.
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-.
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.
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.
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 message | What it does |
|---|---|
@warren log 3h brand refresh | Logs 3 hours to a project matching "brand refresh" |
@warren log 1.5h on pitch deck today | Logs 1.5 hours today |
@warren log 2h discovery yesterday | Logs 2 hours to the previous day |
@warren hours | Shows your logged hours for the current week |
@warren help | Lists available commands |
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:
- Hours logged per project this week
- Budget burn status for active projects
- Team utilization overview
- Any projects flagged as At Risk or Over Budget
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.
What you'll need
- A web host with PHP 8.0+ and MySQL 5.7+ (or MariaDB 10.3+)
- About 5 minutes to set up the server
- The Warren Sync server code and Slack app manifest (available on Gumroad)
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.
Connect Warren
Open Warren â â, Settings â Warren Sync. Enter your server URL, Workspace ID, and credentials. Toggle Warren Sync On.
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.
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.
