---
id: object/codeunit/5458
type: object
title: Codeunit 5458 "Graph Collection Mgt - Contact"
summary: Codeunit 5458 "Graph Collection Mgt - Contact" in Base Application (Microsoft.Integration.Graph). 93 public procedures. Present since at least BC23, still in BC30.
tier: official
language: en
tags:
  - codeunit
  - base application
versions:
  introduced: null
  last_changed: null
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: d3b16dc76fdd5f37d3980a758d5f7bf05b441c163b61c8e6c230e6c71f26e506
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Integration/Graph/GraphCollectionMgtContact.Codeunit.al
    title: src/Layers/W1/BaseApp/Integration/Graph/GraphCollectionMgtContact.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: codeunit
object_id: 5458
name: Graph Collection Mgt - Contact
namespace: Microsoft.Integration.Graph
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 103
  events: 0
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 2
  called_by: 1
  implements: 0
---

# Codeunit 5458 "Graph Collection Mgt - Contact"

> Codeunit 5458 "Graph Collection Mgt - Contact" in Base Application (Microsoft.Integration.Graph). 93 public procedures. Present since at least BC23, still in BC30.

Base Application · Microsoft.Integration.Graph · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Integration/Graph/GraphCollectionMgtContact.Codeunit.al) · facts from BC29

## Procedures

- `GetEmailAddress(Index: Integer; var Name: Text; var Address: Text)`
- `AddEmailAddress(Name: Text; Address: Text)`
- `UpdateEmailAddress(EmailAddressesString: Text; Index: Integer; Address: Text): Text`
- `GetWebsiteByIndex(Index: Integer; var Type: Option; var Address: Text; var DisplayName: Text; var Name: Text)`
- `AddWebsite(Type: Option; Address: Text; DisplayName: Text; Name: Text)`
- `UpdateWebsite(Type: Option; Address: Text)`
- `GetImAddress(Index: Integer; var ImAddress: Text)`
- `AddImAddress(ImAddress: Text)`
- `GetPhoneByIndex(Index: Integer; var Type: Option; var Number: Text)`
- `GetPhoneByType(Type: Option; var Number: Text)`
- `AddPhone(Type: Option; Number: Text)`
- `GetPostalAddressByIndex(Index: Integer; var Type: Option; var PostOfficeBox: Text; var Street: Text; var City: Text; var State: Text; var CountryOrRegion: Text; var PostalCode: Text)`
- `AddPostalAddress(Type: Option; PostOfficeBox: Text; Street: Text; City: Text; State: Text; CountryOrRegion: Text; PostalCode: Text)`
- `GetChildren(Index: Integer; var Child: Text)`
- `AddChildren(Child: Text)`
- `GetFlag(var CompletedDateTime: Text; var CompletedTimeZone: Text; var DueDateTime: Text; var DueTimeZone: Text; var StartDateTime: Text; var StartTimeZone: Text; var FlagStatus: Option)`
- `AddFlag(CompletedDateTime: Text; CompletedTimeZone: Text; DueDateTime: Text; DueTimeZone: Text; StartDateTime: Text; StartTimeZone: Text; FlagStatus: Option)`
- `GetCategory(Index: Integer; var Category: Text)`
- `AddCategory(Category: Text)`
- `HasHomeAddressOrPhone(PostalAddressesString: Text; PhonesString: Text; WebsitesString: Text): Boolean`
- `HasBusinessAddressOrPhone(PostalAddressesString: Text; PhonesString: Text; WebsitesString: Text): Boolean`
- `HasBusinessAddress(PostalAddressesString: Text): Boolean`
- `HasOtherAddressOrPhone(PostalAddressesString: Text; PhonesString: Text; WebsitesString: Text): Boolean`
- `UpdateHomeAddress(PostalAddressesString: Text; Address: Text[100]; Address2: Text[50]; City: Text[30]; County: Text[30]; CountryRegionCode: Code[10]; PostCode: Code[20]): Text`
- `UpdateBusinessAddress(PostalAddressesString: Text; Address: Text[100]; Address2: Text[50]; City: Text[30]; County: Text[30]; CountryRegionCode: Code[10]; PostCode: Code[20]): Text`
- `UpdateOtherAddress(PostalAddressesString: Text; Address: Text[100]; Address2: Text[50]; City: Text[30]; County: Text[30]; CountryRegionCode: Code[10]; PostCode: Code[20]): Text`
- `GetHomeAddress(PostalAddressesString: Text; var Address: Text[100]; var Address2: Text[50]; var City: Text[30]; var County: Text[30]; var CountryRegionCode: Code[10]; var PostCode: Code[20])`
- `GetBusinessAddress(PostalAddressesString: Text; var Address: Text[100]; var Address2: Text[50]; var City: Text[30]; var County: Text[30]; var CountryRegionCode: Code[10]; var PostCode: Code[20])`
- `GetOtherAddress(PostalAddressesString: Text; var Address: Text[100]; var Address2: Text[50]; var City: Text[30]; var County: Text[30]; var CountryRegionCode: Code[10]; var PostCode: Code[20])`
- `UpdateHomePhone(PhonesString: Text; Number: Text): Text`
- `UpdateBusinessPhone(PhonesString: Text; Number: Text): Text`
- `UpdateMobilePhone(PhonesString: Text; Number: Text): Text`
- `UpdateOtherPhone(PhonesString: Text; Number: Text): Text`
- `UpdateAssistantPhone(PhonesString: Text; Number: Text): Text`
- `UpdateHomeFaxPhone(PhonesString: Text; Number: Text): Text`
- `UpdateBusinessFaxPhone(PhonesString: Text; Number: Text): Text`
- `UpdateOtherFaxPhone(PhonesString: Text; Number: Text): Text`
- `UpdatePagerPhone(PhonesString: Text; Number: Text): Text`
- `UpdateRadioPhone(PhonesString: Text; Number: Text): Text`
- `GetHomePhone(PhonesString: Text; var Number: Text)`
- `GetBusinessPhone(PhonesString: Text; var Number: Text)`
- `GetMobilePhone(PhonesString: Text; var Number: Text)`
- `GetOtherPhone(PhonesString: Text; var Number: Text)`
- `GetAssistantPhone(PhonesString: Text; var Number: Text)`
- `GetHomeFaxPhone(PhonesString: Text; var Number: Text)`
- `GetBusinessFaxPhone(PhonesString: Text; var Number: Text)`
- `GetOtherFaxPhone(PhonesString: Text; var Number: Text)`
- `GetPagerPhone(PhonesString: Text; var Number: Text)`
- `GetRadioPhone(PhonesString: Text; var Number: Text)`
- `GetWorkWebsite(WebsitesString: Text; var Address: Text[80])`
- `GetHomeWebsite(WebsitesString: Text; var Address: Text[80])`
- `UpdateWorkWebsite(WebsitesString: Text; Address: Text[80]): Text`
- `UpdateHomeWebsite(WebsitesString: Text; Address: Text[80]): Text`
- `HasBusinessType(BusinessTypeString: Text): Boolean`
- `TryGetBusinessTypeValue(BusinessTypeString: Text; var Value: Text)`
- `GetBusinessType(BusinessTypeString: Text; var Type: Option)`
- `AddBusinessType(Type: Option): Text`
- `HasIsCustomer(IsCustomerString: Text): Boolean`
- `GetIsCustomer(IsCustomerString: Text): Boolean`
- `TryGetIsCustomerValue(IsCustomerString: Text; var Value: Text)`
- `AddIsCustomer(IsCustomer: Boolean): Text`
- `HasIsVendor(IsVendorString: Text): Boolean`
- `GetIsVendor(IsVendorString: Text): Boolean`
- `TryGetIsVendorValue(IsVendorString: Text; var Value: Text)`
- `AddIsVendor(IsVendor: Boolean): Text`
- `HasIsBank(IsBankString: Text): Boolean`
- `GetIsBank(IsBankString: Text): Boolean`
- `TryGetIsBankValue(IsBankString: Text; var Value: Text)`
- `AddIsBank(IsBank: Boolean): Text`
- `GetIsNavCreated(IsNavCreatedString: Text): Boolean`
- `AddIsNavCreated(IsNavCreated: Boolean): Text`
- `GetNavIntegrationId(NavIntegrationIdString: Text): Guid`
- `AddNavIntegrationId(IntegrationId: Guid): Text`
- `HasIsContact(IsContactString: Text): Boolean`
- `GetIsContact(IsContactString: Text): Boolean`
- `TryGetIsContactValue(IsContactString: Text; var Value: Text)`
- `AddIsContact(IsContact: Boolean): Text`
- `HasIsLead(IsLeadString: Text): Boolean`
- `GetIsLead(IsLeadString: Text): Boolean`
- `TryGetIsLeadValue(IsLeadString: Text; var Value: Text)`
- `HasIsPartner(IsPartnerString: Text): Boolean`
- `GetIsPartner(IsPartnerString: Text): Boolean`
- `TryGetIsPartnerValue(IsPartnerString: Text; var Value: Text)`
- `ConcatenateStreet(Address: Text; Address2: Text): Text`
- `SplitStreet(Street: Text; var Address: Text[100]; var Address2: Text[50])`
- `FindCountryRegionCode(CountryOrRegion: Text): Code[10]`
- `GetContactComments(Contact: Record Contact): Text`
- `SetContactComments(Contact: Record Contact; PersonalNotes: Text)`
- `InitializeCollection(JSONString: Text)`
- `InitializeObject(JSONString: Text)`
- `IsBlankOrEmptyJsonObject(JSONString: Text): Boolean`
- `WriteCollectionToString(): Text`
- `WriteObjectToString(): Text`

Plus 10 local procedures.

## Triggers

OnRun

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 5459 "JSON Management"](../codeunit/5459.md) (198 calls: `AddBusinessType → AddJPropertyToJObject`, `AddBusinessType → GetJSONObject`, `AddBusinessType → InitializeEmptyObject`, …)
- [Codeunit 10 "Type Helper"](../codeunit/10.md) (4 calls: `ConcatenateStreet → CRLFSeparator`, `GetContactComments → CRLFSeparator`, `InsertNextContactCommentLine → CRLFSeparator`, …)

## Called by

- [Codeunit 5468 "Graph Mgt - Complex Types"](../codeunit/5468.md) (2 calls: `ApplyPostalAddressFromJSON → SplitStreet`, `GetPostalAddressJSON → ConcatenateStreet`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: none

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "codeunit", object_name: "Graph Collection Mgt - Contact")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
