About Justworks
Justworks is a Professional Employer Organization (PEO) and HR platform that covers payroll, benefits, time off, and employee data. The Serval Justworks integration is currently in Beta. Each Serval connection maps to exactly one Justworks company, and Serval automatically names the connection after the company it finds during setup. Serval only ever talks to Justworks’s official API address (public-api.justworks.com). Authentication: Customer-provided OAuth 2.0 application. You supply your own Justworks Client ID and Client Secret, pick permission presets, and approve access in Justworks. Serval refreshes tokens automatically while the connection is in use - no manual token upkeep (see “Connection stops working after a long idle period” below for the one exception). Data sync: On-demand only. There are no background syncs, triggers, or webhooks. Workflows call the Justworks API when they run, and four automated health checks verify the connection.What the Justworks integration enables
Get your credentials
Serval connects using an OAuth application that you create in your own Justworks account. The application gives you a Client ID and a Client Secret, and it controls which permissions (scopes) Serval is allowed to request.Open Justworks Integrations settings
Set the redirect URI
Enable the scopes you plan to use
Optionally add branding
Record the Client ID and Client Secret
Connect in Serval
Open the Justworks connect form
Enter your Client ID
Enter your Client Secret
Choose Permission Presets
Connect and authorize in Justworks
Confirm the connection
Verifying the connection
After connecting, Serval runs four health checks against your Justworks company:Gotchas and troubleshooting
Permission errors: presets in Serval must match scopes on your OAuth app
Permission errors: presets in Serval must match scopes on your OAuth app
Connect fails with 'Failed to fetch company info from Justworks API'
Connect fails with 'Failed to fetch company info from Justworks API'
'Invalid or expired OAuth state' or 'OAuth session expired, please try again'
'Invalid or expired OAuth state' or 'OAuth session expired, please try again'
Changing scopes or rotating credentials requires a full reconnect
Changing scopes or rotating credentials requires a full reconnect
Connection stops working after a long idle period
Connection stops working after a long idle period
What health check error hints mean
What health check error hints mean
- Unauthorized (401): “The OAuth token may have expired or been revoked. Please reconnect your Justworks integration.”
- Forbidden (403): “This may be due to missing OAuth scopes. Please check that your Justworks application has the required permissions.”
- Not Found (404): “The requested resource was not found. This may indicate a configuration issue.”
- Server error (500): “Justworks API is experiencing issues. Please try again later.”
- Anything else: “Error: [details]”
The integration is read-only except for deductions
The integration is read-only except for deductions
Sensitive data presets are opt-in and off by default
Sensitive data presets are opt-in and off by default
One connection per Justworks company
One connection per Justworks company
Need help? Contact support@serval.com for assistance with your Justworks integration.

