Jobber OAuth Integration Architecture
Purpose
Pass booked estimates from GHL pipeline to client's Jobber account for fulfillment operations.
Components Built
1. Jobber Developer App
- Create app in Jobber developer portal
- Get client ID and secret
- Note: Free tier limited to 5 clients
2. OAuth Callback Endpoint
Built on iron funnels infrastructure:
- Endpoint:
/api/jobber/callback - Purpose: Retrieve authorization code after client clicks auth link
- Exchanges code for access/refresh tokens
3. Token Storage
Superbase columns needed:
jobber_access_tokenjobber_refresh_tokenjobber_token_expires
4. Magic Link System
Generate per-client authorization links:
- Client clicks magic link
- Redirects to Jobber OAuth consent
- Client approves permissions
- Callback captures tokens
- Tokens stored in client record
OAuth Scopes Needed
- Read/write requests
- Read/write clients
- Read/write jobs
- Calendar access
- Custom fields (for mapping GHL data)
Workflow Trigger
GHL Pipeline Stage: "Estimate Booked" (or "Won")
→ GHL Workflow: Send webhook to n8n
→ n8n: Create request/job in Jobber via API
→ Jobber: Appears in client's Jobber calendar
Architectural Decision
Recommendation: Use GHL calendar instead of Jobber for booking
- Conversation AI can only book to GHL calendar
- Jobber integration becomes optional for fulfillment sync
- Keeps system GHL-native first
Client Migration Plan
If client uses Jobber for scheduling:
- Phase 1: Book in GHL calendar
- Phase 2: Sync to Jobber post-booking (optional)
- Phase 3: Full Jobber integration when volume justifies
Testing the Integration
- Create magic link for test client
- Click link, authorize Jobber
- Verify tokens stored in Superbase
- Test creating a job via API
- Verify appears in Jobber dashboard