Contact (person)

Edit person dialog -screenshot

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 termUI labelDatabase tableCRMScript class
company
organization
companycontactCompany
personcontact
associate
customercontactpersonCustomer
employeeassociateassociate
user accountuserejuserUser
database ownertenantCompany

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

ValueTypeDescription
0EmployeeInternal person
1ResourceNot a person
Disregard personId
2AnonymousNot authenticated for SuperOffice
4ExternalPersonExternal person
No calendar
7AnonymousUnknown
no person (1) + not authenticated (2) + no calendar (4)
8NoSentryHas full access rights
The Sentry mechanism is bypassed
13SystemSystem user
no person (1) + no calendar (4) + full access/bypass sentry (8)

Frequently used values

Database fieldDescription
associate_idID (primary key)
person_idThe person
nameInitials, sign-in name, database user name
group_idxPrimary group membership
ejuserIdID of the user account
0 if not connected to an account

Important timestamps

Database fieldDescription
lastloginThe last time the associate signed in
lastlogoutThe last time the associate signed out
registeredWhen the associate was registered
updatedThe last time the associate was updated

Resources

Resources are typically meeting rooms or equipment such as projectors.

Database fieldDescription
isLocationTrue if it represents a location
locationAddressThe address, if it’s a location

Database reference

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