Contact (person)
SuperOffice view of the world
SuperOffice has five important things:
- Companies are in code and database references called contact.
- Associates are SuperOffice users - employees of the company.
- Projects are a type of activity that usually involves several stakeholders and various types of other activities.
- Activities are things employees do with companies, contacts, projects, the diary, and sales.
- Follow-ups
- Documents
- Mailings and form submissions
- Chat sessions
- Tickets from Service are linked to persons who may or may not belong to a company.
You can read more about the main tables in the developer documentation.
Business rules
- Activities happen at a particular point in time.
- Sales are expected to be closed on a date in the future.
- Meetings are scheduled for a particular date and time.
- Documents are written on a specific day.
- Activities start on one day and finish on another.
- Time is important for activities.
- Companies and projects are not time-specific but are linked to activities in time.
The appointment table contains foreign keys to all the other important tables, plus a date field (ActiveDate).
Context-sensitive labels
It is important to keep in mind that there's not a 1:1 mapping of labels and that you have to take context into account.
Real-world term | UI label | Database table | CRMScript class |
---|---|---|---|
company organization |
company | contact | Company |
person | contact associate |
||
customer | contact | person | Customer |
employee | associate | associate | |
user account | user | ejuser | User |
database owner | tenant | Company |
Employees (internal)
The associate database table represents employees, resources, and other users - except for external persons.
Yet, this table is important for understanding and navigating the relationship between a person and their user account as well as the relationship between employees at the organization running the CRM system and the external parties they interact with.
You may think of associates as the missing link that connects people.
Associate types
Value | Type | Description |
---|---|---|
0 | Employee | Internal person |
1 | Resource | Not a person Disregard personId |
2 | Anonymous | Not authenticated for SuperOffice |
4 | ExternalPerson | External person No calendar |
7 | Anonymous | Unknown no person (1) + not authenticated (2) + no calendar (4) |
8 | NoSentry | Has full access rights The Sentry mechanism is bypassed |
13 | System | System user no person (1) + no calendar (4) + full access/bypass sentry (8) |
Frequently used values
Database field | Description |
---|---|
associate_id | ID (primary key) |
person_id | The person |
name | Initials, sign-in name, database user name |
group_idx | Primary group membership |
ejuserId | ID of the user account 0 if not connected to an account |
Important timestamps
Database field | Description |
---|---|
lastlogin | The last time the associate signed in |
lastlogout | The last time the associate signed out |
registered | When the associate was registered |
updated | The last time the associate was updated |
Resources
Resources are typically meeting rooms or equipment such as projectors.
Database field | Description |
---|---|
isLocation | True if it represents a location |
locationAddress | The address, if it's a location |
Associate list and cache
In NetServer when you have a session, the session cache will contain a special cache entry named the associate cache. There all the associates listed in the SuperOffice database can be accessed through the cache, which is much faster than retrieving the associates from the database.
The associate list is an MDO list type that you can retrieve from the database. It holds all the associates from the SuperOffice database.
How to get associate list from cache
Person picture and BLOBs
Pictures are stored in the BLOB table. The BLOBs are linked to other records in the system using the BinaryObjectLink table.
BLOBs are currently used for four things:
- Pictures on person records
- Pictures on project records
- Flags on country records
- Status monitor pictures
If you add a picture to a person, you must write the picture to the BinaryObject table, and then write the corresponding BinaryObjectLink
to link the BLOB with the person record.
Without the link record, the picture will not appear.
BLOB samples
- Get person image (REST)
- Update person image (REST)
- Display person image (ImageUtility)
- Display image from BLOB table (web services)
Related content
- Company - overview (contact table)
- Documents - overview
- Follow-ups - overview (appointment table)
- Projects - overview
- Sales - overview
- Working with contacts in CRMScript
- Working with contacts in web NetServer services and REST
- Working with contacts at the data layer (entities)
- Working with contacts using rows
- Working with contacts in Objectified SQL
- Raw SQL queries
- Addresses