Glossary
Every term used across this documentation, defined twice — first in plain language, then in its technical sense — with links to the guide that covers it.
Glossary
Every term you will meet in this documentation, defined first in plain words, then in the technical sense the system actually implements, and finally where it is used with a link to the full guide.
A
Ad Account
- In plain words: The billing container inside Meta that pays for and runs your Facebook/Instagram ads.
- Technical:
act_<id>entity under a Meta Business; the CRM selects one per lead source connection and uses it for campaign reporting and management. - Where you'll see it: Campaigns
API key
- In plain words: A long password that lets another system read or write your CRM data — with only the permissions you grant it.
- Technical: Bearer credential created at Settings → Advanced → API Keys, with scopes (
read:leads,write:leads, …), an hourly rate limit (default 1,000, max 100,000) and an optional expiry; stored hashed, shown once at creation. - Where you'll see it: Authentication
App Secret
- In plain words: The private password of a Meta app; whoever has it can act as the app.
- Technical: The Meta Developer App secret, stored encrypted (
MetaSettings,#[ShouldBeEncrypted]) and used to verify webhook signatures (X-Hub-Signature-256) and OAuth exchanges. - Where you'll see it: Meta Developer settings
B
Business
- In plain words: Your company's workspace in the CRM — your leads, users and settings, invisible to other companies.
- Technical: A row in the
tenantstable; every tenant-owned record carriestenant_idenforced by the fail-closedBelongsToTenantglobal scope. "Business" is the UI word for "tenant". - Where you'll see it: Businesses (tenants)
C
Capability snapshot
- In plain words: A report from a phone saying what it can actually do (record calls natively, import recordings, or only log call metadata).
- Technical: Append-only rows in
device_capability_snapshotsdescribing the device'sCallCapabilityEnginemode (NATIVE_RECORDING / IMPORTABLE_RECORDING / METADATA_ONLY / UNKNOWN), one of the latest 20 kept per device; posted via/api/v1/mobile/devices/capabilities. - Where you'll see it: Device health
Commercial Agreement
- In plain words: The service contract behind a workspace — what is being paid, how often, and whether it is in good standing.
- Technical:
CommercialAgreementwith a lifecycle: DRAFT → PENDING_CLIENT_APPROVAL → PENDING_PAYMENT_AUTHORIZATION → ACTIVE (then possibly PAYMENT_FAILED → GRACE_PERIOD → PAST_DUE → RESTRICTED → SUSPENDED) → CANCELLED/EXPIRED; versions are snapshotted so price and entitlements are separate concerns. - Where you'll see it: Commercial agreements
Cron
- In plain words: The server's clockwork: a system that runs a command on a schedule.
- Technical: There is exactly one cron entry required —
schedule:run(or the shared-hostingcron.phprunner) every minute; Laravel's scheduler then dispatches everything timed (sweeps, syncs, billing, backups). - Where you'll see it: Cron & queue workers
D
Deep link
- In plain words: A link that opens a specific record inside the app instead of just launching it.
- Technical:
crm://URIs —crm://lead/{id},crm://call/{id},crm://followup/{id},crm://appointment/{id},crm://notification/{id}— attached to push payloads when an entity id is present. - Where you'll see it: Push notifications
Demo mode
- In plain words: A safe sandbox state where the system refuses to do anything destructive or outbound.
- Technical: Platform-wide lockdown via
LEADHUB_DEMO_MODE(DemoMode::isOn/guard/abortIfOn) blocking destructive operations, credential saving and outbound communication. Distinct from the Android app's offline demo mode (bundled fixture data, no server). - Where you'll see it: Demo APK
Device token
- In plain words: The mobile app's login badge — issued after you sign in, it proves your phone to the CRM.
- Technical: Bearer credential for
/api/v1/mobile/..., 90-day TTL, stored hashed (DeviceToken::hashToken), tied to a user + device. - Where you'll see it: Mobile API (device tokens)
E
Entitlement
- In plain words: What a paying workspace is allowed to use.
- Technical: Feature access derived from the billing state;
RESTRICTEDstill allowscrm,lead_management,followupsandreports, whileSUSPENDEDdenies everything. Entitlements are deliberately separate from price. - Where you'll see it: Billing overview
F
FCM
- In plain words: Google's push-notification delivery service for Android.
- Technical: Firebase Cloud Messaging, used via HTTP v1 with an OAuth2 token minted from a service-account JSON; device tokens register through the mobile API and
UNREGISTEREDresponses clear them server-side. - Where you'll see it: Push notifications (FCM)
Firebase
- In plain words: Google's developer platform; here it verifies phone numbers at login and can deliver push.
- Technical: Firebase Authentication (Phone provider) verifies the handset; the Android app initializes Firebase at runtime from workspace options served by the CRM — no
google-services.jsonis shipped. - Where you'll see it: Firebase phone OTP
G
Grace period
- In plain words: The forgiving window after a failed payment before anything gets limited.
- Technical: Billing state after
PAYMENT_FAILED(defaultgrace_period_days = 7); if payment still fails, the agreement moves toPAST_DUE/RESTRICTED. - Where you'll see it: Payment failures & restrictions
Guided onboarding
- In plain words: The 12-step setup wizard that takes a new workspace from empty to live.
- Technical:
business_onboarding+_stepstables driving the/admin/guided-setupwizard (App\Support\OnboardingSteps), with signed 72-hour client links and a daily stuck-sweep at 08:15. - Where you'll see it: How guided onboarding works
L
Lead
- In plain words: A person or company that showed interest — the record salespeople work.
- Technical: The core CRM entity with source, stage, owner, score, tags, timeline and related records (messages, calls, follow-ups, appointments); multi-tenant by
tenant_id. - Where you'll see it: Leads
M
Mandate
- In plain words: The standing permission a customer gives to charge their UPI/card/bank for recurring payments.
- Technical:
PaymentMandate(UPI AutoPay / card token / eNACH) withprovider_mandate_id, tied to aCommercialAgreement; providers Razorpay and Cashfree. - Where you'll see it: Payment providers (Razorpay / Cashfree)
Meta Business
- In plain words: Your company's profile inside Meta that owns your Pages, ad accounts and WhatsApp assets.
- Technical: The Facebook/Meta business entity whose Pages a user manages; the CRM talks to it through the platform Meta app via OAuth, scoped by the permissions the user grants.
- Where you'll see it: Connect Meta (Facebook)
O
OAuth
- In plain words: The "Continue with Facebook/Google/Microsoft" flow — you log in at the provider, not in the CRM.
- Technical: Authorization-code flow with server-side callbacks (
/oauth/meta/callback,/admin/calendar/oauth/callback), HMAC-protected state for calendar connections, and refresh-token upkeep. - Where you'll see it: OAuth & permissions
OTP
- In plain words: A one-time code used to prove you own a phone number or email at login.
- Technical: Firebase-verified phone OTP, or CRM-generated email/SMS codes: HMAC-SHA256 with a per-code salt, single-use, TTL from
otp_ttl_minutes(default 10 min), max 5 wrong attempts, rate-limited at 3 per identifier / 10 per IP per 10 min. - Where you'll see it: Firebase phone OTP
P
Page
- In plain words: Your Facebook Page — the public profile whose lead forms feed the CRM.
- Technical: A Meta Page selected per lead source connection; only the selected Page's selected forms are ingested (
MetaLeadFormServiceallowlist); Page access tokens can expire and need a reconnect. - Where you'll see it: Choose your Page & Ad Account
Q
Queue
- In plain words: The waiting line where background work is parked until a worker processes it.
- Technical: Laravel queues; local installs use
QUEUE_CONNECTION=sync(run inline), production usesdatabasewith named queues —default,webhooks,automations,integrations,notifications,exports,ai-sdr,mail— that a worker must explicitly cover. - Where you'll see it: Queues, jobs & scheduler
R
RBAC
- In plain words: Role-based access — who can see and do what.
- Technical: Spatie permissions per tenant (e.g.
leads.view,automations.create,whatsapp.templates.manage) surfaced throughHasRolePermissions; roles: admin, manager, member (tenant) and super_admin (platform). - Where you'll see it: Roles & permissions (RBAC)
Restriction
- In plain words: The limited mode a workspace falls into when payment is overdue for too long.
- Technical: Billing state
RESTRICTED—RESTRICTED_ALLOWED_FEATURESkeepscrm,lead_management,followupsandreportsworking while other features pause; the next step isSUSPENDED(all denied). - Where you'll see it: Payment failures & restrictions
S
Sales Process
- In plain words: The set of stages a lead walks through from "new" to "won" (or "lost").
- Technical: The
pipelinesbuilder, labelled Sales Process in the UI (PipelineResource); stages are custom per workspace and drive board columns, reports and stage-change automations. - Where you'll see it: Sales process & stages
SMTP
- In plain words: The mail server the CRM sends your invites, resets and notifications through.
- Technical: Per-tenant mailer built by
TenantSmtpManager(tenant_smtp), overridingmail.defaultfor the workspace; platform fallback comes from.env/ Script Settings. - Where you'll see it: Email & SMTP
Stage
- In plain words: One step in the sales process, e.g. "New", "Contacted", "Visit booked".
- Technical: A
pipeline_stagesrow within a workspace pipeline; stage changes firelead_stage_changedautomations and feed funnel and bottleneck reports. - Where you'll see it: Sales process & stages
T
Tenant
- In plain words: The technical word for one isolated business (workspace) on the platform.
- Technical: The
tenantstable; isolation via theBelongsToTenantfail-closed global scope ontenant_id; the Super Admin panel binds the internal "LeadHub HQ" tenant to operate safely. - Where you'll see it: Multi-tenancy & isolation
Test lead
- In plain words: A fake lead created to prove your setup works end to end before real customers arrive.
- Technical:
TestLeadServicecreates a real lead through the full observer chain, tagged Test Lead with phone+91 90000 00000andraw_data.is_test = true; it verifies lead creation, field mapping, assignment and follow-up creation. - Where you'll see it: Test your setup
W
WABA
- In plain words: Your business's WhatsApp account at Meta — it owns your phone number and message templates.
- Technical: WhatsApp Business Account (
waba_idonwhatsapp_connections); the CRM syncs its templates and sends through its phone number via the Cloud API. - Where you'll see it: WhatsApp Business API
Webhook
- In plain words: An automatic "calling back" between systems: when something happens here, a message is sent there.
- Technical: Two directions — inbound: Meta/WhatsApp/payment providers POST signed events to the CRM (
X-Hub-Signature-256, provider signatures, idempotency); outbound: the CRM POSTs{event, tenant_id, timestamp, data}to your URL with an HMAC signature header, 5 retries on thewebhooksqueue. - Where you'll see it: Outbound webhooks & API keys
Worker
- In plain words: The background process that actually does queued work (sending messages, webhooks, reports).
- Technical:
php artisan queue:work --queue=...covering all named queues, running beside the every-minute scheduler; on shared hosting thecron.phprunner performs bounded queue work per minute instead. - Where you'll see it: Cron & queue workers
Was this page helpful?
Thanks — noted. ✦