Lightweight CRM. Replaces Salesforce Essentials / HubSpot CRM Free. Contacts, accounts, leads, opportunities, tasks, calendar. Lighter than ERPNext's CRM module — pick this when you need CRM without the full ERP machinery.
| Field | Value |
|---|---|
| Container | ${CONTAINER_PREFIX}espocrm (web + cron-runner + db) |
| Image | espocrm/espocrm |
| Internal port | 80 |
| External port | ${ESPOCRM_PORT} (default 8087) |
| Database | MariaDB |
| Storage | espocrm-data + espocrm-mariadb-data |
| Backup type | database + volume |
| Classification | enterprise |
| Profiles | support, full |
| Default SSO | oauth |
| Recipe | What it does |
|---|---|
just espocrm-status / -logs / -restart |
Lifecycle |
just espocrm-mysql [ARGS] |
DB shell |
just espocrm-list-users |
List users |
just espocrm-create-user --email=… |
Create user |
just espocrm-rebuild |
Rebuild EspoCRM after config changes (clears cache, rebuilds metadata) |
EspoCRM UI → Contacts → Menu (•••) → Import
- Upload CSV
- Map columns to fields
- Run import
For >1000 contacts, batch the CSV. The UI handles import in chunks but very
large files time out.
Admin → Entity Manager → Contact → Fields → + Add
- Type: Varchar / Date / Enum / etc.
- Required: yes/no
- Default: ...
- Click "Save" then "Rebuild" (or run `just espocrm-rebuild`)
The Rebuild step is what makes the custom field visible in the UI + API.
Admin → Workflows → + Create Workflow
- Target Entity: Lead
- Trigger: Status changes to "Qualified"
- Actions: Create Task / Send Email / Create Opportunity
EspoCRM's workflow engine is closer to "form-based no-code" than n8n's
node-based approach. For cross-service automation (Lead → n8n → Mattermost
notification), expose via n8n webhook + EspoCRM workflow that POSTs to it.
Export from Salesforce → Reports → Customise standard report → Run + Export.
Map fields via EspoCRM's import wizard. See
/pma/cookbook/migrate-from-cloud-saas.
sso.type: oauthjust sso-check espocrm
just sso-fix espocrm
EspoCRM has built-in OAuth client support. First login auto-provisions
the user with a default role; promote via Admin → Users.
espocrm-rebuild is required after structural changes. Adding fields,
changing entity definitions, layout edits — none take effect until
rebuild. The UI prompts when needed; the recipe does it from CLI.
MariaDB-backed (not Postgres). EspoCRM ships with MariaDB. Use
just espocrm-mysql for DB-level operations (not -psql).
The cron container matters. Background tasks (scheduled workflows,
email reminders, recurring activities) run in espocrm-cron. just status espocrm shows both web + cron — both must be healthy.
Storage scales with attachments. Contacts × emails × attachments. Plan
for ~1-10 GB depending on usage.
Open-source vs Cloud edition. PMA bundles open-source (Community)
EspoCRM. The hosted "Cloud" edition has additional features (advanced
workflows, BPM, advanced reports). For most teams, OSS is fine.
| Symptom | First check |
|---|---|
| Custom fields don't show in UI | just espocrm-rebuild |
| Scheduled workflows not firing | Cron container unhealthy; just status espocrm |
| Login fails after Authentik change | just sso-check espocrm |
| Email reminders not sent | Outbound SMTP config in Admin → Outbound Emails |
| Slow list views | Large entity + missing indexes; add via DB |
/pma/services/erpnext — pick ERPNext if you need full ERP (sales pipeline + inventory + invoicing); EspoCRM is CRM-only./pma/cookbook/migrate-from-cloud-saas — Salesforce → EspoCRM pattern.