What is SuiteCRM? SuiteCRM is an open-source Customer Relationship Management platform built on top of SugarCRM Community Edition. It provides a 360-degree view of your customers and business operations, bringing
What is SuiteCRM?
SuiteCRM is an open-source Customer Relationship Management platform built on top of SugarCRM Community Edition. It provides a 360-degree view of your customers and business operations, bringing together sales, marketing, and support workflows in one system. On Day 1, you get comfortable with the SuiteCRM interface — understanding how data is structured, how to navigate the UI, and how the platform handles information across its core modules. Before you can develop anything meaningful in SuiteCRM, you must understand CRM basics and how it approaches and organizes data, and that is exactly what our Day 1 training will teach you.
Core Modules
SuiteCRM organizes all business data into Modules. Each module represents a category of records — like tables in a database, but with a full UI built around them.
- Accounts: Organizations or companies you do business with. The anchor record that links to Contacts, Opportunities, Cases, and more.
- Contacts: Individual people, typically linked to an Account. Holds phone numbers, emails, titles, and interaction history.
- Leads: Prospective customers not yet qualified. Can be converted into Contacts, Accounts, and Opportunities.
- Opportunities: Active sales deals with a monetary value, close date, and pipeline stage (e.g., Prospecting → Closed Won).
- Cases: Support tickets submitted by customers, used by the support team to track resolution.
- Calls, Meetings, Tasks, Notes: Activity modules that log every customer interaction and keep historical context.
- Campaigns: Email and marketing campaigns, complete with target lists, templates, and ROI tracking.
- Documents: Centralized file storage attached to any record in the system.
All 22 Field Types in SuiteCRM
Every module is made up of Fields — the individual data points stored on a record. SuiteCRM supports 22 field types. Custom fields added through Studio are stored in the _cstm table and use the _c suffix.
| Field Type | DB Type | Key Notes |
|---|---|---|
| Text (VARCHAR) | Multi-line. No character limit enforced at the DB level. Used for notes/descriptions | Single-line input for names, codes, and short labels. Default max 255 chars. |
| Text Area | TEXT | Multi-line. No character limit enforced at DB level. Used for notes/descriptions |
| Integer | INT | Whole numbers. No decimal places. |
| Currency | DECIMAL(26,6) | Monetary values. Uses system currency settings. |
| Float | DOUBLE | Decimal numbers where precision is less critical. |
| Decimal | DECIMAL(26,6) | High-precision numbers for measurements or scientific values. |
| Date | DATE | Date only (no time). Formatted per user locale. |
| DateTime | DATETIME | Date + time. Always stored as UTC; displayed per user timezone. |
| Checkbox | TINYINT(1) | Boolean true/false toggle. 0 = false, 1 = true in the database. |
| DropDown | VARCHAR(100) | Single-select from a named dropdown list (e.g., account_type_dom). |
| MultiSelect | TEXT | Multiple options stored as caret-delimited string (^value1^^value2^). |
| Relate | VARCHAR(36) + VARCHAR(255) | UI link to another module. Stores both UUID and display name. |
| ID (Relate ID) | CHAR(36) | Hidden companion field storing the UUID. Suffix _id (e.g., account_id). |
| email_addresses table | Stored separately. Supports primary, secondary, opt-out, invalid flags. | |
| Phone | VARCHAR(100) | Phone number string. No validation built-in — treat as text. |
| URL | VARCHAR(255) | Web address. Renders as clickable link in DetailView. |
| Image | VARCHAR(36) (file UUID) | Image file (JPEG/PNG/GIF). Stored in upload/ directory. |
| File | VARCHAR(36) (file UUID) | Any file type. Stored in upload/ directory by UUID filename. |
| Calculated | VARCHAR or TEXT | Read-only field computed from other fields using a formula. |
| Encrypt | TEXT (encrypted) | Stores AES-encrypted text. Only decrypt via SuiteCRM APIs. |
| Address | 5× VARCHAR columns | Composite: Street, City, State, Postal Code, Country — 5 DB columns. |
| FullName | first_name + last_name | Compound display field. Respects locale (Last, First vs First Last). |
Views in SuiteCRM
SuiteCRM renders each record through four distinct Views. The key aspect of CRM basics is understanding which view you're in matters when customizing layouts in Studio.
ListView: The searchable grid of all records in a module. Columns are configurable. Supports inline editing.
DetailView: The read-only single-record page. Shows all visible fields organized in a 2-column layout by default.
EditView: The form used to create or edit a record. Shares layout panel with DetailView in Studio.
SearchView: Basic and Advanced search forms above ListViews. Customized separately from other views.
Do: Always use Studio for client-facing layout changes. Don't: Edit core module files in the modules/ directory — your changes will be overwritten on upgrade. Use the custom/ extension folder instead.
Relationships
Relationships define how records in different modules connect. SuiteCRM supports three relationship types:
One-to-One (1:1): Rare in SuiteCRM; typically implemented as a 1:M with a UI constraint.
One-to-Many (1:M): A single parent record links to many child records. Stored as a foreign key column on the child table (account_id on Contacts).
Many-to-Many (M: M): Any record in module A can link to many records in module B and vice versa. Stored in a relationship table (e.g., accounts_contacts).
Example: Relationship Definition in Vardefs
// Example relationship definition in vardefs
'relationships' => [
'accounts_contacts' => [
'lhs_module' => 'Accounts',
'lhs_table' => 'accounts',
'lhs_key' => 'id',
'rhs_module' => 'Contacts',
'rhs_table' => 'contacts',
'rhs_key' => 'account_id',
'relationship_type' => 'one-to-many',
],
],
Do's and Don'ts
- DO: Prefix all custom fields and modules with a company or project identifier (e.g., ow_) to avoid naming collisions.
- DO: Place all custom code inside custom/Extension/ or custom/modules/ — never in core directories.
- DO: Run Quick Repair & Rebuild (Admin → Repair) after any metadata change to regenerate caches.
- DON'T: Delete fields that have existing data — mark them hidden in layouts instead, then migrate data before removal.
- DON'T: Create relationships through direct SQL inserts — always use the SuiteCRM relationship API or Studio.
- DON'T: Share admin credentials. Use role-based access (Security Suite) for granular permissions.
What’s Next
That’s the end of our discussion on CRM basics. This is all you need to understand about SuiteCRM on Day 1. With modules, fields, views, and relationships as your foundation, Day 2 builds directly on top — Studio lets you customize existing modules without touching code, Module Builder lets you create entirely new ones from scratch, and the Extension Framework ensures every change you make survives an upgrade.
Read More:
What Is CRM Hosting? Types, Comparison & How to Choose the Right Solution
Respond to this article with emojis