Contact Database Structure #
Core Contact Information #
The contact system provides comprehensive contact management with extensive personal and business information:
Personal Information:
- Name Management: First name (required) and last name with automatic display name generation
- Contact Details: Email addresses, phone numbers, and physical addresses
- Social Profiles: Skype, Telegram, and LinkedIn profile integration
- Personal Data: Birth dates and last contacted timestamps for relationship tracking
- Company Details: Company name field for business associations
- Website Information: Website URLs for professional contact tracking
- Address Management: Complete address with address line, city, zip code, and country
- Professional Notes: Description field for detailed contact information and notes
- Team Assignment: All contacts belong to specific teams for access control
- User Ownership: Each contact has an assigned owner for accountability
- Client Relationships: Optional association with client company records
- Outreach Tracking: Connection to outreach campaigns and lead sources
- First name is the only required field for contact creation
- User ID and team ID are automatically assigned based on the creator
- All other fields are optional for flexible contact management
- Personal details: first name, last name, email, phone, birth date
- Business information: company name, website, description
- Social profiles: Skype, Telegram, LinkedIn
- Address information: address line, city, zip, country
- System associations: client assignment, outreach source
- Custom field values can be added during contact creation
- Pipeline assignments can be set up during initial contact setup
- Client company association available during creation
- Automatic display name generation from first and last names
- All contact fields are editable through the contact edit interface
- Custom field values can be added, modified, or removed
- Pipeline associations can be updated and managed
- Client relationships can be changed or removed
- Email format validation ensures proper email address format
- Field length validation prevents data overflow
- Required field validation maintained during updates
- Team and user assignment validation for security
- Search by first name with partial matching support
- Search by last name with wildcard capabilities
- Search by associated client company names
- Combined search across name and company fields
- Real-time search with immediate results
- Case-insensitive search for better usability
- Partial matching for flexible search queries
- Search results limited to team contacts for security
- Contacts appear in system-wide search results
- Search results show full name with company in parentheses
- Direct links to contact detail pages from search results
- Search integration with other system entities
- All contacts are filtered by team membership
- Team isolation ensures proper access control
- Team-specific contact lists and management
- Cross-team contact access is prevented
- Option to view only contacts owned by current user
- Full team contact visibility for authorized users
- Role-based contact visibility controls
- User assignment filtering for contact management
- Contacts displayed in paginated lists (10 per page)
- Sorting by ID with newest contacts first
- Custom field integration in contact displays
- Pipeline association display in contact lists
- ViewAny: All users can view contact lists
- Create: Limited to users with contact CRUD permissions or sales representatives
- View: Team-based access with role restrictions
- Update/Delete: Based on ownership and role permissions
- Users with “ShowAllAndOwnContactCRUD” permissions have full team access
- Sales representatives can only manage their own contacts
- Team membership required for all contact access
- Role-based restrictions enforce proper access control
- Super Admin: Full access to all contacts across teams
- Organization Manager: Full team contact access
- Sales Manager/Representative: Limited to owned contacts within team
- Regular Users: Access based on specific permissions
- Contacts are filtered by team_id in all queries
- Cross-team contact access is completely prevented
- Team-based search and filtering enforced
- Team-specific custom fields and pipelines
- Database-level team filtering in all contact queries
- Authorization checks on all contact operations
- Team membership validation for contact access
- Automatic team assignment for new contacts
- Contacts can be optionally associated with client companies
- Multiple contacts can belong to the same client
- Client information is separate from individual contact details
- Optional relationship allows for independent contacts
- Organized contact management by client company
- Easy identification of all contacts within a client organization
- Streamlined communication with client teams
- Integrated project and billing management through client relationships
- Contacts can be created without client association
- Client assignment can be added or changed after creation
- Client relationships support business hierarchy organization
- Automatic display of client company in contact lists
- Combines first name and last name with proper spacing
- Handles missing last names gracefully
- Automatic trimming of extra spaces
- Consistent display across all system interfaces
- Display names used in contact lists and dropdowns
- Search results show full display names
- Contact selection interfaces use display names
- Integration with other system components using display names
Business Information:
System Fields:
Contact Creation and Editing #
Creating New Contacts #
Contact creation requires minimal information while supporting comprehensive data entry:
Required Information:
Contact Form Fields:
Advanced Creation Features:
Contact Editing and Updates #
Contacts can be fully updated after creation with comprehensive editing capabilities:
Edit Process:
Data Validation:
Contact Search and Filtering #
Search Capabilities #
The system provides powerful contact search functionality:
Basic Search:
Search Implementation:
Global Search Integration:
Contact Organization and Filtering #
Contacts are organized with multiple filtering options:
Team-Based Organization:
User-Based Filtering:
Display and Sorting:
Contact Permissions #
Role-Based Access Control #
Contact access is controlled through a comprehensive permission system:
Permission Levels:
Access Control Rules:
User Role Types:
Team Isolation #
Contact data is strictly isolated between teams:
Team Separation:
Security Measures:
Contact-Client Relationships #
Hierarchical Organization #
The system supports sophisticated contact-client relationships:
Relationship Structure:
Client Association Benefits:
Relationship Management:
Display Name Generation #
The system automatically generates display names for contacts:
Display Name Logic:
Usage Throughout System: