Help center

How to use Xpotting

Step-by-step guide to the company scouting and CRM platform — web, mobile, and API.

Getting started

Xpotting is a multi-tenant B2B scouting & CRM platform. Each company gets its own isolated workspace — you cannot see other companies' data, and outsiders cannot see yours.

  1. Sign in with the account you received via the invite link.
  2. Open the Company page and fill in the company profile (name, country, description, main products).
  3. In Scouting, create a scouting profile (e.g. a specific product or service).
  4. Start a New spot — upload a business card, booth, or customer document photo.
  5. The AI agents run the full analysis (foreground, background, relevance, persona, pitch, follow-up), and the result appears under Leads.
Company & team

Every user can belong to multiple companies. Use the company switcher in the top bar to change workspaces.

  • Company admins can invite teammates from the Team page — invited colleagues register through the emailed link.
  • New company creation is enabled by default, but a superadmin can disable it globally.
  • On the company dashboard, admins see company-wide stats; members only see their own.
Capturing spots

A spot is one observation: a business card, booth, talk photo, or uploaded customer document. Every spot belongs to a scouting session, which belongs to a scouting profile (product).

  1. Pick a scouting profile or create a new one (Scouting → New profile).
  2. Click New spot and upload a photo or document (PNG, JPG, PDF, DOCX).
  3. The AI pipeline runs 7 agents: Visual → Background → Relevance → Prioritization → Persona → Pitch → CRM.
  4. You see a live stream during the run — a lead is created automatically at the end.
Leads & contacts

The Leads page lists every company-level hit by priority (A+ → C) and relevance. Each lead carries: foreground and background analysis, recommendations, pitch outline, qualification questions, suggested follow-up email, and linked contacts.

  • Every field is editable — persona, use-case, pitch, next step. All edits and deletes ask for confirmation.
  • You can add a new contact to an existing lead without re-running the full pipeline — even from a business-card photo.
  • The Enrich button reruns foreground / background research without overwriting your manual edits.
Mobile app & voice notes

The mobile client uses the same public REST API (/api/public/v1/*) with a Bearer token or an API key. From the mobile app you can add to an existing lead:

  • A new business card — photo upload with automatic contact extraction.
  • A text note — attached directly to the lead.
  • A voice note — uploaded to the spot-uploads bucket, then transcribed via Lovable AI (openai/gpt-4o-mini-transcribe) STT.
API keys & integration

Every user can generate one or more API keys (SHA-256 hashed, shown only once at creation). The mobile app or any external integration uses this to call the public API.

  • The server endpoint URL is displayed on the Profile / Settings page — enter that and the API key on mobile.
  • Full reference: /api-docs (Swagger UI, OpenAPI 3.1).
Microsoft OneNote & Teams notes

On Settings → Integrations you can connect your Microsoft account so every new lead gets a OneNote page created automatically.

  • Personal notebook — the OneNote on your own OneDrive (/me/onenote).
  • Group (Teams) notebook — pick a Teams team, then its notebook and section. Pages are written to the OneNote that lives on the team's SharePoint site (/groups/{id}/onenote or /sites/{siteId}/onenote) — not to your personal account.
  • The selected notebook, section and — for groups — the groupId are saved on your profile, so the Create test page button and automatic lead pages end up in the right place.
  • If you get a 404 (20102): usually you don't have access to the team notebook, or the team hasn't provisioned one yet. Open it once in Teams, then re-pick the section and save.
Security & privacy
  • PostgreSQL Row Level Security on every table — cross-tenant leakage is impossible.
  • Roles live in a separate user_roles table, checked by a security-definer function in a private schema — safe against privilege escalation.
  • Uploads use signed URLs and land in the tenant's own bucket.