Configuration
πŸ”— API Connections
🌐 Google Integration !
πŸ’³ Payment Processing
πŸ’΅ Commission Tiers
⚑ Webhooks
Administration
πŸ‘₯ Users & Access
🏒 Business Info
πŸ’¬ Message Templates
Kanban Control Center
πŸ—‚οΈ Boards & Stages
βš™οΈ Rules & Fire Log
🏷️ Labels & Cards
πŸ‘· Crew Defaults
System
πŸ’Ύ Backup & Export
Connected
β„Ή
RingCentral credentials are stored in Railway environment variables (RC_CLIENT_ID, RC_CLIENT_SECRET, RC_JWT_TOKEN). Use the Railway Variables tab to update them.
Phone Number
Test Mode
β„Ή
Stripe keys are stored in Railway environment variables (STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET). Update them in the Railway Variables tab.
Mode
Statement Descriptor
Appears on customer bank statements. Max 22 characters.
Webhook Endpoint
https://app.wilkersonfloors.com/api/hooks/stripe
Add this URL in Stripe Dashboard β†’ Developers β†’ Webhooks. Events: checkout.session.completed
Pending Key
⚠
Contact [email protected] to request your X-Application key before this integration can be activated.
API Key REQUIRED
X-Application Key REQUIRED
Webhook URL
https://app.wilkersonfloors.com/api/hooks/measuresquare
Not Configured
Catch Hook URL REQUIRED
Create a Zap with "Webhooks by Zapier β†’ Catch Hook" trigger. Paste the URL here.
Trigger Events
Pending Approval
β„Ή
Wisetack requires merchant approval before API access is granted. Apply at wisetack.com/merchants β†—.
Merchant ID
API Key
Connected
βœ“
Supabase is the primary database for all app data. Connection is established via the anon key in shared.js and the service key in Railway environment variables (SUPABASE_URL, SUPABASE_SERVICE_KEY).
Project URL
On Hold
⏸
QuickBooks integration is deferred until Phase 3. Webhook stub is active in server.js. Credentials can be pre-configured here for when you're ready to activate.
Client ID pre-configure
Client Secret
Webhook URL
https://app.wilkersonfloors.com/api/hooks/quickbooks
β„Ή
Google credentials (CLIENT_ID, CLIENT_SECRET, REFRESH_TOKEN, MAPS_API_KEY) are stored in Railway environment variables β€” never in the database. Use the Connect button below to initiate the OAuth flow and generate your refresh token. You will need to add the resulting token to Railway manually.
πŸ” OAuth Connection
Not Connected
Connected Account
Last Token Refresh
βœ‰οΈ Gmail
Not Connected
Shared Inbox
Read, send, and reply to emails via [email protected]
Inactive
Unread Count
Dashboard stat card shows live unread count
β€”
Auto-log Sent Emails
All emails sent from app are logged to Communications
Always On
πŸ‘₯ Google Contacts
Not Synced
Auto-sync Schedule
Contacts synced automatically once daily
Daily
Last Sync
Never
Contacts in Database
β€”
πŸ—ΊοΈ Google Maps Platform
Not Configured
Address Autocomplete
All address fields across all modules
Inactive
Embedded Maps
Job site maps on Crew Mobile, Work Orders, Kanban
Inactive
API Key
Stored as GOOGLE_MAPS_API_KEY in Railway
Set in Railway
πŸ“ Google Drive
Not Connected
Auto-create Job Folders
New folder created in "Wilkerson Jobs" when estimate is approved
Inactive
Parent Folder
πŸ“… Google Calendar
Not Connected
One-Way Sync (App β†’ Google)
Sales and installation events pushed to Google Calendar as backup
Inactive
Calendar ID
πŸ’³ Stripe Settings
β„Ή
Stripe API keys are stored in Railway environment variables. To update: go to Railway β†’ Variables tab β†’ update STRIPE_SECRET_KEY and STRIPE_WEBHOOK_SECRET. Then redeploy.
Mode
Payment Terms (days)
Statement Descriptor
Appears on customer bank statements. Max 22 characters.
Stripe Webhook Endpoint
https://app.wilkersonfloors.com/api/hooks/stripe
β„Ή
Commission is calculated on margin earned (net profit = revenue minus materials and labor) from each approved estimate. The tier that matches the margin amount determines the commission rate.
πŸ’΅ Commission Structure
Tier From ($) To ($) β€” leave blank for no limit Rate (%) Example
Loading…
⚑ Inbound Webhook URLs
${[ ['RingCentral / Office@Hand', '/api/hooks/ringcentral'], ['Stripe', '/api/hooks/stripe'], ['MeasureSquare', '/api/hooks/measuresquare'], ['Zapier', '/api/hooks/zapier'], ['QuickBooks (future)', '/api/hooks/quickbooks'], ].map(([name, path]) => `
${name}
https://app.wilkersonfloors.com${path}
`).join('')}
πŸ‘₯ Team Members
NameEmailRoleStatusActions
Loading…
🏒 Wilkerson Floors LLC
β„Ή
Merge fields use {{field_name}} syntax. Available: {{customer_first_name}}, {{customer_name}}, {{company_name}}, {{company_phone}}. Invoice context adds: {{invoice_number}}, {{total}}, {{balance_due}}, {{due_date}}, {{pay_link}}. Estimate context adds: {{estimate_number}}, {{estimate_total}}, {{estimate_link}}.
Loading…
Loading…
πŸ—‚οΈ Boards 0
Pick a board to edit its stages. Terminal boards (e.g. Dead Lead) hold a single archive column.
Loading boards…
βš™οΈ Rules 0
Two-axis triggers: card-stage (card enters/exits a stage) or job-status (a job changes status). Actions come from the registered handler set only.
Loading rules…
πŸ”₯ Fire Log
Every rule evaluation the dispatcher recorded. Read-only β€” newest first.
Loading fire log…
Page 1
🏷️ Labels 0
Seeded set: Rush, Repeat, Insurance, PRO Partner. Recolor or archive any; add your own.
Loading labels…
πŸ—ƒοΈ Engagement Cards
Create a card for a contact at an address. One open card per contact + address (engagement-uniqueness). Address is the engagement location, captured at creation.
Use + New Card above to open an engagement. The card address is a snapshot for this job's location β€” to correct a typo'd address, archive the card and recreate (a dedicated address-edit path arrives in Phase 8).
πŸ‘· Service Type β†’ Default Crew 0
A service type with no default row falls through to the unassigned WO pool for Kendra to assign manually.
Loading crew defaults…
πŸ’Ύ Data Export
β„Ή
Supabase provides point-in-time recovery. For manual exports, use the Supabase Dashboard β†’ Table Editor β†’ Export CSV for each table.
Open Supabase Dashboard β†—