# Developer Quick Start — API Keys & Authentication _Developers_ Every integration starts with an API key. CRMown has two kinds: Public API keys for the partner API at /api/v1 (safe to give a third-party tool like Clay), and Internal keys that act like a signed-in user across the whole app. Send the key as a Bearer token. ## Steps 1. In CRMown go to Settings → Integrations and scroll to the Developer section → API Keys. 2. Click create, name the key, and choose the type: "Public API" (limited to contacts, companies, leads and notes — recommended for third parties) or "Internal" (full access, like a signed-in user). 3. For a Public API key, tick only the permissions the tool needs: Look up contacts (contacts:read), Create & update contacts (contacts:write), Create & update companies (companies:write), Create leads (leads:write), Add notes (notes:write). 4. Confirm the security check (creating a key asks you to verify it is you), then copy the key. It is shown only once — store it in your tool's secret settings. 5. Call the API with the header Authorization: Bearer . Base URL: https://app.crmown.io/api. ## Tips - Keys start with ck_live_. CRMown stores only a hash, so a lost key can't be recovered — create a new one and revoke the old. - A key acts as the person who created it. If that user is deactivated, or resets/changes their password, or uses "Log out all devices", their keys stop working immediately — create integration keys from a long-lived admin account. - Use the right type for the right door: a Public API key used on an internal route — or an Internal key used on /api/v1 — is refused with 403 wrong_api_surface. - Rate limits — Public API: 600 requests per minute per key (responses carry x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset; a 429 includes retry-after). Internal keys follow your plan: Starter 60/min and 10,000/day, Pro 120/min and 50,000/day, Max 300/min and 200,000/day. - Revoke a key any time from the same list; revoking takes effect on the next request. ### Test your key ``` curl -H "Authorization: Bearer ck_live_YOUR_KEY" \ "https://app.crmown.io/api/v1/contacts/search?email=someone@example.com" ``` ## Troubleshooting - **401 unauthorized** — The key is missing, mistyped, revoked, expired, or its owner was deactivated or changed their password. Fix: Check the Authorization: Bearer header, then create a fresh key from an active admin account. - **403 wrong_api_surface** — A Public API key was used on an internal route, or an Internal key on /api/v1. Fix: Use a Public API key for /api/v1 endpoints; use an Internal key for everything else. - **403 insufficient_scope** — The key does not have the permission that endpoint needs (the response names it in "required"). Fix: Create a new Public API key with that permission ticked. Source: https://docs.crmown.com/developers/developer-quick-start-api-keys-authentication --- # Public API v1 — Contacts, Companies, Leads & Notes _Developers_ A small, stable REST API for pushing data into CRMown from enrichment tools, forms, and your own systems. Writes are upserts matched on natural keys, so re-sending the same rows is safe. Interactive reference: https://app.crmown.io/api/v1/docs — OpenAPI JSON: https://app.crmown.io/api/v1/docs/json. ## Steps 1. GET /v1/contacts/search?email=… (contacts:read) — find a contact by email (case-insensitive). Returns id, email, firstName, lastName, phone, jobTitle, tags, leadScore and stage, or 404. 2. POST /v1/contacts/upsert (contacts:write) — create or update a contact. Fields: email, firstName, lastName, phone, title, companyDomain, tags[], custom{}, source. Needs either an email, or companyDomain + firstName + lastName. Returns { id, created, matchedBy } where matchedBy is "email", "domain_name" or null (new). 3. POST /v1/contacts/{id}/notes (notes:write) — add a note: { "body": "…" }. 4. POST /v1/companies/upsert (companies:write) — create or update a company by domain: { domain, name, industry, size, custom }. 5. POST /v1/leads (leads:write) — create/update the contact and put them on a pipeline: { email, source, score (0–100), pipeline (pipeline name; default pipeline if omitted), custom }. Returns { id, created, pipelineItemId, warning }. ## Tips - Matching: by email first (lowercased, trimmed). With no email, the same first and last name at the same company domain matches. If several match, the oldest contact wins. - Updates overwrite the fields you send; tags are added, never removed; an existing email is never replaced. companyDomain links to an existing company but does not create one — upsert the company first. - Where the record came from: send an X-Source header (e.g. X-Source: clay) or a "source" field — letters, digits, dot, dash, underscore, up to 40 characters. It is set on NEW contacts only; the default is "api". - Domains are normalised: https://www.Example.com/about becomes example.com. - The API never sets email/SMS marketing consent — record consent in CRMown where you collected it. - Leads are placed on the first stage of the pipeline, and skipped if the contact is already on it. A warning of no_pipeline_found or pipeline_has_no_stages tells you the contact was saved but not placed. - Every contact upsert fires the contact.created or contact.updated webhook with source "api". - Errors are JSON { error, code }: unauthorized (401), wrong_api_surface / insufficient_scope (403), not_found (404), missing_identity (400), rate_limited (429). ### Upsert a contact ``` curl -X POST https://app.crmown.io/api/v1/contacts/upsert \ -H "Authorization: Bearer ck_live_YOUR_KEY" \ -H "Content-Type: application/json" \ -H "X-Source: clay" \ -d '{"email":"ada@example.com","firstName":"Ada","lastName":"Lovelace","title":"CTO","companyDomain":"example.com","tags":["webinar"]}' ``` ### Create a lead on a pipeline ``` curl -X POST https://app.crmown.io/api/v1/leads \ -H "Authorization: Bearer ck_live_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"email":"ada@example.com","pipeline":"Sales","score":80,"source":"website"}' ``` Source: https://docs.crmown.com/developers/public-api-v1-contacts-companies-leads-notes --- # Webhooks — Get Notified When Things Happen in CRMown _Developers_ Webhooks send an HTTPS POST to your URL when something happens — a contact is created, a deal is won, a form is submitted. Each delivery is signed so you can verify it came from CRMown. ## Steps 1. Settings → Integrations → Developer → Webhooks → add an endpoint: your HTTPS URL and the events you want. 2. Copy the signing secret (starts with whsec_). Rotate it any time from the same screen. 3. Click Test to send a "ping" event, and use the delivery log to see each attempt, its status code and response. 4. In your receiver, verify the X-Webhook-Signature header against the raw request body, then return any 2xx status within 10 seconds. ## Tips - Events — contacts: contact.created, contact.updated, contact.deleted, contact.stage_changed, contact.score_changed, contact.tag_added. Deals: deal.created, deal.updated, deal.won, deal.lost, deal.stage_changed. Messages: message.sent, message.received, conversation.created. Tasks: task.created, task.completed. Bookings: booking.created, booking.cancelled. Forms: form.submitted. CRMown AI: ai_action.created, ai_action.approved, ai_action.rejected. Tracking: tracking.email_opened, tracking.link_clicked, tracking.page_visited. Nonprofit: nonprofit.verification_recorded, nonprofit.activated. - "source" tells you what caused the event: app, api, zapier, import, sync, automation, ai, inbound, system or partner — useful to ignore changes your own integration made. - Headers on every delivery: X-Webhook-Signature (hex HMAC-SHA256 of the raw body, using your secret — no "sha256=" prefix), X-Webhook-Event, X-Webhook-Timestamp, X-Webhook-Id, User-Agent: CRMown-Webhooks/1.0. - Retries: a non-2xx or timeout is retried up to 5 attempts in total — about 30 seconds, 2 minutes, 8 minutes and 32 minutes after the first try. - X-Webhook-Id is new on every attempt, so don't use it to de-duplicate — use the event name, timestamp and the record id inside data. - An endpoint is switched off after 10 failures in a row, or straight away if its URL points at a private/internal address. Fix the receiver, then turn it back on in the list. - Up to 1,000 deliveries per hour per workspace. Events beyond that in the same hour are not delivered, so use the API to reconcile after very large bulk operations. - The test ping looks like { "event": "ping", "timestamp": …, "data": { "message": "This is a test webhook from CRMown" } } and has no "source". ### Payload shape ``` { "event": "contact.created", "timestamp": "2026-10-10T14:03:22.115Z", "source": "app", "data": { "contact": { "id": "…", "firstName": "Ada", "email": "ada@example.com" } } } ``` ### Verify the signature (Node.js) ``` import crypto from 'node:crypto' // rawBody = the exact request body string, BEFORE JSON parsing const expected = crypto.createHmac('sha256', process.env.CRMOWN_WEBHOOK_SECRET).update(rawBody).digest('hex') const received = req.headers['x-webhook-signature'] const ok = received && expected.length === received.length && crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(received)) ``` ## Troubleshooting - **Signature never matches** — The signature is computed over the exact raw body; re-serialising parsed JSON changes spacing and key order. Fix: Verify against the raw request body bytes (e.g. express.raw() / request.text()) before parsing. - **The endpoint shows as disabled** — It failed 10 times in a row, or its URL resolves to a private address. Fix: Check the delivery log for the error, fix the receiver or URL, then re-enable it — re-enabling resets the failure count. Source: https://docs.crmown.com/developers/webhooks-get-notified-when-things-happen-in-crmown --- # Website Forms — Capture Leads from Any Site _Developers_ There are four ways to get form submissions from a website into CRMown as contacts: forms on a Web Studio site are captured automatically; CRMown Forms can be embedded anywhere or posted to; the Universal Lead Capture script drops a ready-made form on any site; and an Automation webhook trigger accepts any JSON. ## Steps 1. Web Studio site: any ordinary
with an email field on a published Web Studio page is captured automatically — the contact is created or matched by email and the submission appears under Forms → Submissions. Give a form a name with data-form-name="Contact us" if you want a clear label. 2. CRMown Forms: build the form in Forms, then use its Embed tab to copy the inline, popup, slide-in or sidebar snippet — or link to the hosted page https://app.crmown.io/f/. 3. Your own form, posting directly: send a JSON POST to https://app.crmown.io/api/forms//submit with keys matching the form's field ids or labels. No API key is needed. 4. Universal Lead Capture: Lead Generation → Website → Install Hub → copy the Lead Capture script and paste it before . Add
where the form should appear. 5. Anything else: in Automation, create a workflow with the "Webhook received" trigger and POST JSON (with an email or contactId) to the URL it shows. ## Tips - Spam protection on CRMown Forms: include an empty hidden field named _hp_field — bots that fill it get a fake success and nothing is saved. If you connect reCAPTCHA or Turnstile in Settings, send its token as g-recaptcha-response, cf-turnstile-response or _captchaToken. - UTM parameters (utm_source, utm_medium…), _referrer and _landingPage sent with a submission are recorded for attribution. - Every submission fires the form.submitted webhook. To put CRMown Form submissions straight onto a pipeline, set the pipeline in the form's settings; otherwise CRMown AI routes the new lead. - The Universal Lead Capture endpoint allows up to 100 submissions per hour per workspace. - The Lead Capture script used to be shown without "/api" in its address. Old copies keep working, but use the address above for new installs. ### Embed a CRMown Form inline ```
``` ### Submit to a CRMown Form from your own code ``` curl -X POST https://app.crmown.io/api/forms/FORM_ID/submit \ -H "Content-Type: application/json" \ -d '{"Name":"Ada Lovelace","Email":"ada@example.com","Message":"Please call me","utm_source":"google"}' ``` ### Universal Lead Capture script ``` ``` Source: https://docs.crmown.com/developers/website-forms-capture-leads-from-any-site --- # Website Tracking — Install the CRMown Pixel _Developers_ The CRMown tracking snippet records page views on your website and ties them to known contacts, so you can see which pages a lead visited and trigger follow-up. Web Studio sites include it automatically. ## Steps 1. Go to Lead Generation → Website → Install Hub and copy your tracking snippet (it contains your workspace id). 2. Paste it into your site's on every page (or your tag manager). Pasting it twice is harmless — it only fires once per page. 3. Visits appear on Lead Generation → Website, and on a contact's timeline once the visitor is identified. ## Tips - How visitors become known: links in CRMown emails and texts carry the contact automatically. For your own links, add ?email=their@address or ?c= — the pixel remembers it in a first-party cookie for future visits. - Each page view fires the tracking.page_visited webhook. - Copy the snippet from Install Hub rather than retyping it — it is generated for your workspace. - Google Analytics, Hotjar and Microsoft Clarity IDs set on a Web Studio site are separate, third-party analytics; the CRMown pixel works alongside them. Source: https://docs.crmown.com/developers/website-tracking-install-the-crmown-pixel --- # Embed the Chat Widget or AI Sales Agent on Any Website _Developers_ Put CRMown's live chat or the AI Sales Agent on a site that is not built with Web Studio. Chats land in Conversations and visitors become contacts. ## Steps 1. Web Studio sites get the chat widget automatically when it is enabled — nothing to paste. 2. Other sites: open the widget in Web Studio → Chat, copy its embed code, and paste it before . 3. AI Sales Agent: copy the two-line snippet from the agent's settings. Optionally tell the agent who the visitor is with setContext (for logged-in customers). ### AI Sales Agent ``` ``` ### Pass a known visitor to the agent ``` CRMownAgent('setContext', { firstName: 'Ada', email: 'ada@example.com', company: 'Analytical', custom: { plan: 'pro' } }) ``` ### Chat widget ``` ``` Source: https://docs.crmown.com/developers/embed-the-chat-widget-or-ai-sales-agent-on-any-website --- # Zapier — Triggers & Actions _Developers_ Connect CRMown to thousands of apps through Zapier. CRMown sends events to Zaps (triggers) and accepts Zap steps that create or update records (actions). ## Steps 1. Create an Internal API key (Settings → Integrations → Developer → API Keys) and use it as the authentication in Zapier. 2. Triggers send the same signed payloads as webhooks; actions create records in CRMown. ## Tips - Triggers: contact.created, contact.updated, contact.deleted, contact.stage_changed, contact.tag_added, deal.created, deal.updated, deal.won, deal.lost, deal.stage_changed, task.created, task.completed, message.received, form.submitted, booking.created. - Actions: create_contact (firstName, lastName required; email, phone, company, source, tags), update_contact (by id or email), create_deal (contactId and pipelineId required), create_task (title required), send_sms (to and body; respects SMS consent), add_tag (contactId and tags). - Building your own integration instead? Subscribe REST hooks with POST https://app.crmown.io/api/integrations/zapier/subscribe { hookUrl, triggerEvent } (header X-Api-Key), and list definitions at /api/integrations/zapier/triggers and /api/integrations/zapier/actions. Source: https://docs.crmown.com/developers/zapier-triggers-actions --- # For AI Assistants & Agents — Machine-Readable Docs _Developers_ If you are an AI assistant or agent working with CRMown on someone's behalf, use these sources instead of guessing from the user interface. ## Steps 1. Index of every help and developer article: https://docs.crmown.com/llms.txt — and the full text in one file: https://docs.crmown.com/llms-full.txt. 2. Any article as Markdown: add .md to its address, e.g. https://docs.crmown.com/developers/webhooks-get-notified-when-things-happen-in-crmown.md. 3. API contract: OpenAPI at https://app.crmown.io/api/v1/docs/json (interactive reference at https://app.crmown.io/api/v1/docs). 4. Authentication: ask the user for a Public API key with only the permissions you need (see Developer Quick Start). ## Tips - Prefer the Public API and webhooks over automating the web app — they are stable, rate-limited and permission-scoped. - Forms and websites: see "Website Forms — Capture Leads from Any Site" for the exact endpoints and embed codes. Source: https://docs.crmown.com/developers/for-ai-assistants-agents-machine-readable-docs --- # Speak with a Human — Live Video Support _Troubleshooting_ Get a live video session with a CRMown support specialist, right from the help widget. Live Mon–Fri, 6 AM–10 PM US Central time. You wait in a short queue served by plan (Max customers first), and the join button appears in the panel the moment a specialist is ready. ## Steps 1. Open the help widget (the ? button, bottom-right) and choose "Speak with a Human". During staffed hours it says "Live now"; outside those hours it opens the message form instead so you can leave a note for the next shift. 2. You'll see your place in line. The queue is served by plan priority — Max first, then Pro, Starter, and trials — first-come within each tier. 3. Keep the panel open. When a specialist claims your request, a "Join the video session" button appears — click it to enter the room. 4. Demo accounts: live sessions are limited to 20 minutes. For deeper help, start the $14 trial and come back with full support access. 5. Sessions may be screen-recorded for quality and training. The recording stays with our support team. ## Tips - Have the page where you're stuck open before you join — showing beats describing. - Off-hours? "Send a message" reaches the same team; they reply when the next shift starts (Mon–Fri 6 AM–10 PM Central). Source: https://docs.crmown.com/troubleshooting/speak-with-a-human-live-video-support --- # Troubleshooting Guide — Start Here _Troubleshooting_ Something broken? Start here. Each scenario below covers what you're seeing (blank page, can't log in, sync errors, billing questions) and walks you through the fixes in order from quickest to heaviest. If none of these resolve it, jump to the specific feature's article — every section has its own Common Issues + Error Messages list. ## Steps 1. Page is blank / you see a white screen / nothing is loading → 1) Try Chrome or Edge if you're on a different browser. 2) Hard-refresh the page: Cmd+Shift+R on Mac, Ctrl+Shift+R on Windows. 3) Open an incognito / private window and log in there. 4) Clear your browser cache (browser Settings > Privacy > Clear browsing data). 5) Check whether only this one page is broken or every page — note the page URL either way. 6) If nothing above works, check status.crmown.io for a platform-wide outage. 2. Emails / calendar / tasks aren't syncing, or you don't see recent messages → Go to Settings > Communications > Connected Accounts. Look for a red "Error" or "Reconnect needed" badge on your Gmail / Outlook / iCloud connection. If the token expired, click Disconnect and then Connect again. If a sync category (Email / Calendar / Tasks) shows "never" under Last sync, click Sync Now. Confirm you connected the right account — the email address is shown next to the provider icon. 3. Can't log in / password isn't working / you're locked out → 1) Check Caps Lock. 2) Visit /forgot-password and reset via the email you received at signup. 3) If your org admin recently removed you or you were deactivated, password reset won't work — ask an admin to re-enable your account under Settings > Account > Members. 4) Try a different browser or an incognito window in case a cached cookie is corrupt. 5) If your org uses SSO (Google / Microsoft), click the SSO button for your provider, not the email/password form. 4. Billing / invoice / refund / subscription questions → Go to Settings > Billing. You'll see your current plan, next billing date, payment method on file, and invoice history. To cancel, click Cancel Subscription at the bottom of the page. For refund requests, email support@crmown.com — include your org name and the charge date. If a card declined, check whether the card expired and update it under Payment Methods. 5. You can't find a feature that should exist / a menu item is missing → 1) Your plan may not include it — check Settings > Billing to see what's included. 2) Pro and Max tiers unlock additional features beyond Starter. 3) Features grouped into Suites (Web Studio, Automation, Marketing, Comm Pro, etc.) need to be activated under Settings > Billing > Suite Add-ons. 4) Some features require OWNER or ADMIN role — if you're on TEAM role, ask an admin whether the feature is restricted. 6. The app feels slow / pages take forever to load / scrolling lags → 1) Very large contact lists (10,000+) can slow rendering — use filters to narrow the view. 2) Close browser tabs you're not using. 3) Browser extensions can interfere — open an incognito window (which disables most extensions) and compare. 4) Check your internet connection speed; anything below 10 Mbps can feel sluggish on a data-heavy page. 7. You see a specific error message on screen → Search the exact error text in this training guide (use Ctrl+F / Cmd+F on this page). Most errors are documented under the relevant feature's Error Messages section. If you can't find it, take a screenshot, copy the exact error text, note the page URL + what you were doing, and email support@crmown.com. 8. AI assistant / AI command bar isn't responding → 1) Check Settings > AI Usage to see how many AI tokens you have left for the month. 2) If you're on BYOK (Bring Your Own Key), confirm your provider API key is entered under Settings > AI. 3) Try a simple command first (e.g. "show my contacts") to rule out syntax issues. 4) If you've exhausted your monthly quota, either upgrade your plan or wait for the quota to reset on the 1st of next month. 9. Settings > AI Usage shows 30 days but Recent AI Receipts seems to stop after today → The receipts table lists the newest actions only (50 at a time), so a busy day can fill it entirely; the footer says "Showing X of Y actions" and Show more loads further back, up to the newest 500. The totals and the Usage by User / Model / Feature panels above it always cover the whole period you selected, so nothing is missing from the numbers. The Daily Usage chart is on a log scale because one heavy day can otherwise flatten the rest of the month to nothing — hover any bar for the exact tokens. 10. You attached an image to the AI Bar and got "Image attachments aren't supported on your current AI provider" → Your org is on a BYOK provider whose model only reads text (DeepSeek, Cohere, Perplexity, SambaNova). Ask the question without the image, or switch to a vision-capable provider under Settings > AI Usage > AI Configuration — CRMown AI's own budget, Anthropic, OpenAI, Google, Azure and Amazon Bedrock all read images. ## Tips - Before escalating, try this: note your browser + version, the exact URL, the exact error text, and what you clicked right before it broke. A screenshot helps. support@crmown.com will ask for this anyway. - A surprising number of "broken" situations are just stale browser tabs — a hard refresh (Cmd+Shift+R / Ctrl+Shift+R) resolves them. - Every feature in CRMown has its own training article with a Common Issues + Error Messages section. If your problem is specific to one area (Pipeline, Contacts, Inbox, etc.), find that article first — you'll get faster, more specific answers than here. ## Example "The dashboard is blank!" Josie opens this troubleshooting guide, walks step 1, hard-refreshes with Cmd+Shift+R, and is back in action in 30 seconds — no ticket needed. The stale tab had been open overnight while the web app deployed new code. Source: https://docs.crmown.com/troubleshooting/troubleshooting-guide-start-here --- # Why Don't I See Bob's Contacts / Deals / Meetings? _Troubleshooting_ CRMown has an org-wide visibility setting (Settings → Privacy → Visibility) that controls whether non-admin users see every record in the org or only ones they own. The default is "Open" — everyone sees everything. If your org admin switched to "Owned" or "Team-based", non-admin users see a narrower slice. OWNER and ADMIN roles always see everything regardless of the setting. ## Steps 1. Go to Settings → Privacy → Visibility to check the current mode (only OWNER and ADMIN can see this dropdown). 2. If it's "Open" — every user sees every contact, deal, task, calendar event, conversation, meeting, and quote. Default for new orgs. 3. If it's "Owned" — non-admin users see only records assigned to them: Contact.assignedTo = self, PipelineItem.ownerId = self, Task.assignedToId or createdById = self, Meeting.userId = self, CalendarEvent.userId = self, Quote.createdBy = self, Survey.createdBy = self, Screen Recording createdBy = self, Audio Note createdBy = self. 4. If it's "Team-based" — same as Owned, but expanded to include records owned by anyone on a Team you belong to. Set up Teams under Settings → Teams. 5. Conversations have a special rule: unassigned ones stay visible to everyone (so the inbox triage workflow still works). Once assigned, they narrow to that user. 6. Screen Recordings & Audio Notes follow the same rule (scoped by their creator). Additionally, a Screen Recording set to "Private" is only ever visible to the person who created it — even in Open mode and even to other non-admins — separate from the org-wide visibility setting. 7. Records with a NULL owner (e.g. an old contact that was never assigned) become invisible to non-admins under Owned/Team-based. Admins can flip back to Open temporarily, fix the assignments, then flip back. ## Tips - Plan tier (Starter / Pro / Max) does NOT affect visibility — plans control what features you can use, not who sees what data. Same applies to Suite activations. - OWNER and ADMIN bypass every visibility mode — necessary so admins can audit, train AI, and clean up data. Roles like TEAM, EXECUTIVE, etc. are subject to the filter. - BYOS (Drive / OneDrive / Dropbox) recordings folder respects the same setting — Phase 1 covered the per-meeting subfolders. Other suite folders (Web Studio forms, Marketing campaigns) currently stay org-shared. - AI features (data quality scans, agent search) run with admin-equivalent visibility internally so they can find duplicates across reps even when humans can't. - Activity feed (dashboard timeline) under Owned/Team-based only shows actions performed by visible users — so a rep won't see "Sarah moved Contact X to Customer" if Sarah isn't in their team. Per-entity activity (on a contact detail page) is contextual to the entity's own visibility. ## Example Acme has 80 reps on Max. The OWNER flips visibility to "Team-based" and sets up two teams: East-Coast and West-Coast. East-Coast reps now see contacts/deals/meetings/conversations owned by anyone on East-Coast (not West-Coast), but the OWNER and the two ADMINs still see everything. When a West-Coast rep accidentally gets assigned an East-Coast contact, an East-Coast rep can't see it until ownership is transferred. Admin can audit by flipping to Open temporarily. ## Troubleshooting - **A contact disappeared from my list** — Org switched to Owned/Team-based and either (a) the contact was reassigned to someone else, or (b) it had no assignedTo (NULL). Fix: Ask an admin to flip to Open mode briefly; check the Contact detail to see who it is currently assigned to. Re-assign if appropriate. - **"My team" mode is too restrictive — I should see Bob's deals because we collaborate** — Bob isn't on a team you belong to. Fix: Settings → Teams → add Bob (or yourself) to a shared team. Visibility expands automatically — no per-record action needed. - **Old conversations are missing from the inbox** — Under Owned/Team-based, only conversations assigned to a visible user show up. Unassigned ones stay visible (triage queue), but ones assigned to other reps don't. Fix: Re-assign the conversation, or ask an admin to flip the mode. Source: https://docs.crmown.com/troubleshooting/why-don-t-i-see-bob-s-contacts-deals-meetings --- # Configuring department-specific AI Personas _Troubleshooting_ AI Personas let admins create department-specific AI assistants — a Finance persona, an HR persona, an Ops persona — each with its own tone, system-prompt scope, knowledge corpus, tool allowlist, and disabled-feature carve-outs. Users default to one persona but can switch in the AI Bar dropdown. Personas are an OWNER/ADMIN feature; non-admins consume the persona their admin (or team) assigned to them. ## Steps 1. Navigate to Settings → AI Agents (or /dashboard/agent-config). Each row in the agents list is a persona. 2. Click + Create new agent to start a fresh persona, or click an existing one to edit. Open the Persona tab on the editor. 3. Persona type: pick "Internal" for a department persona (Finance/HR/Ops/Sales/Support). Pick "Public web" or "Public voice" only if this row drives the website chat widget or inbound phone calls. 4. Description: write one sentence explaining what this persona is for — shows up in the AI Bar picker. Example: "Finance assistant — invoices, AR, bookkeeping questions". 5. Tone (under the Setup tab): set the persona's personality — "professional but friendly", "warm and empathetic", "formal and corporate", etc. The AI rewrites every response in this voice. 6. Knowledge scope: restrict which KB articles + memory tags + suite slugs this persona can search. Leaving any field blank = "see everything" (the back-compat default). 7. Disabled features: tick AI features the persona refuses to attempt — e.g. an HR persona has no business running lead-scoring on contacts. 8. Save. Assignment is self-service — each user picks their own persona under Settings > AI Usage > My AI Persona. There is no admin per-user or per-team assignment; guide each person to select the persona that matches their role. 9. Users see the new persona in their AI Bar dropdown the next time they open it (60-second cache TTL). The persona's name + tone show in the chat header. ## Tips - OWNER and ADMIN can always pick any persona regardless of assignment — necessary for testing personas without juggling alt accounts. - A user with no explicit default falls back to: their team's default → the org's default agent (the row marked isDefault). Zero-disruption upgrade for existing orgs. - Personas stack with visibilityMode — the Finance persona on an "owned" org sees only that user's own records, even if the persona itself is unrestricted. - Public web / public voice rows still route by slug + publicApiKey — the persona-router only governs the in-app AI Bar. - Personas don't add cost — they share the same CRMown AI engine and model tier as your org's base AI configuration. - New in Phase 3 (2026-05-08): the Persona tab has a "Quick start — apply a preset" row with five starter templates (Finance, HR, Ops, Sales, Support). Click one and the form pre-fills tone, knowledge scope, tool allowlist, and disabled-feature carve-outs — you still tweak before saving. - Per-persona approval rules override (Phase 3) — the Persona tab takes a JSON blob that replaces your org's aiApprovalRules when an action runs under that persona. Useful when Finance should require OWNER approval on send_email even if Sales auto-approves it. Leave blank to inherit the org default. ## Example Acme has 80 users across Finance (12), HR (4), Ops (8), Sales (40), and Support (16). The OWNER creates 5 personas with matching descriptions, knowledge scopes, and disabled-feature carve-outs. Each user selects their department's persona once under Settings > AI Usage > My AI Persona (self-service — there is no team-wide auto-assignment). Sales reps still get the full pipeline-aware AI Bar; Finance reps get a persona that pulls from invoicing + accounting KB articles only and refuses to draft sales follow-ups. The Q3 NPS survey shows AI usefulness scores up 38% vs. the previous quarter when everyone shared one generic agent. ## Troubleshooting - **My AI Bar still shows the old generic agent** — You haven't selected a persona yet, or the org admin hasn't flipped any agent rows to "Internal" purpose. Fix: Pick your persona under Settings > AI Usage > My AI Persona. - **I picked a persona but the AI is answering exactly the same way** — The persona's system-prompt overrides (tone, description, disabled features) hadn't propagated yet — there's a 60-second cache. Fix: Wait 60 seconds and try again. Hard-refresh the dashboard if needed. Verify the persona's Personality + Description are non-default values. - **A user can pick a persona they shouldn't have access to** — In v1, every internal persona in the org is visible to every user. Per-user persona restrictions ship in Phase 2. Fix: Make sensitive personas inactive (isActive=false) when you don't want them surfaced. Or scope their knowledge corpus tightly so they refuse out-of-scope questions. - **Voice agent stopped working after I changed its purpose** — Public-voice routing requires purpose=public_voice. If you flipped a Twilio-connected agent to "Internal", inbound calls now hit the fallback agent. Fix: Edit the agent → Persona tab → set purpose back to "Public voice". - **Callers hear a robotic voice on the AI phone agent** — The natural-voice engine (CRMown AI voice) needs the platform text-to-speech key configured; without it calls fall back to the built-in telephony voice. Fix: Numbers provisioned in CRMown are wired for voice automatically. If calls still sound robotic, contact support — the natural-voice engine may not be enabled for your environment. The call flow works either way. Source: https://docs.crmown.com/troubleshooting/configuring-department-specific-ai-personas --- # Understanding Your Dashboard _Dashboard_ The dashboard gives you a real-time overview of your business: recent activity, pipeline value, contact growth, tasks due, and upcoming calendar events. Several widgets are dismissible — once hidden, restore them from Settings > Customize. ## Steps 1. Navigate to Dashboard from the sidebar. 2. Review the activity feed for the latest CRM events (new contacts, deals moved, emails sent). 3. Check the stats cards for total contacts, open deals, tasks due today, and revenue. 4. Click any stat card to jump directly to that section. ## Tips - Pin your most-used pages from the sidebar for faster navigation (right-click any nav item). - The activity feed updates in real-time — no need to refresh. - The "Happening Now" card surfaces the meeting that's starting soonest with a one-click "Start Meeting" button. - Hidden widgets (currently the Setup Score panel) can be brought back from Settings > Customize > Dashboard Widgets > "Show all hidden widgets". The dismissal is per-browser, so resetting only affects the device you're on. - The Setup Score panel auto-hides at score ≥ 80; it's "doing its job", not broken. To force it back early, click "Show all hidden widgets" — it returns until the next manual Hide. ## Example Mike runs a 4-person agency. Every Monday at 9 AM he opens the dashboard before standup — the activity feed shows 12 new leads landed over the weekend, the open-deals stat says $84K was added to pipeline, and tasks-due flags two client deliverables at risk. Two clicks later the leads are assigned to teammates and the standup writes itself. ## Troubleshooting - **Dashboard shows "No data" even though I have contacts and deals** — Dashboard widgets pull from the last 30 days by default. If all activity is older, widgets appear empty. Fix: Check for recent activity; create a test contact or task to verify the dashboard updates. The activity feed, pipeline value, and task widgets all need data from the current period. If that fails: Hard refresh the page (Ctrl+Shift+R). If still empty, confirm you're logged into the correct organization. - **"Do This Next" suggestion seems irrelevant** — The AI suggestion is based on your current data state (contacts, pipeline, tasks). With no data, it defaults to prospecting suggestions. Fix: Working as intended — suggestions improve as you add more data. Dismiss with the X button. - **Setup Score panel disappeared and I want it back** — You either clicked "Hide" (7-day per-browser dismissal) or your score crossed the ≥ 80 auto-hide threshold. Fix: Settings > Customize > Dashboard Widgets > "Show all hidden widgets" clears every dismiss flag on this device. ## Error messages - `Failed to load dashboard` — Network error. Check internet connection, refresh the page. - `Session expired` — Login token expired (7 days). Log in again. ## Plans All plans have full dashboard access. The "Do This Next" AI suggestion uses AI tokens from your plan allocation. Source: https://docs.crmown.com/dashboard/understanding-your-dashboard --- # Onboarding Checklist & Industry Setup _Dashboard_ New orgs see a single 12-step "Get started with CRMown" grid on the dashboard. Each card auto-ticks as soon as the underlying record exists in your data — no manual checking off. Industry-specific templates (real estate, agency, SaaS, healthcare, etc.) pre-populate pipelines, segments, and starter tasks. ## Steps 1. The checklist is server-driven and re-evaluates on every dashboard load. Items auto-complete based on real org/user data — adding a contact, connecting email, etc. — so progress always reflects reality. 2. Step order tells a story: identity → AI context → explore → first contact → connect comms → bring in data → organize → communicate → grow → automate → expand → polish. Specifically: 1) Set up business profile, 2) Tell AI about your business, 3) Try the AI Bar (Cmd/Ctrl+K), 4) Add your first contact, 5) Connect your email, 6) Import your contacts, 7) Customize your pipeline, 8) Send your first message, 9) Invite a team member, 10) Build your first automation, 11) Activate a suite, 12) Check your data quality. 3. Admin-only items (steps 1 + 2) are hidden for TEAM/DIRECTOR users so the checklist stays relevant to what they can actually do. 4. During signup pick your industry — CRMown applies a starter template (pipelines + segments + onboarding tasks tailored to that vertical). 5. You can re-pick the industry / re-apply a template later from Settings > Billing > Industry Verticals. 6. If you have 3+ users, create your first team under Settings > Teams. Teams group users for shared folder access — e.g. "Sales", "Support", "Leadership". Team membership drives which folders each user sees on the Folders page. 7. Click any incomplete card to navigate straight to the page that completes it. "Try the AI Bar" opens the command palette directly instead of navigating. 8. The checklist auto-hides only when every step is complete. Use the × button to dismiss it for the current session — it returns on next reload. ## Tips - Industry templates are starting points — edit any pipeline, segment, or task afterward. - AI Industry Detection: type a short business description and the system suggests the closest GICS-aligned industry template. - Teams vs Roles: Teams group users (Accounting, HR, Sales, etc.) for folder sharing AND Client Hub document access. Roles control org-wide permissions. A user has one role but can belong to many teams with different per-team roles (team admin vs. team member). The old "User Groups" concept was merged into Teams on 2026-04-24 — every existing group is now a Team with the same name + members. - "Connect your email" intentionally sits before "Send your first message" so you don't fire your first outbound from the noreply fallback. - "Import your contacts" auto-completes on either ≥10 contacts OR ≥1 ImportLog with status "completed" — covers CSV imports as well as Google/Outlook contact-sync paths that arrive without an ImportLog row. - Booking pages no longer appear on the universal checklist — they're a service-business need, so they'll move into an Operations-specific checklist when that lands. ## Example Sarah signs up and picks "Real Estate". CRMown applies the RE template — Buyers + Sellers pipelines, "Sphere" + "Past Clients" segments, and a starter task list. She works the dashboard checklist top-to-bottom: profile, AI objectives, tries the AI bar, adds her first contact, connects Gmail, imports 240 contacts from a Sales Navigator CSV, customizes the Sellers pipeline, sends her first follow-up email, invites her TC, builds a "new lead → Day-1 nurture" workflow, activates the Real Estate suite, and runs the Data Quality Guardian to clean up duplicates from the import. Fully operational by end of day instead of poking around settings for a week. ## Troubleshooting - **Onboarding checklist shows incorrect completion** — Each card checks live data — e.g. "Add your first contact" checks if any non-deleted Contact exists. If you deleted the matching record after the step ticked, the step reverts. Fix: Complete the underlying step again — the checklist re-evaluates on each page load. - **I see two "Getting Started" sections** — You're on a stale build. The legacy enablement-system widget was retired on 2026-04-28; the dashboard grid is now the single source of truth. Fix: Hard reload (Cmd/Ctrl+Shift+R). If it persists, your tab is on a pre-2026-04-28 build of the web app. - **"Try the AI Bar" never ticks even after I use Cmd+K** — AiBarHistory rows are written per-user, so the step only ticks for the user who ran the query. Fix: Each team member needs to use the bar at least once for their own card to tick. Source: https://docs.crmown.com/dashboard/onboarding-checklist-industry-setup --- # Importing Contacts from LinkedIn _Contacts_ There is no live LinkedIn connection sync (LinkedIn's API does not allow reading your connections). Instead, import from LinkedIn's data-export CSVs — CRMown handles both your full connections and just the people who messaged you. ## Steps 1. On LinkedIn: Settings → Data Privacy → Get a copy of your data. Choose Connections (all connections) and/or Messages (people who messaged you), then download the CSV. 2. In CRMown: Contacts → Import CSV → upload the file. 3. For a Connections.csv, the importer auto-maps First/Last Name, Email, Company, Position → Job Title, and URL → LinkedIn URL. 4. For a messages.csv, CRMown auto-detects it and extracts ONLY the people who messaged you — it dedupes senders, drops your own messages, and brings them in with their name + LinkedIn profile URL (a banner confirms how many were extracted). ## Tips - LinkedIn only includes a connection's email if that person allowed it, so many imported rows have no email — add emails as you engage. Email is the join key for purchase tracking; clicks work via the Copy tracked link button. - Inbound LinkedIn messages can also auto-create a contact in the unified inbox, but only for a connected Company Page with Community Management API access — LinkedIn does not deliver personal-profile DMs to third-party apps. ## Example You export your LinkedIn messages.csv and import it; CRMown adds just the people who have DM'd you — deduped, your own replies excluded — each with their profile link, ready to work in the pipeline. Source: https://docs.crmown.com/contacts/importing-contacts-from-linkedin --- # CRMown Capture — Save Contacts from LinkedIn, X, Facebook & Instagram _Contacts_ The CRMown Capture Chrome extension saves the person whose profile you are looking at as a CRMown contact in one click — name, photo, job title, company, profile link, bio and (on LinkedIn) work history — then enriches them automatically. It only reads the profile on your screen, only when you click. ## Steps 1. Install CRMown Capture and paste your CRMown API key in its settings (one time). 2. Open a profile: LinkedIn (linkedin.com/in/…), X, Facebook (a person or a business Page) or Instagram. 3. Click the CRMown Capture icon. Check the details it read — you can edit name, email, job title and company, and add a note. 4. The profile photo shows as a small thumbnail with "Profile photo will be saved". Click "Don't save" if you don't want it. 5. Click Save to CRMown (or Save & open). The contact is created — or, if they already exist, only empty fields are filled — and enrichment starts in the background. ## Tips - Photos are copied into your own CRMown storage, because LinkedIn and Meta photo links expire after a while. Re-capturing never replaces a photo someone already set. - LinkedIn work history and education are read from the profile page. The extension briefly scrolls the page to load them, then puts it back. - A Facebook business Page is saved as a company contact with its listed phone, email and website. - Instagram captures the display name, photo, bio and the link in bio. Instagram rarely shows job titles, so enrichment has less to go on. - Reddit threads are saved to Social Listening instead of becoming contacts. ## Example A recruiter opens a candidate's LinkedIn profile, clicks CRMown Capture, sees name, title, company, photo and "Work history — 4 roles · 1 school", and saves. Thirty seconds later the contact in CRMown has the photo and a work email found by enrichment. ## Troubleshooting - **"No API key set" in the extension** — The extension has no CRMown API key yet — this also happens after reinstalling or loading a new copy, which starts with empty settings. Fix: Click Open settings in the extension and paste your API key. - **"No work history — the Experience section was not on the page"** — LinkedIn had not loaded the Experience section yet, or LinkedIn hides Experience from you for this person (common for 2nd/3rd-degree connections). Fix: Scroll down to the Experience section on the profile, then open CRMown Capture again. - **No photo thumbnail appears** — The person has no profile photo, or the site did not show it on the page. Fix: Nothing to fix — the contact is saved without a photo. You can upload one on the contact later. - **Facebook or Instagram capture came back empty** — The page is not a profile (e.g. a feed, a group, a post) or was still loading. Fix: Open the person's or Page's main profile, wait for it to load, then click the extension again. Source: https://docs.crmown.com/contacts/crmown-capture-save-contacts-from-linkedin-x-facebook-instagram --- # Merging Duplicate Contacts _Contacts_ Find and merge duplicate contacts from Contacts → Data Quality → Duplicates. The scanner groups contacts that share an email, a phone (when the name/email also match), or the same name + company. ## Steps 1. Open Contacts → click the Data Quality button → Duplicates tab. 2. Each group shows the matched value and its contacts; the top row is the PRIMARY (the record that survives). 3. Click Merge on a single group, or Merge All Duplicates at the top to process every group in one pass (it shows live progress and skips any that error). ## Tips - Merging keeps the primary record and only fills its blank fields from the others; conversations, deals, calendar events, bookings and workflow runs all transfer to the primary, then the duplicates are deleted. It cannot be undone. - Same-name contacts with DIFFERENT emails and no company are NOT auto-detected (e.g. three "Adam Tunks" on three different emails) — the scanner needs a shared email/phone or name+company. Merge those manually or add a company so they group. - If you merge records with different emails, only the primary email is kept — capture the others first if you need them. ## Example After an import created three identical rows on the same email, the Duplicates tab grouped them and one "Merge All Duplicates" cleared all 97 groups in a single pass. ## Troubleshooting - **Clicking Merge / Merge All returns "Validation failed"** — The page was sending the wrong payload shape to /contacts/merge. Fix: Fixed — merge now sends the correct secondaryIds array. Reload the page; single-group Merge and the bulk Merge All button both work. Source: https://docs.crmown.com/contacts/merging-duplicate-contacts --- # Needs Review — Cleaning Invalid, Junk & Multi-Email Contacts _Contacts_ Contacts → Data Quality → Needs Review flags contacts with quality problems so YOU decide what to do — nothing is auto-deleted. Reasons: Invalid email, Fake/placeholder email, Bad phone, Name-only junk, and Multiple emails. ## Steps 1. Open Contacts → Data Quality → Needs Review. 2. Select contacts and click Keep selected (marks them valid so they stop showing) or Delete selected (soft-delete, recoverable). 3. For contacts flagged "Multiple emails" (blue badge), click "Split & fix emails" — it keeps the first valid address as the primary email and moves the rest into the contact's additional emails. ## Tips - A "Multiple emails" flag means a CSV crammed two addresses into one field (e.g. "a@b.com; c@d.com"). These are real people, not junk — use Split & fix, do NOT delete them. - Delete is a soft-delete (goes to Trash, recoverable); Keep stamps the contact reviewed so it drops off the list. ## Troubleshooting - **Real contacts are showing as "Invalid email" and I almost deleted them** — Their email field holds two addresses separated by ";" or ",", which fails the single-address check. Fix: They are now flagged as the fixable "Multiple emails" reason — click "Split & fix emails" to keep the first address and store the rest. No data loss. Source: https://docs.crmown.com/contacts/needs-review-cleaning-invalid-junk-multi-email-contacts --- # Copy Tracked Link — See a Contact's Website Clicks _Contacts_ Every contact page has a "Copy tracked link" button that builds a per-contact website link (yoursite.com/?c=). When the contact clicks it, their visit attributes to their record. ## Steps 1. Open a contact → click "Copy tracked link" (enter your website URL the first time; it is remembered — shift-click to change). 2. Paste the link into a LinkedIn message, email, or text. 3. When they click, the tracking snippet on your site logs the visit on the contact's timeline (and future visits via a cookie). ## Tips - Your website must have the CRMown tracking snippet installed for clicks to register. - See "Tracking Website Clicks & Purchases Per Contact" (Lead Generation) for purchase attribution via Stripe + email. Source: https://docs.crmown.com/contacts/copy-tracked-link-see-a-contact-s-website-clicks --- # Adding & Managing Contacts _Contacts_ Contacts are the core of your CRM. Each contact stores personal info, communication history, tags, notes, and deal associations. ## Steps 1. Go to Contacts from the sidebar. 2. Click "+ Add Contact" to create a new contact manually. 3. Fill in the name, email, phone, company, and any custom fields. 4. Use tags to categorize contacts (e.g., "VIP", "Lead", "Partner"). 5. Click any contact row to open the full contact detail view. 6. Add a photo: on the contact detail page, hover over the avatar and click the camera icon to upload an image (up to 5 MB). Hover and click the ✕ badge to remove it. The photo shows on the contact list, detail page, and Gallery view. 7. Attach files: the Files card on the contact detail page lists every document linked to the contact — click "Upload file" to add one (up to 25 MB, virus-scanned). Files clients send through the Client Portal appear here too, marked "From client". Files can also be linked to a contact from Documents using the contact search picker. ## Tips - Use the search bar and filters to quickly find contacts. - The contact search matches name, email, phone, company, job title — and also any keyword inside a contact's notes or custom-field values (e.g. search "refinance" to find contacts whose notes mention it). - Find contacts by which CSV they came from: filter on "Source File" in the contact filter bar or Segments, or open Imports history and click "View contacts" on any import. - Bulk actions let you tag, assign, or delete multiple contacts at once. - Contacts are automatically enriched with public data when available. - Contacts list is paginated — default 25 per page, max 100. If a specific contact seems "missing", use search or the filter bar; it's almost always on a later page, not deleted. - Deleted contacts are soft-deleted — they sit in trash for 30 days, then a nightly cleanup job (5am UTC) hard-deletes them permanently. Ask an admin to restore within that window. - Lead score (0–100) is built from real contact signal, not activity logging: email +15, phone +10, company +15, job title +10, website/LinkedIn +5, plus a source bonus (booking +20, referral +15, form +10, manual +0). CRMown AI then nudges that base up or down by at most 15 points for company strength, engagement, and source quality — so scores stay realistic; a bare email+phone contact lands around 25, not 90. You can always override the score manually on the contact detail page. ## Example A networking event ends and Priya, a SaaS founder, has a stack of 14 business cards. She opens Contacts, hits "+ Add Contact" once, then uses the AI command bar (Ctrl+K) to dictate the rest: "add John Mathew at Acme as a lead from yesterday's mixer." Each contact gets enrichment, a "mixer-april-2026" tag, and an automatic follow-up task — all before she leaves the parking lot. ## Troubleshooting - **Contact disappeared after creating it** — The contact may have been merged with an existing record (duplicate email detected) or accidentally deleted. Fix: Search for the email in the search bar. If merged, it lives under the original record. If deleted, deleted contacts can be recovered within 30 days — check with your admin. - **A contact I deleted a couple of months ago is gone — not even in trash** — Soft-deleted contacts stay in trash for 30 days, after which a daily 5am UTC cleanup job hard-deletes them. Past that window the record and its activity timeline are unrecoverable from CRMown. Fix: Within 30 days: ask an OWNER/ADMIN to restore from trash. After 30 days: re-create the contact from email/notes or restore from a CSV export if you have one. To avoid this, export a backup CSV before bulk-deletes. - **Can't edit a contact's email address** — Email field can be locked when the contact was synced from Google or Outlook to prevent sync conflicts. Fix: Edit the email in Google Contacts or Outlook then sync. Or disconnect the sync, edit in CRMown, then reconnect. - **Lead score is always 0** — Lead score is calculated from the contact's actual data — email, phone, company, job title, website/LinkedIn, and source — not from logged activity. A contact with none of those fields filled in (or one added before scoring last ran) scores 0. Fix: Fill in more contact fields (email, phone, company, job title, website or LinkedIn) and set a source — the score recalculates from that data, with CRMown AI fine-tuning it within a bounded range. You can also set a score manually on the contact detail page. ## Error messages - `Email already exists in your organization` — A contact with this email already exists. Search for it by email. - `Failed to save contact` — Network timeout or server error. Refresh and retry. If persistent, check API health. - `Contact limit reached` — You've hit your plan's contact limit. Upgrade or delete unused contacts. Starter: 10K, Pro: 25K, Max: 100K. ## Plans Starter: 10,000 contacts; Pro: 25,000; Max: 100,000. Contact Booster add-on available for additional capacity. Source: https://docs.crmown.com/contacts/adding-managing-contacts --- # Recording a Talk with Slides (Conference / Training) _Contacts_ Record a long session on your phone and photograph the slides as they change. Each photo is stamped with how far into the recording it was taken, so the slides line up with the transcript afterwards. ## Steps 1. On the phone: More → Record a talk. Give it a title, press Start recording. 2. Whenever the screen changes, tap "Capture slide" and photograph it. Recording keeps running behind the camera — the timer stays on screen so you can see it has not stopped. 3. Press Stop and save at the end. The audio uploads, the slides follow, and CRMown AI transcribes and summarises it. 4. Open it on the web under Tools → AI Intelligence → Audio Notes. The slide strip under the player marks which slide was showing; click any slide to jump the audio to that moment, and the Transcript tab shows each slide inline where it was captured. ## Tips - The stamp is elapsed recording time, not clock time, so pausing does not push later slides out of alignment. - A slide stays "on screen" until the next one is captured — photograph each slide once, as it appears, rather than repeatedly. - Keep the screen on for the whole session unless your build has the audio background mode; iOS suspends a recording app when the screen locks. - Up to 200 slides per recording, 4MB each. Audio notes run to four hours. ## Example A 40-minute conference keynote: Start recording, then one photo per slide as the presenter moves through the deck. Back at the office the transcript reads straight through with each slide sitting exactly where it went up, and clicking slide 7 jumps the audio to what was said about it. ## Troubleshooting - **Slides are not showing under the player** — They upload after the recording is saved, so they only appear once that finishes; or the note was recorded before this feature existed. Fix: Reopen the note after the save completes. If a slide failed to upload, the save message says how many. - **The slides are out of step with the audio** — Almost always a slide photographed well after it went up. Fix: Capture each slide as it appears. The stamp is taken at the shutter, not at upload, so a slow connection does not shift it. - **Recording stopped partway through a long talk** — The screen locked and iOS suspended the app. Fix: Keep the screen awake for the session. What was recorded up to that point is kept and uploaded rather than lost. ## Plans Audio notes and slides are included on every plan; transcription and the summary draw on your monthly AI allowance. Source: https://docs.crmown.com/contacts/recording-a-talk-with-slides-conference-training --- # Scanning a Business Card _Contacts_ Photograph a paper business card and let CRMown AI read it into a contact, or scan someone’s QR / digital card. Works on the phone in Meet Mode and on the web. ## Steps 1. On the phone (the usual case — you are standing with them): open the app → More → Meet Mode → Start, then tap the "Scan Card" tile. Fill the frame with the card and press the shutter. 2. CRMown AI reads the card and shows you the fields it found — name, email, phone, company, job title, website, LinkedIn. Check them, fix anything misread, add a note about the conversation, then Save. 3. On the web: Settings → Account → "Capture Card" → the "Scan a card" tab. "Photo of card" uploads a photo for the same reading; "Scan QR" uses your webcam for a QR or vCard, with a paste box if the camera will not open. 4. To hand over YOUR details, use the "Share my card" tab in the same place for your personal link and QR, or a physical NFC card from Tools → Lead Generation → Tap Cards. ## Tips - Scanning someone you already have does not create a duplicate. The contact is matched on email first, then on the last digits of the phone number, and only the blank fields are filled in — your existing notes and owner are left alone. - A card photographed in Meet Mode carries where you met them into the contact note automatically, from the event name and location on the session. - Hold the phone square to the card and fill the frame. The reading is only as good as the photo, and a low-confidence reading is flagged above the fields so you know to check them. ## Example At a chamber breakfast someone hands over a card. Meet Mode → Scan Card → shutter → four seconds later the name, title, mobile and company are on screen. A line typed into the note — "wants a quote for 40 units" — and Save. The contact is in the CRM before the conversation has finished, tagged with the event. ## Troubleshooting - **Card reading unavailable / "cannot read images"** — Reading a photo needs a vision-capable AI provider, and the workspace's provider does not offer one. Fix: Use the QR Scan or Manual Entry tile instead, or change the AI provider under Settings → Integrations. - **The fields came back wrong or half empty** — Glare, a busy background, an angled shot, or very small or stylised type. Fix: Retake it square to the card, filling the frame, with the card flat on a plain surface. Every field stays editable — type over anything it misread before saving. - **"Too many scans this hour"** — Card reading is rate limited per workspace to keep AI spend predictable. Fix: Wait for the hour to roll over, or add the remaining cards with Manual Entry. ## Plans Card scanning is included on every plan. Reading the photo uses your monthly AI allowance, like other AI features. Source: https://docs.crmown.com/contacts/scanning-a-business-card --- # Exporting Your Data (CSV) _Contacts_ Download your contacts, deals, tasks, conversations or AI history as CSV. Each export is a button on that section's own page — there is no central export screen. ## Steps 1. Contacts: Contacts page → Export. Also available from Analytics. 2. Deals / pipeline: Pipeline page → Export (top toolbar, next to Import). Exports the deals in your pipelines as CSV — this is the answer to "how do I export my deal pipeline". 3. Tasks: Tasks page → Export. 4. AI history: AI Receipts page → Export. 5. The file downloads straight to your browser, named with today's date (e.g. pipeline-2026-09-21.csv). ## Tips - There is no scheduled or automatic export — each one is a manual download. - A full account export (everything at once) is part of the data-privacy tools in Settings > Privacy, not the per-page buttons. - Exports respect what you can see: with visibility set to "owned", you export your own records, not the whole org's. ## Example A sales manager is asked for a board pack showing every open deal. She opens Pipeline, clicks Export, and gets pipeline-2026-09-21.csv with each deal, its stage and value — no report builder needed. ## Troubleshooting - **I can't find an Export option for deals** — It is on the Pipeline page toolbar, not in Settings and not in a reports menu. Fix: Open Pipeline and look along the top row of buttons: Export sits next to Import. - **The downloaded file is empty** — The export follows your current visibility and filters — an empty result means nothing matched. Fix: Clear filters on the page, confirm you can see rows on screen, then export again. Source: https://docs.crmown.com/contacts/exporting-your-data-csv --- # Importing Contacts _Contacts_ Bring in contacts from CSV files, Google Contacts, Outlook, or other sources. ## Steps 1. Go to Contacts and click the "Import" button. 2. Upload a CSV file or connect a workspace sync (Google, Microsoft, iCloud). Any CSV works — no set format. If you'd like a starting point, click "Download the CSV template" under the upload box. 3. Map your CSV columns to CRM fields. 4. Review the preview and click "Import" to finish. 5. Check Import History under Tools to review past imports. ## Tips - De-duplication runs automatically — matching on email and phone. - You can undo an import from the Import History page. - CSV row cap: 25,000 rows per file via the standard import flow (legacy API is capped at 1,000 per call). Files over the cap are rejected — split the CSV into batches of 25K or fewer. ## Example After a trade show, Lin exports 380 booth-scan leads as a CSV. She drags it into Contacts > Import — the AI auto-maps "Company Name" → company, "Title" → jobTitle, and even guesses that the unmapped "Booth Visit Time" column should be a custom field. 47 already exist in the CRM (auto-merged), 333 are created with the tag "tradeshow-2026", and the import log shows exactly which row matched which existing contact. ## Troubleshooting - **CSV import shows "0 contacts imported"** — All contacts in the CSV already exist (matched by email), or the column mapping was wrong. Fix: Check the import summary — it lists skipped duplicates. If column mapping was wrong, re-import with correct mappings. For a clean starting format, use "Download the CSV template" in Contacts > Import. - **Contact import failed** — CSV format issues — wrong column headers, special characters in names, or duplicate emails. Fix: Go to Contacts > Import and click "Download the CSV template" under the upload box. Paste your data into the template columns. Ensure emails are unique and remove special characters from phone numbers, then re-upload. - **Import created contacts but fields are missing** — Column headers in the CSV didn't match CRMown field names so they weren't mapped. Fix: Use the column-mapping screen during import. Map each CSV column to the correct CRMown field. Unmapped columns are ignored. - **Phone numbers imported with wrong format** — CSV had phone numbers as integers (Excel stripped leading zeros / formatting). Fix: In Excel, format the phone column as Text before saving as CSV. Alternatively prefix numbers with a single quote in the CSV. - **Re-importing the same list created duplicates of contacts I already merged** — De-duplication matches on email and phone, including contacts you previously merged or deleted (which are kept as hidden records). A re-import recognizes the match and restores+updates the existing contact rather than creating a new copy. Fix: Use Smart Merge (the default conflict mode) when re-importing. Matched contacts that were merged away are brought back and updated in place, so the same list can be re-imported safely without piling up duplicates. ## Error messages - `File too large` — CSV exceeds the upload limit (25,000 rows for the standard import, 1,000 for the legacy API). Split into smaller files. - `Invalid file type` — Only .csv files are accepted. If you have .xlsx, save as CSV first. - `Import failed: invalid CSV format` — CSV has formatting issues. Use the provided template. Ensure UTF-8 encoding. - `Import failed: duplicate emails found` — Multiple rows have the same email. Remove duplicates before uploading. - `Import timeout` — Very large imports near the 25K cap may timeout on slow uploads. Split into smaller batches (e.g. 10K each). ## Plans All plans support CSV import. Contact limits apply per plan (Starter 10K, Pro 25K, Max 100K). Source: https://docs.crmown.com/contacts/importing-contacts --- # Notes, Quick Notes and Audio Notes — which is which _Contacts_ Three different things share the word "note". This is what each one is for and where it lives. ## Steps 1. Contact notes — typed on a contact record and kept as a thread on that contact. Use for "what we discussed". Contacts → open a contact → Notes. 2. Quick Notes (the floating note widget, listed at Tools → Notes) — jot something anywhere in the app. CRMown AI reads it, writes a summary, proposes tasks and tries to match it to a contact; you review and Apply or delete. Use for a thought you do not want to lose. 3. Audio Notes (Tools → AI Intelligence → Audio Notes) — click "New audio note" to record in the browser, or "Upload audio" to add an existing recording (m4a, mp3, wav, webm or ogg; up to 4 hours / 500 MB). Recordings made in the CRMown mobile app (Audio Notes and Meet Mode voice notes) land here automatically. Each one is transcribed, then summarised into key points, action items and template-specific insights (generic, discovery, demo, renewal…), with a click-to-seek transcript. Use for a call, a meeting or a voice memo. ## Tips - A contact note is just text. Quick Notes propose tasks for you to apply. An audio note gives you a transcript, a summary, key points and action items — each action item shows who it is for and when it is due, and "Convert" turns it into a real task. - Long uploads are handled automatically: big files are compressed for speech, and recordings over about an hour and a half are transcribed in 20-minute pieces and stitched back together, so the transcript timestamps still line up with the audio. - Audio notes show a status while they work (Uploading → CRMown AI analyzing → Ready) and count against your monthly quota, shown on the page. - The AI Notetaker is a fourth thing again: it joins a Zoom/Meet/Teams call and records it for you, rather than you recording a file yourself. ## Example After a client call a rep uploads the recording as an Audio Note and gets a summary plus key points. Walking to the next meeting she fires a Quick Note — "Acme wants pricing by Friday" — and CRMown proposes a task with that due date, which she applies with one click. ## Troubleshooting - **I recorded an audio note and it still says "analyzing"** — Transcription and summarising run in the background; a long recording takes longer. Fix: The card flips to Ready on its own — no refresh needed. If it says Failed, the error is on the card; re-upload usually clears a transient failure. - **My quick note did not become a task** — Proposals are suggestions — nothing is created until you click Apply. Fix: Open Tools → Notes, find the note, review the proposed tasks and Apply. - **Upload audio says the file is too large or too long** — Uploads are limited to 500 MB and 4 hours. Fix: Trim the recording, or export it as m4a/mp3 (much smaller than wav) and upload again. - **A recording from my phone is not in Audio Notes** — The app saves it when you stop recording; if the phone was offline, the upload could not finish. Fix: Open the app again with a connection — it warns you on that screen when audio was not uploaded. Recordings in your phone's own Voice Memos app are not synced automatically; share or download them and use "Upload audio" on the web. Source: https://docs.crmown.com/contacts/notes-quick-notes-and-audio-notes-which-is-which --- # Contact Notes & Activity _Contacts_ Every interaction with a contact is logged automatically — emails, calls, meetings, and manual notes. ## Steps 1. Open a contact's detail page. 2. Scroll to the Activity timeline to see all logged interactions. 3. Click "Add Note" to write a manual note. 4. Click "✦ Generate AI Summary" in the AI Summary card to get a model-written brief of the contact (refreshes on demand). ## Tips - There is no separate "Summary tab" — the AI Summary lives in a card on the contact detail page. - Notes support rich text formatting. - The AI reads notes and activity to give smarter suggestions. ## Example Before a renewal call with a 2-year customer, Dev opens the contact, clicks ✦ Generate AI Summary, and gets a 4-line brief: "Renewing for the 3rd time. Last touchpoint Mar 12 — flagged that pricing for the Pro suite was a stretch. Has championed CRMown internally to two other teams. Watch for: budget pushback in Q2." He walks into the call already knowing the angle. Source: https://docs.crmown.com/contacts/contact-notes-activity --- # Contact Enrichment — Find Emails, Phones & Company Data _Contacts_ CRMown enriches contacts with data from Hunter.io and Apollo.io — finding missing work emails, phone numbers, job titles, company size, industry, and location. An AI fallback fills remaining gaps with conservative inferences (never emails). ## Steps 1. Contacts captured with the CRMown Capture extension are enriched automatically right after they are saved. 2. To enrich one contact, ask CRMown AI ("enrich Bill Walsh"). To enrich in bulk, go to Contacts, select the rows you want, and click "Bulk Enrich" from the toolbar. Choose which missing fields to fill (company, phone, title, website, or all). 3. Enriched contacts get an "ai-enriched" tag so you can segment them later. 4. Review your monthly enrichment usage in Settings > AI Usage. Each provider has its own counter that resets at the start of every month. 5. If you hit a provider's cap, either upgrade your plan or add your own API key in Settings > Integrations for unlimited enrichments on that provider. ## Tips - Matching uses everything CRMown knows: the person's name, the company's real website or work-email domain, and their LinkedIn profile URL (Apollo's strongest match). It never guesses a company's web address from its name. - Hunter is tried first. If Hunter finds no email, Apollo gets a second try — within your plan's included Apollo lookups only, so it never adds overage charges. - Emails are only filled from Hunter or Apollo results. The AI fallback fills things like industry or location, never an email address. - Monthly platform caps per provider — Starter plan: Hunter 75, Apollo 75. Pro plan: Hunter 150, Apollo 150. Max plan: Hunter 600, Apollo 400. - Bring Your Own Key (BYOK): paste your own Hunter or Apollo API key in Settings > Integrations and your usage on that provider becomes unlimited. - Only real API calls count against your cap — AI fallbacks and free domain-based company inference (e.g., "alice@acme.com" → "Acme") are uncounted. - Enrichment never overwrites existing field values — it only fills blanks. ## Example Marcus captures 20 prospects from LinkedIn with the CRMown Capture extension. Enrichment runs on each as it is saved: Apollo matches most of them by their LinkedIn profile URL and fills work emails and phone numbers; Hunter finds two more by company name. The ones neither provider knows (mostly very small companies) keep a blank email rather than a guessed one. ## Troubleshooting - **Enrichment ran but found no email** — Neither Hunter nor Apollo has that person — common for very small companies, new hires, or people who only use a personal email. Fix: Nothing is wrong with the contact. Add the email when you get it; enrichment will not invent one. - **Enrichment says the monthly limit is reached** — Your plan's Hunter and Apollo lookups for this month are used up. Fix: Wait for the monthly reset, add your own Hunter/Apollo key in Settings > Integrations, or enable enrichment overage / buy a Lead Gen Boost in Settings > Billing. Source: https://docs.crmown.com/contacts/contact-enrichment-find-emails-phones-company-data --- # Smart Views — Saved Contact Filters _Contacts_ A Smart View is a saved combination of filters + visible columns + sort order on the Contacts page. Useful for "my hot leads", "stuck for 30 days", "VIP customers in Texas" — opens with one click instead of re-applying filters every time. ## Steps 1. Go to Contacts. 2. Apply filters (stage, score, source, tags, location, custom-field conditions) and adjust which columns are visible. 3. In the Smart Views panel (left of the table), click "+ New View", give it a name, optional emoji + color. 4. Pin frequently-used views; set one as your default so the Contacts page opens to it. 5. Share a view with the team or keep it private. ## Tips - Smart Views are dynamic — contacts move in/out as their data changes. - Different from Segments: Segments are audiences for campaigns; Smart Views are personal/team browsing presets. ## Example Jenna, an SDR, builds three Smart Views she lives in daily: "🔥 Hot — score >80 + last touched <7d", "😴 Stuck — Qualified stage >14d", and "🎯 Today's callbacks — owner=me + dueDate=today". Each takes one click instead of re-applying five filters. Her teammate Alex pins the same "Hot" view and they race the leaderboard. ## Troubleshooting - **Contacts not appearing in a Smart View** — View filters don't match the contact's data — common when filtering on stage but the contact's stage is different. Soft-deleted contacts are also excluded. Fix: Open the view, check the filters, then open the contact and verify its fields match. Check whether the contact was soft-deleted. Source: https://docs.crmown.com/contacts/smart-views-saved-contact-filters --- # Companies (B2B) — Account Records _Contacts_ Companies are first-class B2B records distinct from Contacts. One Company can have many Contacts (decision-maker, champion, billing, etc.); deals/invoices/tasks roll up to the Company level for account-based selling. ## Steps 1. Go to Companies (sidebar > Companies, or via the Account in any contact's detail). 2. Click "+ New Company" — set name, domain, industry, employee count, annual revenue, and tier. 3. On the company page: link existing contacts (or create new ones), see all related deals + invoices, and click "Generate AI Summary" for a brief. 4. Use "Key Accounts" view to see your highest-value accounts with rolled-up deal totals. ## Tips - When you set a Contact's "Company" field, they're auto-linked to the matching Company record (or a new one is created). This includes contacts created automatically by the email sync — the same auto-link runs. - Filter the company list by type, tier, owner, or revenue. - Companies inherit from Contacts for messaging — sending an email at the company level fans out to its primary contact. - Backfill from contacts: top of the Companies page → "Backfill from contacts" walks every contact in the org with a company text but no Company row link, and creates/links the missing Company rows. Use this once after the email-sync auto-link fix landed if your Companies tab is empty even though contacts have a company set. Idempotent — safe to re-run. ## Example CRMown sells to Acme Corp via a champion (the VP Eng), with billing through their procurement contact and rollout coordinated with the IT lead. The Acme company record links all three contacts plus the $48K renewal deal and the open invoice — when the AE opens the company page she sees the full account at a glance and the Key Accounts view shows Acme is a Tier-1 worth $48K total deal value. Source: https://docs.crmown.com/contacts/companies-b2b-account-records --- # Setting Up Pipelines _Pipeline & Deals_ Pipelines represent your sales processes. Each pipeline has customizable stages that deals move through. ## Steps 1. Go to Pipeline from the sidebar. 2. Click "Settings" (gear icon) to manage pipeline stages. 3. Add, rename, reorder, or delete stages. 4. Create multiple pipelines for different processes (e.g., Sales, Onboarding, Support). ## Tips - Each stage can have a default probability for revenue forecasting. - You can create pipeline-specific custom fields. ## Example A consulting firm runs three parallel pipelines: "New Business" (Discovery → Proposal → Won), "Hiring" (Sourced → Phone → Onsite → Offered → Hired), and "Vendor Onboarding" (Selected → Contract → Provisioned). One CRMown account, three workflows, no spreadsheet sprawl. ## Troubleshooting - **Stages disappeared or changed order** — Another admin may have edited the pipeline settings, or the pipeline was reset during an industry change. Fix: Pipeline > gear icon > Edit Stages. Re-add or reorder. If stages were deleted, any deals in those stages are moved to the first stage. ## Error messages - `Pipeline not found` — The pipeline may have been deleted by another admin. Pipeline > dropdown > select a different pipeline or create a new one. ## Plans All plans include pipelines. Starter: 3 pipelines, Pro: 10, Max: unlimited. Pipeline templates available on all plans. Roles: every member can create pipelines and manage the ones they created; editing or deleting pipelines built by someone else (shared org pipelines) requires an admin-level role (Owner/Admin/Executive). Source: https://docs.crmown.com/pipeline/setting-up-pipelines --- # Managing Deals _Pipeline & Deals_ Deals (pipeline contacts) track opportunities through your sales process. ## Steps 1. Click "+ Add Deal" in any pipeline stage. 2. Assign a contact, deal value, expected close date, and owner. 3. Drag and drop deals between stages as they progress. 4. Click a deal card to see full details, notes, and activity. ## Tips - Toggle between Kanban (default drag-and-drop board) and Timeline (Gantt chart of expected/actual dates) at the top of the pipeline page. - Filter deals by owner, value range, or expected close date. - Lost deals can be archived and reviewed later. - Open the Coach sidebar (right edge) to ask deal-specific questions; see also Pipeline Pulse and Transition Playbooks for the AI features layered on top. ## Example Friday afternoon: an AE drags 4 deals from "Demo Booked" to "Proposal Sent", marks one as "Closed Won" ($24K, popping confetti), and switches to Timeline view to spot two deals whose expected-close dates are slipping past quarter-end. She filters by owner=me + value>$10K to focus the rest of her afternoon on the highest-leverage follow-ups. ## Troubleshooting - **Can't drag cards between stages** — Browser compatibility (rare in Chrome) or the pipeline view is in list mode instead of Kanban. Fix: Make sure you're in Kanban view (toggle at the top). Try Chrome if using another browser. Hard refresh the page. - **Pipeline value shows $0** — Deal values weren't set when adding contacts to the pipeline, or the value field is empty. Fix: Click each deal card, enter the deal value in the Value field, save. - **Can't add a contact to a pipeline** — The contact may already be in that pipeline, or the pipeline is item-backed (not contact-backed). Fix: Search the pipeline for the contact's name. If they're already there, they show in an existing stage. For item-backed pipelines, use "+ Add Item" instead of "+ Add Contact". - **Custom fields not showing on pipeline cards** — Pipeline card preview only shows title, value, and stage by default. Custom fields are in the detail view. Fix: Click the card to open the detail panel — custom fields are visible there. Card previews show limited info by design. ## Error messages - `Failed to move deal` — Network error during drag. Refresh and try again. The deal stays in its original stage until the move succeeds. Source: https://docs.crmown.com/pipeline/managing-deals --- # Timeline View — Scheduling & Dependencies _Pipeline & Deals_ Switch from Kanban to Timeline at the top of the Pipeline page to see deals as a Gantt chart. Drag the bars to reschedule, draw arrows between bars to link dependent deals (e.g. "Onsite Demo can't happen until Discovery is done"), and click an arrow to remove the link. Deals with an unmet dependency render with a "blocked" status until their predecessor completes. ## Steps 1. Open Pipeline > Timeline (toolbar, between Kanban and Grid). 2. Drag the body of a bar to shift both its start and due dates. Drag the left edge to move only the start; drag the right edge to move only the due date. Each commit auto-saves. 3. Each bar has a small blue dot at its right edge — that's the dependency handle. Click and drag from one bar's dot to another bar to link them: "the second bar depends on the first." 4. Once a link is created a dashed arrow appears from the source bar's end to the target bar's start. Frappe-gantt draws this automatically from the underlying dependsOn array. 5. To remove a dependency, hover the dashed arrow until it turns red, then click. A confirmation dialog asks "Remove this dependency?" — confirm to delete. 6. Zoom between Day / Week / Month / Year using the buttons at the top, or scroll the mouse wheel over the timeline. ## Tips - Direction matters: drag FROM the predecessor TO the successor. The successor's status flips to "blocked" until the predecessor is marked complete (has a completedDate set). - Self-links and cycles are refused automatically — if "B depends on A", you can't also make "A depends on B" (the UI shows an alert and aborts the drag). - Bars use the deal's startDate + dueDate. If only expectedClose is set (e.g., a deal you created from the Grid), Timeline treats expectedClose as the due date so the bar still lands on a real day. - Timeline + Grid + Calendar share the same dates. Editing expectedClose inline on the Grid moves the Timeline bar on next refresh, and vice versa. - The connector dots only render on contact-backed pipelines today. Item-backed pipelines (where deals have no associated contact) show the dots but blocking dependencies is not yet wired — clicking the dot shows an "Item-backed deals can't have dependencies yet" alert. - AI Schedule (top of Timeline) fills in missing due dates in bulk based on stage SLAs and dependency order. Use it once to seed dates, then drag to fine-tune. ## Example A solutions engineer manages 6 enterprise deals where the demo can't happen until security review clears. She switches to Timeline, drags the bars to set realistic dates, then connects each "Demo" bar to its "Security Review" predecessor with the blue dot. All six Demo bars instantly flip to "blocked" (gray) until their reviews close. As reviews complete week-over-week she marks them done; the dependent Demo bars auto-flip to "upcoming" (purple). One deal slips — she clicks its arrow, removes the dep ("Procurement says they'll demo without the review"), and the bar goes blue again. ## Troubleshooting - **I dragged the dot to another bar but no arrow appeared** — Either the drop didn't land on a bar (the cursor was over whitespace), or the target deal is item-backed (no associated contact). The backend dependency endpoint is contact-keyed. Fix: Try again with the cursor clearly over the target bar — you'll see it light up with a blue halo while you're hovering. If it's an item-backed pipeline, dependencies aren't supported yet (UI shows an alert). - **Arrow is there but my deal still shows "upcoming", not "blocked"** — The predecessor is already complete (has a completedDate set), so the dependency is satisfied. Pulse only marks dependents blocked while at least one predecessor is incomplete. Fix: Working as designed. If you expected blocked, double-check the predecessor isn't already marked Won/Lost/Completed. - **Arrow not visible on light theme** — CSS theme variable issue — was a bug in May 2026, fixed by switching arrow stroke to currentColor. Fix: Hard-refresh (Cmd-Shift-R / Ctrl-Shift-R). If still hidden, file a ticket — older builds shipped with arrows in white-at-40%-opacity that disappeared against the page. - **Trying to drag a bar but a tooltip popup keeps opening instead** — You clicked on the bar body (which opens the deal popup) instead of grabbing the resize/drag handles, which sit slightly inside the left and right edges. Fix: Click-and-hold on the very center of the bar to drag it as a whole. For resize, hover the left or right edge until the cursor flips to a horizontal arrow. ## Error messages - `That link would create a cycle.` — You tried to add a dependency that would form a loop (A→B, B→A, or longer chains). The link is refused — break the existing chain first. - `Item-backed deals can't have dependencies yet.` — The target deal has no contact attached, so the contact-keyed deps endpoint can't address it. Dependencies on item-backed pipelines are a planned follow-up; for now use contact-backed pipelines for dependency-driven work. - `Link failed: ` — The save round-trip failed. Most common reasons: network blip, backend returned a 4xx (rare — only if validation fails on the dependsOn array), or auth expired. Refresh and retry. ## Plans All plans include Timeline view, drag-to-reschedule, and dependency editing. AI Schedule (bulk date-fill) counts against your monthly AI quota. Source: https://docs.crmown.com/pipeline/timeline-view-scheduling-dependencies --- # Pipeline Pulse — Continuous Health Monitoring _Pipeline & Deals_ Pulse continuously scores every deal's health (0–100) using stage-stuck time, activity gaps, missing fields, and SLA breaches. The badge in the pipeline header shows the overall pipeline health; per-deal dots flag at-risk and overdue items. ## Steps 1. Open Pipeline. The Pulse badge at the top of the page shows the rolled-up health score plus at-risk + overdue counts. 2. Click a deal's health dot (red/amber/green next to the card) to see the specific risk factors (e.g. "no activity 14 days", "missing close date", "stuck in Qualified 3× the median"). 3. Configure per-stage SLA + target duration in Pipeline > AI Settings so Pulse knows what "stuck" means for your team. ## Tips - Pulse runs in the background — scores refresh on every stage change, message, or daily sweep. - Disable Pulse per pipeline from Pipeline > AI Settings if you want a quieter view. - History is kept in PipelineHealthSnapshot — you can see weekly health trends over time. - Snapshot retention: every snapshot is kept for the first 14 days, then deduplicated to one-per-day-per-pipeline from 14 to 90 days, then dropped entirely past 90 days. This is intentional — raw snapshot volume is high and the long tail is rarely actioned. ## Example A sales manager opens the New Business pipeline on Monday — Pulse shows the rolled-up score dropped from 78 to 64 over the weekend, with 3 deals flagged red. She clicks the first red dot: "no activity 18 days, decision-maker stopped replying, expected close in 4 days." She reassigns it to a senior closer with a Slack-style note, fixes the next two herself, and the pipeline score is back to 76 by Wednesday. ## Troubleshooting - **Health trend chart has gaps or a flat line for anything older than ~2 weeks** — Snapshot retention policy: 14 days of every snapshot, then one-per-day up to 90 days, then hard-deleted. So older trend points are naturally sparser and dates past 90 days show no data at all. Fix: Working as designed. For a finer-grained audit, export the current snapshot via Analytics before retention rolls forward. - **A deal in a "Closed Won" or "Archived" stage isn't counted in Pulse's active-item stats** — Pulse treats stages named (case-insensitive) closed won, closed lost, resolved, cancelled, archived, published, completed, or done as terminal — they're excluded from active counts and from the Coach's reasoning context. Fix: Working as designed. If you expected the deal in scope, rename the stage to something that isn't in that reserved set. Source: https://docs.crmown.com/pipeline/pipeline-pulse-continuous-health-monitoring --- # Transition Playbooks — AI Suggested Next Steps _Pipeline & Deals_ For each deal, the AI generates a Playbook: a short ranked checklist of next steps that move the deal forward (specific email to send, stakeholder to loop in, gating question to answer). Playbooks regenerate when context changes. ## Steps 1. Open any deal card from the pipeline. 2. The Playbook section lists ranked next-step suggestions with reasoning. 3. Click an action to draft the message / create the task / move the stage with one click. 4. Mark steps as done; the Playbook regenerates around what's left. ## Tips - Playbooks are tailored to the deal's pipeline AI Profile (see Pipeline AI Settings). - Re-generate manually if the deal context just changed materially (new email, new stage). ## Example A junior AE opens the "Acme — $36K Annual" deal that's been sitting in Proposal for 9 days. The Playbook reads: "1) Send pricing comparison vs. their incumbent (a deck is referenced in your Mar 14 email); 2) Loop in their CFO Maya — she's been cc'd on past procurement deals at Acme; 3) Offer a 14-day pilot to address the risk objection from the demo." Each item is one click to action — he sends the deck and books the CFO intro within 5 minutes. Source: https://docs.crmown.com/pipeline/transition-playbooks-ai-suggested-next-steps --- # Pipeline Auto-Enrichment _Pipeline & Deals_ When a deal lands in a pipeline, the AI fills in missing custom-field values from the contact record, recent emails, meeting transcripts, and connected enrichment providers — so reps don't have to type the same data twice. ## Steps 1. Add a custom field to a pipeline (e.g. "Budget", "Decision-maker", "Use case"). 2. Auto-enrichment runs on item creation and on big context changes (new email, meeting transcript). 3. Each filled field shows a source badge: user-entered, AI-extracted, or system-derived. 4. Hover any AI-filled value to see the supporting evidence (the email/sentence it was extracted from). ## Tips - You can always overwrite an AI value — the source flips to "user" so it won't be re-overwritten. - Disable per-pipeline from Pipeline > AI Settings. ## Example A new lead, "Maya at Trellis Robotics", lands in the New Business pipeline from a webform. Auto-enrichment reads her welcome email + the contact's LinkedIn URL and fills in: budget=$25K (extracted from "we're looking at the $20–30K tier"), decisionMaker=Maya (she signed off in the email), useCase="warehouse pick-and-place" (from her demo notes). The AE opens the deal already knowing what to pitch. Source: https://docs.crmown.com/pipeline/pipeline-auto-enrichment --- # Pipeline AI Settings _Pipeline & Deals_ Per-pipeline knobs for the AI features (Pulse, Playbooks, Auto-enrichment, Type Intelligence): turn them on/off, set stage SLAs, edit the AI Profile that describes the pipeline's "personality" (sales vs. support vs. hiring vs. vendor). ## Steps 1. Open Pipeline > pick a pipeline > AI Settings (top-right gear or "AI" button). 2. Toggle "AI enabled" to switch all AI features on/off for this pipeline. 3. Per stage: set targetDurationDays (when does Pulse flag "stuck"?) and slaHours (when does it escalate?). 4. Edit the AI Profile JSON to change deal type, key questions, success criteria — Coach + Playbooks read this. ## Tips - New pipelines inherit the AI Profile from their template. Override per pipeline if it's a different flavor. - Disabling AI per-pipeline stops Pulse, Playbooks, Auto-enrichment, and the advance scanner for that pipeline only. ## Example The team's "Customer Onboarding" pipeline keeps generating Playbooks that sound like sales pitches. The CSM lead opens AI Settings, sets the Profile to {dealType: "post-sale onboarding", successCriteria: "first value within 14 days, full team activated within 30"}, and bumps "Kickoff" stage SLA to 48h. Pulse + Playbooks now speak the right language and stop nagging her with "send a discount" suggestions. Source: https://docs.crmown.com/pipeline/pipeline-ai-settings --- # Using the Unified Inbox _Conversations (Unified Inbox)_ Conversations aggregates messages from all connected channels into a single inbox. Reply to emails, SMS, WhatsApp, Facebook, Instagram, X, LinkedIn, and YouTube comments — all from one screen. ## Steps 1. Go to Conversations from the sidebar. 2. Click "+ Compose" at the top of the conversation list to start a brand-new message — pick a channel, search an existing contact (or type a new email/phone), add subject + body, Send. 3. Browse existing threads on the left panel — each shows the channel icon, contact name, and last message preview. 4. Click a thread to view the full conversation and reply with the channel tabs at the bottom of the message pane. 5. Use the channel selector at the top to filter by specific channels — All, Email, SMS, WhatsApp, Web Chat, Facebook, Instagram, LinkedIn. 6. Click the contact name to view their full CRM profile. ## Tips - Drafts: anything you start and don't send is saved automatically — replies inside a conversation and new messages from Compose. Find them under Conversations → Drafts (next to Inbox / Sent / Deleted); click one to pick up where you left off, or hover and click Discard. Drafts are private to you and follow you to any device. Compose shows "Draft saved" once it has been stored. - Scheduled sends: pick a time with the clock button when sending. Until it goes out, the message shows an amber "Sends