Can the contacts API be used to create global contacts?

I’ve been looking at the Contacts API and was wondering if this could be used to create global company contacts that aren’t employees. This could then for example be used to maintain a list of contacts that frequently need to be contacted by the company.

The API reference for the contacts can be found here: Mitel APIs - Admin

As per API specs there are different type of contacts: “TECHNICAL_SUPPORT” “MAIN_CONTACT” “ON_SITE” “MAINTAINER” “GUEST” “TEMPORARY” “PERSONAL_CONTACT” “CORPORATE”

The follow questions on this topic:

  • Is this where the API can be used for?
  • If so which type of contact would the above type of contact be then? My guess would be Corporate or Personal?
  • But I guess Personal contacts are always linked to a specific person?
  • If Corporate is the way to go, is there a way to know if a contact is a corporate employee or a corporate contact?

Welcome to the community, Arne!

Contacts are used differently, depending on the contact type. Data can be stored in different places and used for different purposes. They’re basically broken down as follows:

Account Contacts - These are visible when you log into the Gateway (https://gateway.mitel.io) and consist of contactTypes TECHNICAL_SUPPORT, MAIN_CONTACT, and several others.
PERSONAL_CONTACTS - These are specific to MOMA (MiVoice Office Mobile App) and show up under the ‘Personal’ contacts tab and are typically pulled from the user’s Office 365 account.
CORPORATE - These contacts are a bit more generic and in theory could be used as an address book, as you can keep emails and phone numbers stored.
GUEST - These are used by MiTeam Meetings when you log into a meeting as a guest. This is the only contact type that allows you to generate an authentication token.

If you’re looking for internal employees, USERS is the appropriate object, especially since that syncs from the PBX through the Gateway. It’s not common for an internal employee to be a Contact except for those ‘Account Contacts’ listed above.

Hi Budd,

Thanks for the welcome and clarification. That should get me going to run some simple tests.

I’ll start by using the corporate type since building a global address book is the main goal here. 2 additional questions however:

First: will the amount of contacts have an impact on search performance or shouldn’t that really be an issue?

Second one is about reverse lookup. The MiCollab and some other Mitel products have the limitation that when there are multiple contacts with the same phone number, the name will not be shown (since it won’t/can’t deside which is the correct one). Is the same logic applied here (for example in Moma)? If not which logic is applied (fe: first alphabeticly or can a propery be set that provides a priority)?

First: will the amount of contacts have an impact on search performance or shouldn’t that really be an issue?

The number of contacts shouldn’t impact search performance significantly. If you’re going to do something like import an entire city’s phone book though, please let us know.

The MiCollab and some other Mitel products have the limitation that when there are multiple contacts with the same phone number, the name will not be shown (since it won’t/can’t deside which is the correct one). Is the same logic applied here (for example in Moma)? If not which logic is applied (fe: first alphabeticly or can a propery be set that provides a priority)?

That’s largely dependent on the application itself, as there’s no special property you can apply to the contact object that control display order or helps manage duplication. The API will return every contact that matches the criteria of your call, regardless of any duplication. Keep in mind though that most Mitel applications don’t use Contacts in the way we’re discussing. In the case of the MOMA directory:

Business = If tied to an MiVO400, these are users in the PBX synced to CloudLink. If not, they are just CL Users.
Groups = Same as above.
Personal = Synced from Office 365