Generate a link the new hire opens themselves to set their password, sign their agreement, and confirm their schedule. Their account is created automatically when they finish.
lead_provider value on jobs plus every saved provider account).
contact_source on incoming leads (we lowercase + strip spaces automatically).| Worksnap ID | Name (in Worksnaps) | Assigned to dashboard user | |
|---|---|---|---|
| Loading… | |||
View all processed payment receipts
Real-time analytics and insights from your GoHighLevel integration.
Sync data from your GoHighLevel account to view analytics and insights.
Set up webhooks in GoHighLevel to automatically sync data without manual daily syncs.
contact.created ✅ contact.updated
Create and manage email templates with variables and signature blocks for client communications.
Domain verified? Send a test email to confirm everything works.
📧 Open email test page →Open the Email Template Builder to create templates for quotes, agreements, payment reminders, and more.
📧 Open Template Builder →Login hours + shift activity per rep, from in-app work sessions. Hours stop counting after ~5 min idle. (While we run alongside Worksnaps, treat these as the upcoming source of truth.)
| Rep | Hours | Files | Calls | Texts | Agmts | Pmts | $ Taken | Quotes | Xfers |
|---|---|---|---|---|---|---|---|---|---|
| Pick a range and Apply. | |||||||||
Every action reps take that touches a lead — status changes, pricing edits, agreement sends, bookings, etc. Newest first.
When a job's inventory was added by a QA, its payment notification goes only to this Slack channel instead of the normal one. Enter a channel ID (e.g. C0123ABC) or #channel-name. The Slack bot must be a member of the channel.
The fixed list reps pick from on the lead profile. Reps can select & add these (and adjust the price per job) but cannot create their own. Edit the name + default price, remove unwanted ones, or add new rows here.
One email goes out each morning for a lead's first 30 days, automatically (it stops when the lead is booked, cancelled, or unsubscribed). Edit any day's subject & body below — leave a day blank to use the built-in default. You can use {{firstName}}, {{customerName}}, {{movingFrom}}, {{movingTo}}, {{pickupDate}} in your text; an unsubscribe link is added automatically.
Control how leads are sorted in the jobs table.
Set priority (0–100), callback rules, and categories per status.
| Status key | Display name | Category | Priority | Max attempts | Wait times (min) | Callback | Cadence (hrs) |
|---|
Priority (0–100): Higher number = shows first in the jobs table. e.g. New Lead = 100, Callback = 90, Booked = 5. Overdue callbacks get +50 boost automatically.
Max attempts: 0 = unlimited. After max is reached, no more callbacks are scheduled.
Wait times: Comma-separated minutes for each attempt (e.g. 5, 15, 60, 1440 = 5min → 15min → 1hr → 1day). Last value repeats for extra attempts.
Callback: User picks = closer chooses date/time. Cadence = auto-calculated from wait times.
Manage discount types available in the lead profile dropdown.
Dispositions synced from Dialerr with their callback wait times. Sync pulls latest from Dialerr API.
| Disposition | Category | Final | Maps To Status | Wait Times | Synced |
|---|---|---|---|---|---|
| Click Refresh to load | |||||
How the move cost is calculated:
Move cost = Cubic feet × the $/CF rate for the move's distance
…then the Minimum charge is applied as a floor. These are the exact numbers used on every lead's quote.
Bigger jobs (more cubic feet) can be priced lower per cf — set a different $/cf for each cube tier. Edit the tier breakpoints above.
A move's cost never drops below this, no matter how small the job.
Leads whose pick-up falls in one of these areas get a red flag on the lead profile (higher cost / limited availability). Match by State (2-letter), City name, or Zip prefix (e.g. 81 = all 81xxx). Flag only — the rep adjusts the price manually.
| Match by | Value | Note (shown on the flag) |
|---|