CRM — Frequently Asked Questions
Common questions about Metadot CRM: how contacts, opportunities, mailers, and forms work.
What is Metadot CRM?
Metadot CRM is a self-hosted customer relationship management module. It tracks leads, contacts, companies, opportunities, activities, and email campaigns in one workspace alongside the rest of Metadot (project boards, helpdesk, asset tracking, invoicing). Contact data lives in your own Postgres database, not a third-party SaaS.
Who uses Metadot CRM?
- Sales reps tracking deals and pipelines
- Customer-success teams logging activities and managing renewals
- Founders running their own pipeline before hiring sales
- Agencies and MSPs managing many client orgs from one multi-tenant install
- Teams that need data residency (GDPR, schrems II) or self-hosting for compliance
How are contacts and identities related?
Every person in Metadot lives in the shared identity_core table — one row per human per workspace, holding name, email, phone, and job title. CRM contacts are a participation row that points at an identity. The same identity can also be a Stackr task assignee, a ticket requester, or an InvoiceMe customer. This means a contact's email and name update everywhere when you edit them in one place.
Can two contacts have the same email?
No. Email uniqueness is enforced per workspace via UNIQUE(workspace_id, primary_email) on identity_core. If you try to create a contact with an email that already exists, you'll match the existing identity instead.
How do I import contacts from a CSV?
Use the bulk import: bulkInsertIdentities() handles 100 identities per round-trip. Map your CSV columns to identity fields (email, name, phone, jobTitle) plus CRM-specific fields (lead status, source, custom tags). The CRM module documentation covers the platform UI flow.
What's the difference between a lead and an opportunity?
A lead is a person who hasn't qualified yet — top of funnel. An opportunity is a potential deal, attached to a contact and (usually) a company, moving through pipeline stages. You can convert a lead to an opportunity once they qualify; the conversion creates the opportunity and links it to the same identity.
How does email integration work?
Metadot CRM uses the Mailers sub-module (under crm/mailers) for sending email. You configure SMTP credentials (or Resend in production) and each user can connect their sending mailbox. Outbound emails get logged on the contact's activity timeline. Mailers also drives email campaigns to lead/contact lists.
Can I trigger workflows from CRM events?
Yes. Every server action emits an event. You can build a no-code workflow (in the Workflows module) that listens for CRM_OPPORTUNITY_STAGE_CHANGED, CRM_CONTACT_CREATED, etc., and runs IF/THEN logic — send an email, create a task, update a field, post to a webhook. The trigger registry has 41+ events; CRM events are a subset.
How do public lead-capture forms work?
Build a form in the Forms module (under crm/forms), publish it at a public URL, and each submission becomes a CRM lead automatically. Form submissions emit FORM_SUBMISSION_RECEIVED events with the answers; you can wire workflows to send emails, create tasks, or notify Slack on submission.
What roles can manage contacts?
Permissions follow the app role registry. By default org_admin and site_admin can manage all CRM data; staff can manage records they own; readonly can view only. Role permissions are configurable per workspace. See Roles & Permissions for the exact matrix.
How does Metadot CRM compare to HubSpot?
Different products for different situations. Metadot wins on data ownership, multi-tenant capability, and unified workspace; HubSpot wins on marketing automation depth, app marketplace, and zero-setup. See the full comparison: Metadot CRM vs HubSpot.
Is there a mobile app?
Not currently. Metadot is web-first. The web UI is responsive and works on mobile browsers, but there's no native iOS or Android CRM app. Field sales teams who need offline-capable mobile should weigh this.
Related
Was this page helpful?