FAQ

The most common "why can't I see / do / find this?" questions, with quick diagnostic answers.

FAQ

🔒 Access & visibility

Why can't I see a record I know exists?

Most likely a sharing rule doesn't grant you access. Check in this order:

  1. Are you the owner? If no…
  2. Is the record derived from a parent you can see (a contact on your account, a line on your quote)? If no…
  3. Does a sharing rule match the record and one of your positions (e.g., region, tier)? If no…
  4. Has the record been shared manually with you? If no…
  5. Does your profile have View All? If no…

→ You won't see it. Ask the owner to share the record, or your admin to expand the sharing rule.

Note that a shared account carries its contacts and nothing else: quotes, contracts, tasks, cases and opportunities on that account stay with their own owners.

Why is a field grey / read-only?

Three possibilities:

  • Field-level security restricts edit on your profile → ask admin.
  • The record is locked in an approval process → wait or recall.
  • A validation rule is preventing the change → look for an inline error message.

I have admin access in another tenant — why not here?

Profiles and permissions are per tenant. You need an admin to grant you the System Administrator profile in this tenant.

Why does the AI Copilot say "I can't find that record"?

The Copilot respects your sharing — if you can't see it, neither can it. Verify the record exists and check sharing.

📈 Records & data

I created a lead but it's assigned to someone else — why?

Auto-assignment ran. There is no Setup → Lead Settings screen and there are no assignment rules to check — a lead that arrives without an owner is handed on insert to whichever holder of the sales_rep position has the fewest open leads (src/objects/lead.hook.ts). It load-balances; it does not match region or territory. So the owner you see is the least-loaded rep, not the nearest one.

My opportunity won't move to Closed Won.

Three blockers, in order:

  1. Required fields missing (Close Date, Amount, Won Reason).
  2. Approval required — amount > $500K triggers discount approval; it must be granted first.
  3. Validation rule — e.g., "Must have a primary contact role".

Why did my opportunity skip back to a previous stage?

Likely a rejected approval. Check the Approval History section on the opportunity.

Where do deleted records go?

Nowhere — a delete is permanent and immediate. There is no recycle bin to restore from and no Setup entry for one: the platform ships no soft-delete runtime at all. @objectstack/spec retired the flag that used to promise one, and says why in as many words — "every delete has always been a hard delete, and a default-true flag promising a recycle bin was a false affordance". Treat every delete as irreversible. The audit log at Setup → Audit Logs records who deleted what and when; it does not bring the record back.

My import says "0 rows imported" — why?

Common causes:

  • External ID column not set as the matching key but conflict mode is Update only.
  • Picklist values in the CSV don't match the defined values.
  • Required field missing.
  • Owner email doesn't match any user.

The dry-run report tells you which row failed and why. Always dry-run first.

⚙️ Automation

My flow didn't fire — why?

Check in order:

  1. Is the flow Active?
  2. Does the record actually match the start condition at the time of save?
  3. Did a validation rule block the save before the flow could fire?
  4. Did an earlier flow change the record so the condition no longer matched?
  5. Was the flow re-entered for the same record while its previous run was still in flight? The engine's re-entrancy guard skips that run and logs a warning. There is no re-evaluation count to compare against — the guard is a backstop, not a stop condition. See Administration › Automation.

Studio → Developer → Flow Runs shows a flow's recent runs and each run's status — pick the flow you expected to fire.

My SLA clock isn't running.

Nothing counts down in this app — there is no live SLA timer to watch. What exists is a due date stamped on every case and an hourly sweep that reports a breach after the fact. Check:

  • The case is in an open status (not Resolved / Closed) — the hourly case_sla_monitor sweep filters status: { $nin: ['resolved', 'closed'] }, so a resolved case is never picked up.
  • The case has an SLA Due Date at all. Every priority gets one now, from a priority × account-tier matrix in src/objects/case.hook.ts — but a case whose priority the matrix has no row for is still left blank, and a case with a blank due date is never a candidate for the sweep, so SLA Violated stays false however long it stays open. (Typing a due date in by hand works — the sweep then treats that case like any other.)
  • That due date is already in the past, and a sweep has run since. The sweep is hourly and only flags cases that are already over, so a case resolved late but before the next sweep is never flagged at all.

There is no business-hours setting to check — no working-day calendar, no holiday list, no Setup → Business Hours screen anywhere in this app. Every number in the matrix is wall-clock hours, and nights, weekends and holidays count against them. There is no SLA definition screen either: the matrix is written into the hook rather than configured, and the only part of it you set from the UI is the account's Customer Tier, which chooses the column. See SLA & Escalation.

Auto-numbering jumped (e.g., from #1234 to #1267).

Normal. Sequences reserve numbers in batches for performance; gaps occur when records are deleted, validation fails after a save attempt, or batches are abandoned. The sequence is monotonic, not contiguous.

🤖 AI Copilot

The Copilot's answer is wrong / outdated.

Three causes:

  • Stale knowledge base — re-index at Setup → AI → Knowledge Bases → Refresh.
  • Outdated source document — the cited article needs updating.
  • Prompt could be tighter — for custom skills, refine the prompt; for built-in skills, file a feedback report via the thumbs-down button.

The Copilot won't answer about a specific customer.

Two possibilities:

  • Sharing — you can't see records for that customer.
  • AI redaction rule — admins can block the Copilot from referencing flagged accounts (e.g., VIP, in litigation). The Copilot says so explicitly.

Why are AI responses slow today?

Check the AI dashboard (Setup → AI → Health). Common causes: upstream LLM provider latency, knowledge-base re-indexing in progress, or rate-limit throttling.

📊 Reports & dashboards

My report shows fewer records than I expect.

Sharing. Reports respect record visibility — you see only what you can see. A rep running the company pipeline report sees only their own opportunities.

A dashboard tile is empty.

Check:

  • The tile's filter — too restrictive?
  • The underlying analytics refresh — the compiled cube is refreshed by the analytics service, on no schedule HotCRM declares, so a stale tile is a question for your deployment.
  • Your profile permissions for the source object.

I changed a field on a record — when will the dashboard update?

Each dashboard re-queries on the interval it declares: every 60 s on Customer Service, every 180 s on Sales Performance, every 300 s on CRM Overview, Sales Activity and Executive Overview (src/dashboards/). How soon the analytics service re-compiles the cube underneath is a deployment question — this app configures no refresh schedule of its own. HotCRM's dashboard metadata declares no manual refresh control either, so any refresh button your console shows comes from the platform rather than from this app.

Why can't I add a custom field to a report?

The field must be enabled for reporting in the field definition. Ask your admin to flip the Available in Reports toggle.

🔌 Integrations

My email isn't logging.

Check:

  • The Gmail / Outlook connector is connected (Settings → Email).
  • The email is to/from a known contact (matched by email).
  • The sender/recipient email isn't on your excluded list.

My DocuSign envelope isn't updating the contract.

Check the DocuSign integration log (Setup → Integrations → DocuSign → Activity). Webhook delivery from DocuSign may be retrying.

Stripe says customer X exists; HotCRM says no.

Stripe matches HotCRM accounts by email or external ID. If neither matches, no link is made. Add the external ID manually or use the Stripe Sync → Re-link action.

🚀 Performance

Pages are loading slowly.

Check:

  • Network — is your VPN routing through a slow region?
  • List view size — try filtering to <500 rows.
  • Custom widgets — disable temporarily to isolate.
  • Browser — clear cache; we recommend Chrome / Edge / Safari / Firefox latest.

If persistent, check the status page for incidents.

I'm hitting an API rate limit.

See Performance & Limits for the matrix. Common causes: a tight integration loop without back-off. Add exponential back-off and respect the Retry-After header.

👥 Users & licences

How do I disable a user?

Setup → Users → [user] → Deactivate. Their records are reassigned per the deactivation wizard. Don't delete users — it breaks history.

Can a user have two profiles?

No. Use permission sets to grant extras on top of the base profile.

Can a user belong to multiple roles?

No — one role per user. Use public groups for cross-cutting sharing.

🛟 Still stuck?

  • Search this site (/ from any docs page).
  • Check the Glossary.
  • Ask your CRM admin.
  • File an issue at GitHub.

On this page