Contact People Records
Best practice in the Naviga ad system dictates that there should only be a single record for a single person. This is enforced by allowing an email address to only exist once in the system. A person who is using their personal email address can be moved to a new employer if they change jobs. A person with whom you correspond with on more than one account may be linked to as many accounts as is necessary without duplicating the contact record. A person can listed as a billing contact for any number of accounts, even if they aren't an employee of that company. We strongly believe that there is no good reason for duplicate records.
That said, there is a setting in the system (only accessible to Naviga Personnel) where you can override this best practice suggestion and create duplicates, but we will firmly caution you against doing that. It tends to make a mess and will be problematic, especially if you enable Nylas email syncing, or export information to external systems (like a CRM) where the email address is supposed to be a unique identifier.
There are a couple of APIs in Naviga that relate to contact people.
The Advertiser API's - The advertiser API to Create a customer will create the contact people (Employee) at the same time as it creates the main advertiser or agency record (or link Invoice/Statement contacts from a different, existing account).
There are POST, GET, and PUT actions under Contacts in Swagger as well. These are detailed below. These will pass a parameter of the contact person's ID and retrieve information about the specific contact person.
GET/api/general/contact/get/{contactId}PUT/api/general/contact/update/{contactId}POST/api/general/contact/addAnd finally, there is a GET to get all linked contacts of an account under the Names grouping.
GET/api/general/names/{nameId}/contactsThis will include, for a given AccountID, all the contact people and their contact details, whether they are an employee of the account or a linked contact person of the account. This one is less frequently used. The consolidated Advertiser API in #1 above is generally more useful since it also connects the contact person as the invoice/statement contact in a single post or update.
GET /api/general/contact/get/{contactId}
GET /api/general/contact/get/{contactId}Expand for Full formatted details for this API. The following table will break this down into what each item means.
{
"NavigaEmployerID": "string",
"SalesforceID": "string",
"FirstName": "string",
"MiddleName": "string",
"LastName": "string",
"InformalName": "string",
"SalulationCode": "string",
"GenderCode": "string",
"JobTitleCode": "string",
"JobTitleDescriptionOverride": "string",
"HomeCountryCode": "string",
"PrimaryPhoneNumber": "string",
"MobilePhoneNumber": "string",
"PrimaryEmailAddress": "string",
"PrimaryEmailTypeCode": "string",
"OtherEmailAddress": "string",
"OtherEmailTypeCode": "string",
"ProductionContactForAdvertiserID": "string",
"ProductionContactForBrandID": "string",
"ProductionContactRole": "string",
"ContactTypeID": "string",
"Status": "Unknown",
"Messages": [
{
"Code": 0,
"Message": "string",
"UniDataProgramName": "string",
"IsCritical": true
}
]
}NavigaEmployerID
This is the employer of this employee (ID)
SalesforceID
If using Salesforce integration, this will be the link that connects the Naviga record to the salesforce record for this contact person.
FirstName
Contact Person First Name
MiddleName
Contact Person Middle Name
LastName
Contact Person Last Name
InformalName
Contact Person Informal Name
SalulationCode
This is typically Mr, Mrs, Miss, etc. The ID's are set up in CRM Module, Setup -> CRM System Settings, Name Titles.
GenderCode
M = Male F = Female NB = Non Binary U = Unknown
JobTitleCode
The ID's are set up in CRM Module, Setup -> CRM System Settings, Job Titles.
JobTitleDescriptionOverride
This may be the description from the above code, or the user may override this with a specific title, but leave the code as a general title for grouping and reporting by similar job titles.
HomeCountryCode
This is the 2 or 3 digit country code from Address setup
PrimaryPhoneNumber
Contact Person's phone number
MobilePhoneNumber
Contact Person's cell phone number
PrimaryEmailAddress
Contact Person's email adderess
PrimaryEmailTypeCode
Setup in Advertising, Setup -> System Tables Setup -> Email Type Codes. This is the ID of the code. It isn't required in entry, so this could be null.
OtherEmailAddress
When editing a contact record in the Account Overview screen, the user is able to enter additional email addresses. The Primary will be the first on the list, and the secondard will be the second on the list. There may be additional emails, but this API currently extracts the first two.
OtherEmailTypeCode
Setup in Advertising, Setup -> System Tables Setup -> Email Type Codes. This is the ID of the code.
ProductionContactForAdvertiserID
If this contact is the Production Contact for a Brand, this will be the advertiser ID for that Brand
ProductionContactForBrandID
If this contact is the Production Contact for a Brand, this will be the Brand ID for that Brand
ProductionContactRole
If this contact is the Production Contact for a Brand, this will be the role entered for the Production Contact. It is a freeformat field, so there is no ID table for it.
ContactTypeID
The ID's are set up in CRM Module, Setup -> CRM System Settings, Contact Types. It is a visible field when editing the contact person from the customer overview screen. This could be a multi-valued field.
The above looks like this in my system:

PUT /api/general/contact/update/{contactId}
PUT /api/general/contact/update/{contactId}The put is designed to be used as an update after using the above GET for a contact person. First enter the ID into the GET, then using that output, edit any fields required and then use this put to update. All fields are required.
POST /api/general/contact/add
POST /api/general/contact/addThis will create a contact person for a given Advertiser account with minimal information. Only the Employer ID is required, but for it to be at all useful, you will need to put some additional information in there - perhaps name and/or email address at a minimum.
Last updated
Was this helpful?