Dedicated CRM

EspoCRM

Not a CRM - fails on status, actual close date, opportunity reporting

Every verdict, with its evidence

Core objects

In full

Opportunity entityDefs carries separate 'account' and 'contact' link fields to Account and Contact entities; Call, Meeting and Task are separate activity entities, all mutually linkable.

Source: https://github.com/espocrm/espocrm/blob/master/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Opportunity.json

Verification: Verified

Pipeline stages

In full

Opportunity 'stage' is an enum field with an ordered options list (Prospecting through Closed Won/Lost) and a probabilityMap; every record carries its stage.

Source: https://github.com/espocrm/espocrm/blob/master/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Opportunity.json

Verification: Verified

Status

Not at all

The Opportunity schema has only 'stage' and 'lastStage' fields; no separate open/closed status attribute exists. Open vs. closed is read from the stage value itself.

Source: https://github.com/espocrm/espocrm/blob/master/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Opportunity.json

Verification: Verified

Resolution

In part

No dedicated won/lost field; won vs. lost is inferred from the 'Closed Won'/'Closed Lost' stage values - the stage-metadata pattern.

Source: https://github.com/espocrm/espocrm/blob/master/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Opportunity.json

Verification: Verified

Value

In full

'amount' is a required currency field on Opportunity, with a derived amountConverted field for reporting.

Source: https://github.com/espocrm/espocrm/blob/master/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Opportunity.json

Verification: Verified

Scope of work

In full

Quote entity type relates to Opportunity and carries an itemized list: 'A Quote has a list of items. Each item can represent a certain product or a service.' Ships in Sales Pack, a vendor module (still native per ruling).

Source: https://docs.espocrm.com/user-guide/quotes/

Verification: Verified

Expected close date

In full

'closeDate' is a required native date field on Opportunity, used while the opportunity is open (e.g., grouped by month in forecast reports).

Source: https://github.com/espocrm/espocrm/blob/master/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Opportunity.json

Verification: Verified

Actual close date

Not at all

The schema enumeration shows only one date field, 'closeDate', with no second field for actual close date and no vendor documentation that it doubles as the actual date once closed.

Source: https://github.com/espocrm/espocrm/blob/master/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Opportunity.json

Verification: Verified

Opportunity owner

In full

'assignedUser' is a link field to User on Opportunity, distinct from 'createdBy' and 'modifiedBy'.

Source: https://github.com/espocrm/espocrm/blob/master/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Opportunity.json

Verification: Verified

Linked buyer

In full

Opportunity has a 'contact' single-link field to Contact, separate from the 'account' link to the organization.

Source: https://github.com/espocrm/espocrm/blob/master/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Opportunity.json

Verification: Verified

Record preservation

In full

Deletion is soft (a 'deleted' flag) and only occurs via an explicit call, not on closing; closed-won opportunities are documented as counted in default sales dashlets.

Source: https://docs.espocrm.com/development/orm/, https://docs.espocrm.com/user-guide/sales-management/

Verification: Verified

Structured lost reasons

In part

No shipped lost-reason field exists on Opportunity. The Report module lets users group and COUNT records by any field, including buyer-built custom enum fields, so a custom reason field is countable.

Source: https://github.com/espocrm/espocrm/blob/master/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Opportunity.json, https://docs.espocrm.com/user-guide/reports/

Verification: Verified

Email sync

In full

Native IMAP fetches incoming mail and native SMTP sends outgoing mail from within EspoCRM, configurable per user; both directions ship in core.

Source: https://docs.espocrm.com/user-guide/imap-smtp-configuration/

Verification: Verified

Calendar sync

In full

Google Integration extension supports a 'Two-way' sync direction option between EspoCRM and Google Calendar (separately licensed module, still native per ruling).

Source: https://docs.espocrm.com/extensions/google-integration/calendar/

Verification: Verified

Schedulable activity types

In full

Default schedulable types are Call, Meeting and Task, but documentation states 'An administrator can create a custom entity type of an Event type' and configure it as an activity available on the Calendar.

Source: https://docs.espocrm.com/user-guide/activities-and-calendar/

Verification: Verified

Opportunity reporting

Not at all

Built-in sales dashlets (Sales Pipeline, Sales by Month, Opportunities by Stage) are distributions/charts, not rates. Revenue forecasting requires manually building a Report from scratch; no built-in stage-conversion-rate or win-rate report exists.

Source: https://docs.espocrm.com/administration/dashboards/, https://www.espocrm.com/tips/forecast-revenue/

Verification: Verified