Pick a section to manage it.
| Rep | Doors | Convos | Appts | Closed | Close % | |
|---|---|---|---|---|---|---|
| Loading rankings… | ||||||
Who's producing, who isn't — and exactly what to do about it.
Pick a settings area to manage.
Update your own super-admin contact info and password.
| Company | Plan | Status | |
|---|---|---|---|
| Loading… | |||
Pick a section to manage it.
Group multiple companies under one parent. Enterprise orgs add a per-company fee on every company plus one org-wide fee, billed due on receipt — lock an org to immediately suspend every company under it until they pay.
Set Organization monthly to bill one flat amount (this is what the contract shows). Leave blank to itemize each company + fees.
One invoice itemized by company, sign-then-pay to the org's billing contact. Locking suspends every company in the org until paid.
Save the organization's card to charge its monthly automatically on a 30-day cycle (Square).
| Organization | Companies | Enterprise | $/mo | Status | |
|---|---|---|---|---|---|
| Loading… | |||||
Requests submitted from the “Request a Demo” form on the landing page. Every super-admin is emailed when one comes in.
| Received | Name | Company | Contact | Team / Industry | Status | |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Keys for the email + SMS alerts that fire when a teammate is offline. Stored securely server-side and never shown again after saving. Leave a secret blank to keep the current value.
Send from your own email over SMTP — no SendGrid, no sender-verification. For Gmail / Google Workspace use host smtp.gmail.com, port 587, and a Google App Password (not your normal password).
Point Telnyx's webhooks at https://youtilityknock.web.app/telnyx/sms (Messaging Profile) and https://youtilityknock.web.app/telnyx/voice (Call Control Application) — that's what routes inbound texts/calls to the right rep's ported number.
Sends a real push and reports what Apple said for each registered device. Email and push fire from the same trigger, so an email arriving proves the trigger worked and tells you nothing about the push. Leave the box empty to test your own phone, or enter one of your reps' emails.
OAuth credentials so reps can link Google / Outlook calendars (two-way sync). Secrets are stored server-side and never shown again. Leave a secret blank to keep it.
The homeowner-data keys powering address lookups + skip-trace. Overrides the server defaults.
Asks both providers about ONE real address with the keys above, and reports exactly what each said. A 401/403 means the plan doesn't cover permits; an empty 200 means the provider has no record for that address. Those look identical on the Lead Gen screen, and telling them apart used to cost a whole pull. This makes a handful of API calls — ATTOM permits is one, and any BatchData path that answers 200 may count as one lookup.
Transcribes rep pitch recordings (Google Speech-to-Text) and grades them (Claude). Enable the Speech-to-Text API in the youtilityknock Google Cloud project, then paste an API key restricted to it, plus an Anthropic key.
Subscription tiers and what each unlocks. Assign a package to each company in Companies, or toggle individual services per company there. Enterprise shows “Contact for pricing.”
| Plan | Price | Max users | Includes | |
|---|---|---|---|---|
| No plans yet. | ||||
Pick which gateway charges your companies, then connect its credentials. Secret keys are stored server-side and never shown again.
Switch the dropdown to configure either provider. Only the active one is used to bill.
sq0idp-, sandbox with sandbox-sq0idb-) → paste into Application ID.L) of the location that should receive payments → paste into Location ID.https://youtilityknock.web.app/square/webhookpayment.created and payment.updated.Upcoming charges, due dates, and outstanding balances across every company.
| Company | Monthly | Next charge | Outstanding | Status |
|---|---|---|---|---|
| Loading… | ||||
| Invoice | Company | Amount | Due | Status | |
|---|---|---|---|---|---|
| Loading… | |||||
Turn individual tools on/off for just this company — overrides the package.
Your company's name and general contact info.
Assigning a closer used to hand the appointment over entirely, so the setter's calendar emptied as they booked. Appointments made from 17 Aug stay with their setter automatically — this puts the earlier ones back. The setter was never lost, so nothing is being guessed at: it restores a field that was overwritten. Appointments with no setter recorded (a closer's own booking) are left alone.
Shown on every rep's RallyCard unless a rep uploads their own logo override.
Reps' card member numbers show as this prefix + their number (e.g. "YT195474") instead of a plain, comma-formatted number.
Choose what each role sees at login and in the app. Team permissions are a locked baseline added on top of these. Company Admin always sees everything.
Paste a custom service agreement for this company. When set, it replaces the standard agreement in the preview and in the emailed sign-then-pay contract. Leave blank to use the standard one. Basic formatting: ## Heading, - bullet.
Fixed monthly base (billed the 1st) that includes the first N sold jobs; each sold job beyond that is billed per-job, weekly. Standard recurring billing is off while this is on.
Newest first. In manual mode, confirm each sold job and decide any undispositioned appointments, then Approve & bill (auto-charges the card on file, or emails an invoice due Wednesday). In auto mode, weeks bill automatically each Sunday.
Loading…
One platform-level key the CRM uses to provision new companies (POST /crm/provision) before they exist in Knock. After a company is created it gets its own CRM link — set the per-company webhook + secret on the company card (Manage → CRM link).
CRM endpoints (send header x-crm-secret): POST /crm/provision · GET /crm/export?companyId= · POST /crm/ingest at https://youtilityknock.web.app
One platform-level Sun Service admin key. With it set, you can generate a company's Sun Service API key straight from its sunservice.io link card (Manage → sunservice.io link → Generate), instead of hand-editing Firestore. Get this value from Sun Service's _config/provisioning.adminKey.
Every company starts with Manager and User. Add custom titles mapped to a base tier; rank orders the hierarchy (higher = more senior).
| Title | Base tier | Rank | |
|---|---|---|---|
| Select a company… | |||
Optional. Group teams into a region and assign a regional manager — every team and rep in the region rolls up to them (downline, reports, leads, calendar).
How appointments are booked, formatted, and routed for this company. Reps book from the Map / Leads screens; these rules shape what times they can pick.
When on, setters never choose a closer: they see only open time slots (read from every closer's calendar so nobody is double-booked), and a free closer is auto-assigned using the method above. This is the mode the Scheduler (team dispatch) uses.
Mark who's a closer in the Accounts list below. A closer dispositions each appointment on-site; off-site dispositions are logged as a closer no-show.
If closers are stuck behind the disposition pop-up, this closes out every past-due appointment they never dispositioned (marked "auto-cleared" — counts as dispositioned, not as a sit/close/no-show) so they can get back into the app right away. Only affects appointments already past their time + 2h.
0 means unlimited. The app blocks assigning a rep beyond this many territories.
What this company pays for leads you supply, and what those leads turned into. Every price is in dollars and every rate starts at zero — nothing is charged until you set a price here.
The other side is still counted either way, so switching model later doesn't blind you to what it would have earned.
What a pull spends with ATTOM, BatchData, Anthropic and Google. Bills on top of the model above; leave at 0 to absorb it.
| Pipeline | Delivered | Knocked | Contacted | Appointments | Sold | Close rate |
|---|---|---|---|---|---|---|
| No leads delivered yet. | ||||||
| What | Quantity | Charged | Not yet invoiced |
|---|---|---|---|
| Nothing recorded yet. | |||
General options for how this company operates.
Add the questions your setters should answer at the door. Photo and file fields let them attach a picture of the home, a utility bill, or any document you need with the appointment. It starts as the standard home & bill photos — change them, add to them, or leave them exactly as they are.
Set the price and install adder for each battery. These seed the closer's Battery Tool proposals; a closer can still override on an individual proposal. Leave a row blank to omit it.
| Offer | Battery | Price / unit ($) | Install adder ($) |
|---|
The reservation deposit shown on the proposal's pricing slide, and your Sungage application link. Leave the deposit blank to use the $2,500 default.
The lender plans shown on the battery proposal. Set the finance company, APR, term, and dealer fee, and toggle each on or off. Leave all off/empty to use the built-in Sungage plans.
The dealer fee is what the lender keeps out of the payout. To net your price the amount financed has to be grossed up — financed = price ÷ (1 − fee) — so a lower APR bought down with a bigger fee still costs the homeowner more. Pick a battery (or type an amount) to see the real numbers before you save.
| Plan | Dealer fee | Fee costs | They finance | Est. monthly |
|---|
Used when a closer signs a customer up. Leave the installer name to fill the contractor-of-record line; add anyone who should receive a copy of every signed agreement.
Powers the rep Field Playbook in the Battery Tool. Edit these to keep the rate-reality talk track and utility export rates current for this company — they override the built-in defaults. Wrap words in **double asterisks** to bold them.
| Utility | They pay | Export label | Export value |
|---|
| Utility | They pay (¢) | Buy-back (¢) |
|---|
Connect this company to its account in youtilitycrm.us. Leads & appointments sync both ways: Knock pushes changes to the webhook below; the CRM pulls via /crm/export?companyId=… and pushes via /crm/ingest, authenticating with this company's secret.
Connect this company to its organization in sunservice.io. When a rep books an appointment (or marks a door sold), the chosen service is pushed to Sun Service as a scheduler appointment + quote carrying the homeowner's data. Paste this company's Sun Service API key (ss_live_…) — get it from sunservice.io provisioning.
Give an account that already exists — at another company — access to this one as well. They keep everything they have there, and choose which company they're working for each time they sign in.
Double-click a company, region or team to expand it.
| Name | Role | Reports to | Last active | Status | ||
|---|---|---|---|---|---|---|
| Select a company… | ||||||
Incentives reps see in the app. Benchmark rewards auto-unlock at a target; store rewards are redeemed with points.
| Reward | Type | Who | Condition | Status | |
|---|---|---|---|---|---|
| Select a company… | |||||
Company milestone ladders reps climb in the app. Each step has its own reward, so you can celebrate every milestone toward the big goal — great for culture.
| Rep | Reward | When | Status | |
|---|---|---|---|---|
| No redemptions yet. | ||||
Removing someone hands their leads to another rep and deletes their profile. This finds what's left of them and puts it back — the profile, their login (under the same ID, so their history re-links) and their book. Step 1 only looks; nothing changes until you press Restore.
When a lead's disposition changes to the trigger below, wait the delay, then send — only if the homeowner has opted in to texts (captured at the door) and hasn't replied STOP. Texts send from the rep's own ported number when they have one, otherwise the platform default.
Placeholders: {{firstName}} {{repName}} {{repPhone}} {{companyName}}
| Rule | Trigger | Delay | Channel | Status | |
|---|---|---|---|---|---|
| Select a company… | |||||