---
id: object/table/5050
type: object
title: Table 5050 "Contact"
summary: Table 5050 "Contact" in Base Application (Microsoft.CRM.Contact). 86 fields, 65 public procedures, 120 events. Present since at least BC23, still in BC30, changed in BC24-28.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "28"
  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: 09cd43ba5b6d18d3d323a0dae4a139412601f729dd190ba01c9932474bf0474a
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al
    title: src/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_contact_create
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_contact_delete
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_contact_get
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_contact_update
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/resources/dynamics_contact
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_customercontact_delete
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_customercontact_get
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_customercontact_update
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/resources/dynamics_customercontact
    - https://learn.microsoft.com/dynamics365/business-central/across-online-maps
    - https://learn.microsoft.com/dynamics365/business-central/finance-consolidate-customer-vendor-balances
    - https://learn.microsoft.com/dynamics365/business-central/sales-how-register-new-customers
    - https://learn.microsoft.com/dynamics365/business-central/purchasing-how-register-new-vendors
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/manage-payables
    - topic/business-central/business-functionality/finance/manage-receivables
    - topic/business-central/business-functionality/general-business-functionality
    - topic/business-central/business-functionality/sales
    - topic/business-central/business-functionality/set-up-business-central/set-up-purchase
    - topic/business-central/business-functionality/set-up-business-central/set-up-sales
  localizations:
    - localization/au
    - localization/be
    - localization/fr
    - localization/it
    - localization/nz
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/10631
    - change/bcapps/10303
    - change/bcapps/10036
object_type: table
object_id: 5050
name: Contact
namespace: Microsoft.CRM.Contact
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
source_major: "29"
obsolete: null
countries:
  - au
  - be
  - fr
  - it
  - nz
ms_search_form_ids: []
counts:
  fields: 86
  procedures: 217
  events: 120
  subscribers: 0
relations:
  out: 39
  referenced_by: 126
  pages: 16
  extended_by: 3
  event_subscribers: 3
  calls: 19
  called_by: 0
  implements: 0
---

# Table 5050 "Contact"

> Table 5050 "Contact" in Base Application (Microsoft.CRM.Contact). 86 fields, 65 public procedures, 120 events. Present since at least BC23, still in BC30, changed in BC24-28.

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

Learn documents this table through its pages: [Page 30071 "APIV2 - Contacts"](../page/30071.md) (5 Learn pages), [Page 30089 "APIV2 - CustContacts"](../page/30089.md) (4), [Page 5050 "Contact Card"](../page/5050.md) (2), [Page 1627 "Office No Customer Dlg"](../page/1627.md) (1), [Page 1628 "Office No Vendor Dlg"](../page/1628.md) (1), [Page 5052 "Contact List"](../page/5052.md) (1).

## Properties

| Property | Value |
|---|---|
| Caption | Contact |
| DataClassification | CustomerContent |
| Permissions | TableData "Sales Header" = rm, TableData "Contact Alt. Address" = rd, TableData "Contact Alt. Addr. Date Range" = rd, TableData "Contact Business Relation" = rid, TableData "Contact Mailing Group" = rd, TableData "Contact Industry Group" = rd, TableData "Contact Web Source" = rd, TableData "Rlshp. M... |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | No. | Code[20] | Specifies the number of the involved entry or record, according to the specified number series. |  |
| 2 | Name | Text[100] | Specifies the name of the contact. If the contact is a person, you can click the field to see the Name Details window. |  |
| 3 | Search Name | Code[100] | Specifies an alternate name that you can use to search for the record in question when you cannot remember the value in the Name field. |  |
| 4 | Name 2 | Text[50] | Specifies an additional part of the name. |  |
| 5 | Address | Text[100] | Specifies the contact's address. |  |
| 6 | Address 2 | Text[50] | Specifies additional address information. |  |
| 7 | City | Text[30] | Specifies the city where the contact is located. | TableRelation [Table 225 "Post Code"](../table/225.md) (if ("Country/Region Code" = const('')) "Post Code".City else if ("Country/Region Code" = filter(<> '')) "Post Code".City where("Country/Region Code" = field("Country/Region Code"))) |
| 9 | Phone No. | Text[30] | Specifies the contact's phone number. |  |
| 10 | Telex No. | Text[20] | — |  |
| 15 | Territory Code | Code[10] | Specifies the territory code for the contact. | TableRelation [Table 286 "Territory"](../table/286.md) |
| 22 | Currency Code | Code[10] | Specifies the currency code for the contact. | TableRelation [Table 4 "Currency"](../table/4.md) |
| 24 | Language Code | Code[10] | Specifies the language that is used when translating specified text on documents to foreign business partner, such as an item description on an order confirmation. | TableRelation [Table 8 "Language"](../table/8.md) |
| 25 | Registration Number | Text[50] | Specifies the registration number of the contact. You can enter a maximum of 20 characters, both numbers and letters. |  |
| 29 | Salesperson Code | Code[20] | Specifies the code of the salesperson who normally handles this contact. | TableRelation [Table 13 "Salesperson/Purchaser"](../table/13.md) (Salesperson/Purchaser) |
| 35 | Country/Region Code | Code[10] | Specifies the country/region of the address. | TableRelation [Table 9 "Country/Region"](../table/9.md) (Country/Region) |
| 38 | Comment | Boolean | — | FlowField: exist("Rlshp. Mgt. Comment Line" where("Table Name" = const(Contact), "No." = field("No."), "Sub No." = const(0))); not editable |
| 48 | Format Region | Text[80] | Specifies the format region that is used when formatting dates and numbers on documents to foreign business partner, such as an total amount on an order date. | TableRelation "Language Selection"."Language Tag" |
| 54 | Last Date Modified | Date | — | not editable |
| 84 | Fax No. | Text[30] | Specifies the contact's fax number. |  |
| 85 | Telex Answer Back | Text[20] | — |  |
| 86 | VAT Registration No. | Text[20] | Specifies the contact's VAT registration number. This field is valid for companies only. |  |
| 91 | Post Code | Code[20] | Specifies the postal code. | TableRelation [Table 225 "Post Code"](../table/225.md) (if ("Country/Region Code" = const('')) "Post Code" else if ("Country/Region Code" = filter(<> '')) "Post Code" where("Country/Region Code" = field("Country/Region Code"))) |
| 92 | County | Text[30] | Specifies the state, province or county as a part of the address. |  |
| 102 | E-Mail | Text[80] | Specifies the email address of the contact. |  |
| 103 | Home Page | Text[255] | Specifies the contact's web site. |  |
| 107 | No. Series | Code[20] | — | TableRelation [Table 308 "No. Series"](../table/308.md) (No. Series) |
| 140 | Image | Media | Specifies the picture of the contact, for example, a photograph if the contact is a person, or a logo if the contact is a company. |  |
| 150 | Privacy Blocked | Boolean | Specifies whether to limit access to data for the data subject during daily operations. This is useful, for example, when protecting data from changes while it is under privacy review. |  |
| 151 | Minor | Boolean | Specifies that the person's age is below the definition of adulthood as recognized by law. Data for minors is blocked until a parent or guardian of the minor provides parental consent. You unblock the data by selecting the Parental Consent Received check box. |  |
| 152 | Parental Consent Received | Boolean | Specifies that a parent or guardian of the minor has provided their consent to allow the minor to use this service. When this check box is selected, data for the minor can be processed. |  |
| 720 | Coupled to CRM | Boolean | Coupled to Dataverse <small>caption</small> | obsolete Removed 26.0; #if not CLEANSCHEMA26; not editable |
| 721 | Coupled to Dataverse | Boolean | Specifies that the contact is coupled to a contact in Dataverse. | FlowField: exist("CRM Integration Record" where("Integration ID" = field(SystemId), "Table ID" = const(Database::Contact))); not editable |
| 5050 | Type | Enum "Contact Type" | Specifies the type of contact, either company or person. | enum [Enum 5050 "Contact Type"](../enum/5050.md) |
| 5051 | Company No. | Code[20] | Specifies the number for the contact's company. | TableRelation [Table 5050 "Contact"](../table/5050.md) (Contact where(Type = const(Company))) |
| 5052 | Company Name | Text[100] | Specifies the name of the company. If the contact is a person, Specifies the name of the company for which this contact works. This field is not editable. | TableRelation [Table 5050 "Contact"](../table/5050.md) (Contact.Name where(Type = const(Company))) |
| 5053 | Lookup Contact No. | Code[20] | — | TableRelation [Table 5050 "Contact"](../table/5050.md); not editable |
| 5054 | First Name | Text[30] | Specifies the contact's first name and is valid for contact persons only. |  |
| 5055 | Middle Name | Text[30] | Specifies the contact's middle name and is valid for contact persons only. |  |
| 5056 | Surname | Text[30] | Specifies the contact's surname and is valid for contact persons only. |  |
| 5058 | Job Title | Text[30] | Specifies the contact's job title. |  |
| 5059 | Initials | Text[30] | Specifies the contact's initials, when the contact is a person. |  |
| 5060 | Extension No. | Text[30] | — |  |
| 5061 | Mobile Phone No. | Text[30] | Specifies the contact's mobile telephone number. |  |
| 5062 | Pager | Text[30] | — |  |
| 5063 | Organizational Level Code | Code[10] | Specifies the organizational code for the contact, for example, top management. This field is valid for persons only. | TableRelation [Table 5070 "Organizational Level"](../table/5070.md) (Organizational Level) |
| 5064 | Exclude from Segment | Boolean | Specifies if the contact should be excluded from segments: |  |
| 5065 | Date Filter | Date | — | FlowFilter |
| 5066 | Next Task Date | Date | Specifies the date of the next task involving the contact. | FlowField: min("To-do".Date where("Contact Company No." = field("Company No."), "Contact No." = field(filter("Lookup Contact No.")), Closed = const(false), "System To-do Type" = filter(Organizer \| "Contact Attendee"))); not editable |
| 5067 | Last Date Attempted | Date | Specifies the date when the contact was last contacted, for example, when you tried to call the contact, with or without success. This field is not editable. | FlowField: max("Interaction Log Entry".Date where("Contact Company No." = field("Company No."), "Contact No." = field(filter("Lookup Contact No.")), "Initiated By" = const(Us), Postponed = const(false))); not editable |
| 5068 | Date of Last Interaction | Date | Specifies the date of the last interaction involving the contact, for example, a received or sent mail, e-mail, or phone call. This field is not editable. | FlowField: max("Interaction Log Entry".Date where("Contact Company No." = field("Company No."), "Contact No." = field(filter("Lookup Contact No.")), "Attempt Failed" = const(false), Postponed = const(false))); not editable |
| 5069 | No. of Job Responsibilities | Integer | Specifies the number of job responsibilities for this contact. This field is valid for persons only and is not editable. | FlowField: count("Contact Job Responsibility" where("Contact No." = field("No."))); not editable |
| 5070 | No. of Industry Groups | Integer | Specifies the number of industry groups to which the contact belongs. When the contact is a person, this field contains the number of industry groups for the contact's company. This field is not editable. | FlowField: count("Contact Industry Group" where("Contact No." = field("Company No."))); not editable |
| 5071 | No. of Business Relations | Integer | — | FlowField: count("Contact Business Relation" where("Contact No." = field("Company No."))); not editable |
| 5072 | No. of Mailing Groups | Integer | Specifies the number of mailing groups for this contact. | FlowField: count("Contact Mailing Group" where("Contact No." = field("No."))); not editable |
| 5073 | External ID | Code[20] | — |  |
| 5074 | No. of Interactions | Integer | Specifies the number of interactions created for this contact. The field is not editable. | FlowField: count("Interaction Log Entry" where("Contact Company No." = field(filter("Company No.")), Canceled = const(false), "Contact No." = field(filter("Lookup Contact No.")), Date = field("Date Filter"), Postponed = const(false))); not editable |
| 5076 | Cost (LCY) | Decimal | Specifies the total cost of all the interactions involving the contact. The field is not editable. <small>via [Page 5053 "Contact Statistics"](../page/5053.md)</small> | FlowField: sum("Interaction Log Entry"."Cost (LCY)" where("Contact Company No." = field("Company No."), Canceled = const(false), "Contact No." = field(filter("Lookup Contact No.")), Date = field("Date Filter"), Postponed = const(false))); not editable |
| 5077 | Duration (Min.) | Decimal | Specifies the total duration of all the interactions involving the contact. The field is not editable. <small>via [Page 5053 "Contact Statistics"](../page/5053.md)</small> | FlowField: sum("Interaction Log Entry"."Duration (Min.)" where("Contact Company No." = field("Company No."), Canceled = const(false), "Contact No." = field(filter("Lookup Contact No.")), Date = field("Date Filter"), Postponed = const(false))); not editable |
| 5078 | No. of Opportunities | Integer | Specifies the number of open opportunities involving the contact. The field is not editable. | FlowField: count("Opportunity Entry" where(Active = const(true), "Contact Company No." = field("Company No."), "Estimated Close Date" = field("Date Filter"), "Contact No." = field(filter("Lookup Contact No.")), "Action Taken" = field("Action Taken Filter"))); not editable |
| 5079 | Estimated Value (LCY) | Decimal | Specifies the total estimated value of all the opportunities involving the contact. The field is not editable. <small>via [Page 5053 "Contact Statistics"](../page/5053.md)</small> | FlowField: sum("Opportunity Entry"."Estimated Value (LCY)" where(Active = const(true), "Contact Company No." = field("Company No."), "Estimated Close Date" = field("Date Filter"), "Contact No." = field(filter("Lookup Contact No.")), "Action Taken" = field("Action Taken Filter"))); not editable |
| 5080 | Calcd. Current Value (LCY) | Decimal | Specifies the total calculated current value of all the opportunities involving the contact. The field is not editable. <small>via [Page 5053 "Contact Statistics"](../page/5053.md)</small> | FlowField: sum("Opportunity Entry"."Calcd. Current Value (LCY)" where(Active = const(true), "Contact Company No." = field("Company No."), "Estimated Close Date" = field("Date Filter"), "Contact No." = field(filter("Lookup Contact No.")), "Action Taken" = field("Action Taken Filter"))); not editable |
| 5082 | Opportunity Entry Exists | Boolean | — | FlowField: exist("Opportunity Entry" where(Active = const(true), "Contact Company No." = field("Company No."), "Contact No." = field(filter("Lookup Contact No.")), "Sales Cycle Code" = field("Sales Cycle Filter"), "Sales Cycle Stage" = field("Sales Cycle Stage Filter"), "Salesperson Code" = field("Salesperson ...; not editable |
| 5083 | Task Entry Exists | Boolean | — | FlowField: exist("To-do" where("Contact Company No." = field("Company No."), "Contact No." = field(filter("Lookup Contact No.")), "Team Code" = field("Team Filter"), "Salesperson Code" = field("Salesperson Filter"), "Campaign No." = field("Campaign Filter"), Date = field("Date Filter"), Status = field("Task St...; not editable |
| 5084 | Salesperson Filter | Code[20] | — | TableRelation [Table 13 "Salesperson/Purchaser"](../table/13.md) (Salesperson/Purchaser); FlowFilter |
| 5085 | Campaign Filter | Code[20] | — | TableRelation [Table 5071 "Campaign"](../table/5071.md); FlowFilter |
| 5086 | Contact Business Relation | Enum "Contact Business Relation" | Specifies the type of the existing business relation. | enum [Enum 5056 "Contact Business Relation"](../enum/5056.md); not editable |
| 5087 | Action Taken Filter | Enum "Opportunity Action Taken" | — | FlowFilter; enum [Enum 5091 "Opportunity Action Taken"](../enum/5091.md) |
| 5088 | Sales Cycle Filter | Code[10] | — | TableRelation [Table 5090 "Sales Cycle"](../table/5090.md) (Sales Cycle); FlowFilter |
| 5089 | Sales Cycle Stage Filter | Integer | — | TableRelation [Table 5091 "Sales Cycle Stage"](../table/5091.md) ("Sales Cycle Stage".Stage where("Sales Cycle Code" = field("Sales Cycle Filter"))); FlowFilter |
| 5090 | Probability % Filter | Decimal | — | FlowFilter |
| 5091 | Completed % Filter | Decimal | — | FlowFilter |
| 5092 | Estimated Value Filter | Decimal | — | FlowFilter |
| 5093 | Calcd. Current Value Filter | Decimal | — | FlowFilter |
| 5094 | Chances of Success % Filter | Decimal | — | FlowFilter |
| 5095 | Task Status Filter | Enum "Task Status" | — | FlowFilter; enum [Enum 5081 "Task Status"](../enum/5081.md) |
| 5096 | Task Closed Filter | Boolean | — | FlowFilter |
| 5097 | Priority Filter | Option | — | FlowFilter; OptionCaption: Low,Normal,High |
| 5098 | Team Filter | Code[10] | — | TableRelation [Table 5083 "Team"](../table/5083.md); FlowFilter |
| 5099 | Close Opportunity Filter | Code[10] | — | TableRelation [Table 5094 "Close Opportunity Code"](../table/5094.md) (Close Opportunity Code); FlowFilter |
| 5100 | Correspondence Type | Enum "Correspondence Type" | Specifies the preferred type of correspondence for the interaction. | enum [Enum 5076 "Correspondence Type"](../enum/5076.md) |
| 5101 | Salutation Code | Code[10] | Specifies the salutation code that will be used when you interact with the contact. The salutation code is only used in Word documents. To see a list of the salutation codes already defined, click the field. | TableRelation [Table 5068 "Salutation"](../table/5068.md) |
| 5102 | Search E-Mail | Code[80] | Search Email <small>caption</small> |  |
| 5104 | Last Time Modified | Time | — |  |
| 5105 | E-Mail 2 | Text[80] | Specifies the alternate email address of the contact. <small>via [Page 4412 "SOA Contact Lookup"](../page/4412.md)</small> |  |
| 5106 | Job Responsibility Filter | Code[10] | — | TableRelation [Table 5066 "Job Responsibility"](../table/5066.md) (Job Responsibility); FlowFilter |
| 8050 | Xrm Id | Guid | — | not editable |

## Keys

- Key1: No. (clustered)
- Key2: Search Name
- Key3: Company Name, Company No., Type, Name
- Key4: Company No.
- Key5: Territory Code
- Key6: Salesperson Code
- Key7: VAT Registration No.
- Key8: Search E-Mail
- Key9: Name
- Key10: City
- Key11: Post Code
- Key12: Phone No.
- Key13: SystemModifiedAt
- Key15: Contact Business Relation
- Key16: E-Mail
- Key17: E-Mail 2

## Events published

- `OnAfterGetSalutation(var SalutationType: Enum "Salutation Formula Salutation Type"; var LanguageCode: Code[10]; var NamePart: array[5] of Text[100]; var Contact: Record Contact; var SalutationFormula: Record "Salutation Formula")` (integration)
- `OnAfterInheritCompanyToPersonData(var Contact: Record Contact; xContact: Record Contact; NewCompanyContact: Record Contact)` (integration)
- `OnAfterUpdateQuotesForContact(Contact: Record Contact; Customer: Record Customer)` (integration)
- `OnAfterVendorInsert(var Vendor: Record Vendor; var Contact: Record Contact)` (integration)
- `OnBeforeVendorInsert(var Vend: Record Vendor; var Contact: Record Contact; VendorTemplateCode: Code[20])` (integration)
- `OnBeforeCheckIfTypeChangePossibleForPerson(var Contact: Record Contact; xContact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeChooseNewCustomerTemplate(var Contact: Record Contact; var CustTemplateCode: Code[20]; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateLink(var Contact: Record Contact; var TempContBusRel: Record "Contact Business Relation"; var CreateForm: Integer; var BusRelCode: Code[10]; var Table: Enum "Contact Business Relation Link To Table"; var IsHandled: Boolean)` (integration)
- `OnChooseNewCustomerTemplateOnBeforeSelectWithConfirm(var Contact: Record Contact; var CustomerTempl: Record "Customer Templ."; var IsHandled: Boolean)` (integration)
- `OnCreateCustomerFromTemplateOnBeforeCustomerInsert(var Cust: Record Customer; CustomerTemplate: Code[20]; var Contact: Record Contact)` (integration)
- `OnBeforeFindNewCustomerTemplate(var Contact: Record Contact; var CustTemplateCode: Code[20]; var IsHandled: Boolean)` (integration)
- `OnBeforeInheritCompanyToPersonData(var Contact: Record Contact; xContact: Record Contact; var NewCompanyContact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeIsUpdateNeeded(var Contact: Record Contact; xContact: Record Contact; var UpdateNeeded: Boolean)` (integration)
- `OnCreateCustomerOnBeforeCustomerModify(var Customer: Record Customer; Contact: Record Contact)` (integration)
- `OnCreateCustomerFromTemplateOnAfterApplyCustomerTemplate(var Customer: Record Customer; CustomerTemplate: Record "Customer Templ."; var Contact: Record Contact)` (integration)
- `OnCreateCustomerLinkOnAfterCreateLink(var Contact: Record Contact; xContact: Record Contact; var ContactBusinessRelation: Record "Contact Business Relation")` (integration)
- `OnAfterCalculatedName(var Contact: Record Contact; var NewName92: Text[92])` (integration)
- `OnAfterCreateBankAccount(var Contact: Record Contact; var BankAccount: Record "Bank Account")` (integration)
- `OnAfterCreateCustomer(var Contact: Record Contact; var Customer: Record Customer)` (integration)
- `OnAfterCreateCustomerLink(var Contact: Record Contact)` (integration)
- `OnAfterCreateInteraction(var Contact: Record Contact)` (integration)
- `OnAfterCreateLink(var Contact: Record Contact; xContact: Record Contact; CreateFrom: Integer)` (integration)
- `OnAfterCreateVendor(var Contact: Record Contact; var Vendor: Record Vendor)` (integration)
- `OnAfterIdenticalAddress(Contact: Record Contact; RecContact: Record Contact; var IsIdentical: Boolean)` (integration)
- `OnAfterModifySellToCustomerNo(var SalesHeader: Record "Sales Header"; var SalesLine: Record "Sales Line")` (integration)
- `OnAfterModifyBillToCustomerNo(var SalesHeader: Record "Sales Header"; var SalesLine: Record "Sales Line")` (integration)
- `OnAfterOnInsert(var Contact: Record Contact; xContact: Record Contact)` (integration)
- `OnAfterOnModify(var Contact: Record Contact; xContact: Record Contact)` (integration)
- `OnAfterProcessNameChange(var Contact: Record Contact; Customer: Record Customer; Vendor: Record Vendor)` (integration)
- `OnAfterSetDefaults(var Contact: Record Contact; MarketingSetup: Record "Marketing Setup")` (integration)
- `OnAfterSetLastDateTimeModified(var Contact: Record Contact)` (integration)
- `OnAfterSetDefaultSalesperson(var Contact: Record Contact)` (integration)
- `OnAfterSetTypeForContact(var Contact: Record Contact; xContact: Record Contact)` (integration)
- `OnAfterShowCustVendBank(var Contact: Record Contact; var ContactBusinessRelation: Record "Contact Business Relation"; FormSelected: Boolean)` (integration)
- `OnAfterSyncAddress(var Contact: Record Contact; RecContact: Record Contact; var ContChanged: Boolean; var ContactBeforeModify: Record Contact)` (integration)
- `OnAfterTypeChange(var Contact: Record Contact)` (integration)
- `OnAfterValidateCity(var Contact: Record Contact; xContact: Record Contact)` (integration)
- `OnAfterValidatePostCode(var Contact: Record Contact; xContact: Record Contact)` (integration)
- `OnAssistEditOnAfterNoSeriesMgtSetSeries(var Contact: Record Contact; OldContact: Record Contact)` (integration)
- `OnBeforeActiveAltAddress(var Contact: Record Contact; var Result: Code[10]; var IsHandled: Boolean)` (integration)
- `OnBeforeApplyCompanyChangeToPerson(var PersonContact: Record Contact; Contact: Record Contact; xContact: Record Contact; var ContChanged: Boolean; OldContact: Record Contact)` (integration)
- `OnBeforeAssistEdit(var Contact: record Contact; OldContact: Record Contact; var IsHandled: Boolean; var Result: Boolean)` (integration)
- `OnBeforeBankAccountInsert(var BankAccount: Record "Bank Account"; var Contact: Record Contact)` (integration)
- `OnBeforeDuplicateCheck(Contact: Record Contact; xContact: Record Contact; var IsDuplicateCheckNeeded: Boolean)` (integration)
- `OnBeforeCalculatedName(var Contact: Record Contact; var NewName: Text[100]; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckForExistingRelationships(var Contact: Record Contact; LinkToTable: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckForCompanyContactExistingRelationships(var Contact: Record Contact; var ContBusRel: Record "Contact Business Relation"; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckCompanyNo(var Contact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckDuplicates(var Contact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckContactType(var Contact: Record Contact; ContactType: enum "Contact Type"; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckUnloggedSegments(var Contact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateCustomerFromTemplate(var Contact: Record Contact; var CustNo: Code[20]; var IsHandled: Boolean; CustomerTemplate: Code[20]; HideValidationDialog: Boolean)` (integration)
- `OnBeforeCreateCompanyContactCustomerFromTemplate(var Contact: Record Contact; CustomerTemplate: Code[20]; var CustNo: Code[20]; HideValidationDialog: Boolean; var CustomerCreated: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateCompanyContactVendor(var Contact: Record Contact; var VendorNo: Code[20]; HideValidationDialog: Boolean; var VendorCreated: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateCustomerLink(var Contact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateBankAccount(var Contact: Record Contact; var BankAccountNo: Code[20]; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateSalesQuoteFromContact(var Contact: Record Contact; var SalesHeader: Record "Sales Header")` (integration)
- `OnBeforeCreatePurchaseQuoteFromContact(var Contact: Record Contact)` (integration)
- `OnBeforeCreateVendor(var Contact: Record Contact; var VendorNo: Code[20]; var IsHandled: Boolean)` (integration)
- `OnBeforeGetSalutation(var Contact: Record Contact; var SalutationType: Enum "Salutation Formula Salutation Type"; var LanguageCode: Code[10]; var IsHandled: Boolean; var Salutation: Text[260])` (integration)
- `OnBeforeLookupCity(var Contact: Record Contact; var PostCode: Record "Post Code")` (integration)
- `OnBeforeLookupPostCode(var Contact: Record Contact; var PostCode: Record "Post Code")` (integration)
- `OnBeforeNameBreakdown(var Contact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeOnDelete(var Contact: Record Contact; xContact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeOnInsert(var Contact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeProcessPersonNameChange(var IsHandled: Boolean; var Contact: Record Contact; var Customer: Record Customer; var Vendor: Record Vendor)` (integration)
- `OnBeforeTypeChange(var Contact: Record Contact; xContact: Record Contact; var InteractLogEntry: Record "Interaction Log Entry"; var Opp: Record Opportunity; var Task: Record "To-do"; var Cont: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeVATRegistrationValidation(var Contact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateCity(var Contact: Record Contact; var PostCode: Record "Post Code"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateNo(var Contact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateVATRegistrationNo(var Contact: Record Contact; xContact: Record Contact; FieldNumber: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeLaunchDuplicateForm(var Contact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateCompanyNo(var Contact: Record Contact; xContact: Record Contact; var IsHandled: Boolean; var SkipModifyOpportunity: Boolean; var SkipModifyOpportunityEntry: Boolean; var SkipModifyTask: Boolean; var SkipModifyInteractionLogEntry: Boolean; var SkipModifySalesHeader: Boolean)` (integration)
- `OnBeforeUpdateQuotesFromTemplate(Customer: Record Customer; CustomerTemplateCode: Code[20]; var IsHandled: Boolean; var Contact: Record Contact)` (integration)
- `OnBeforeUpdateFieldForNewCompany(var Contact: Record Contact; var FieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateSearchName(var Contact: Record Contact; xContact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeValidatePostCode(var Contact: Record Contact; var PostCode: Record "Post Code"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnCreateSalesQuoteFromContactOnBeforeSalesHeaderInsert(var Contact: Record Contact; var SalesHeader: Record "Sales Header")` (integration)
- `OnCreateCustomerOnBeforeUpdateQuotes(var Customer: Record Customer; Contact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnCreateVendorOnAfterUpdateVendor(var Vendor: Record Vendor; Contact: Record Contact; var ContBusRel: Record "Contact Business Relation")` (integration)
- `OnLookupNewCustomerTemplateOnBeforeSetTableView(Contact: Record Contact; var CustomerTemplate: Record "Customer Templ.")` (integration)
- `OnGetCompNoOnAfterSetFilters(var Contact: Record Contact)` (integration)
- `OnGetSalutationString(var SalutationString: Text[260]; SalutationFormula: Record "Salutation Formula"; NamePart: array[5] of Text[100])` (integration)
- `OnShowCustVendBankOnBeforeRunPage(var Contact: Record Contact; FormSelected: Boolean; var ContBusRel: Record "Contact Business Relation"; var IsHandled: Boolean)` (integration)
- `OnAfterCreateEmployee(var Employee: Record Employee; var ContBusRel: Record "Contact Business Relation")` (integration)
- `OnAfterLookupPostCode(var Contact: Record Contact; var PostCode: Record "Post Code")` (integration)
- `OnTypeChangeOnAfterCheckInteractionLog(var Contact: Record Contact; xContact: Record Contact)` (integration)
- `OnTypeChangeOnAfterContSetFilters(var Contact: Record Contact; CurrentContact: Record Contact)` (integration)
- `OnTypeChangeOnAfterTypePersonTestFields(Contact: Record Contact)` (integration)
- `OnBeforeSetDefaultSalesperson(var Contact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeShowResultForCustomer(var Customer: Record Customer; var Contact: Record Contact; var HideValidationDialog: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeShowResultForVendor(var Vendor: Record Vendor; var Contact: Record Contact; var HideValidationDialog: Boolean; var IsHandled: Boolean)` (integration)
- `OnCreateVendorFromTemplateOnBeforeCommit(Contact: Record Contact; Vend: Record Vendor; var IsHandled: Boolean)` (integration)
- `OnAfterCreateVendorLink(var Contact: Record Contact; xContact: Record Contact)` (integration)
- `OnBeforeCreateVendorLink(var Contact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnCreateCustomerFromTemplateOnBeforeInitCustomerNo(var Customer: Record Customer; var Contact: Record Contact; CustomerTempl: Record "Customer Templ."; var IsHandled: Boolean)` (integration)
- `OnCreateVendorFromTemplateOnBeforeInitVendorNo(var Vendor: Record Vendor; var Contact: Record Contact; VendorTempl: Record "Vendor Templ."; var IsHandled: Boolean)` (integration)
- `OnBeforeProcessCompanyNameChange(var Contact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnProcessPersonNameChangeOnBeforeAssignCustomerContact(var Customer: Record Customer; var Contact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnProcessPersonNameChangeOnBeforeAssignVendorContact(var Vendor: Record Vendor; var Contact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeOnModify(var Contact: Record Contact; ContactBeforeModify: Record Contact)` (integration)
- `OnBeforeValidateEmail(var Contact: Record Contact; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnShowResultForVendorOnBeforeShowrelatedRecordisCreatedMsg(var Vendor: Record Vendor; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateRegistrationNumber(var Contact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnAfterLookupCity(var Contact: Record Contact; var PostCode: Record "Post Code")` (integration)
- `OnCreateSalesQuoteFromContactOnBeforeRunPage(Contact: Record Contact; SalesHeader: Record "Sales Header"; var IsHandled: Boolean)` (integration)
- `OnCreateSalesQuoteFromContactOnAfterRunPage(Contact: Record Contact; SalesHeader: Record "Sales Header")` (integration)
- `OnModifyOnBeforeInheritAddressDetails(var RecContact: Record Contact; var xRecContact: Record Contact; MarketingSetup: Record "Marketing Setup"; Contact: Record Contact; var ContChanged: Boolean; var IsHandled: Boolean)` (integration)
- `OnModifyOnBeforeInheritCommunicationDetails(var RecContact: Record Contact; var xRecContact: Record Contact; MarketingSetup: Record "Marketing Setup"; Contact: Record Contact; var ContChanged: Boolean; var IsHandled: Boolean)` (integration)
- `OnCreateEmployeeOnBeforeInitEmployeeNo(var Employee: Record Employee; var Contact: Record Contact; EmployeeTempl: Record "Employee Templ."; var IsHandled: Boolean)` (integration)
- `OnCreateCustomerFromTemplateOnBeforeContBusRelInsert(var Contact: Record Contact; var Customer: Record Customer; var ContactBusinessRelation: Record "Contact Business Relation")` (integration)
- `OnCreateVendorFromTemplateOnBeforeContBusRelInsert(var Contact: Record Contact; var Vendor: Record Vendor; var ContactBusinessRelation: Record "Contact Business Relation")` (integration)
- `OnCreateBankAccountOnBeforeContBusRelInsert(var Contact: Record Contact; var BankAccount: Record "Bank Account"; var ContactBusinessRelation: Record "Contact Business Relation")` (integration)
- `OnBeforeCreateBankAccountLink(var Contact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeTouchContact(ContactNo: Code[20]; var IsHandled: Boolean)` (integration)
- `OnShowBusinessRelationOnAfterFilterBusinessRelations(var Rec: Record Contact; var ContactBusinessRelation: Record "Contact Business Relation"; ContactBusinessRelationLinkToTable: Enum "Contact Business Relation Link To Table"; All: Boolean)` (integration)
- `OnCreateVendorOnVendorTemplateNotExist(var Contact: Record Contact; var VendorNo: Code[20]; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateEmployeeLink(var Contact: Record Contact)` (integration)
- `OnBeforeCreateCustomer(var Contact: Record Contact; var CustomerNo: Code[20]; var IsHandled: Boolean)` (integration)
- `OnAfterGetSelectedRelationCodes(var CodeFilter: Text)` (integration)

## Trigger event subscribers

- OnAfterDeleteEvent: [Codeunit 1630 "Office Management"](../codeunit/1630.md) OnDeleteContact, [Codeunit 7006 "Price Helper - V16"](../codeunit/7006.md) AfterDeleteContact
- OnAfterRenameEvent: [Codeunit 7006 "Price Helper - V16"](../codeunit/7006.md) AfterRenameContact

## Procedures

- `DoModify(ContactBeforeModify: Record Contact)`
- `TypeChange()`
- `AssistEdit(OldCont: Record Contact): Boolean`
- `CreateCustomer(): Code[20]`
- `CreateCustomerFromTemplate(CustomerTemplateCode: Code[20]): Code[20]`
- `CreateVendor(): Code[20]`
- `CreateVendorFromTemplate(VendorTemplateCode: Code[20]): Code[20]`
- `CreateBankAccount(): Code[20]`
- `CreateCustomerLink()`
- `CreateVendorLink()`
- `CreateBankAccountLink()`
- `CreateInteraction()`
- `GetDefaultPhoneNo(): Text[30]`
- `ShowBusinessRelation(LinkToTable: Enum "Contact Business Relation Link To Table"; All: Boolean)`
- `ShowBusinessRelations()`
- `UpdateBusinessRelation(): Boolean`
- `HasBusinessRelation(LinkToTable: Enum "Contact Business Relation Link To Table"; BusRelationCode: Code[10]): Boolean`
- `HasBusinessRelations(var RelatedCustomerEnabled: Boolean; var RelatedVendorEnabled: Boolean; var RelatedBankEnabled: Boolean; var RelatedEmployeeEnabled: Boolean)`
- `SetSkipDefault()`
- `IdenticalAddress(Cont: Record Contact): Boolean`
- `ActiveAltAddress(ActiveDate: Date): Code[10]`
- `CalculatedName(): Text[100]`
- `UpdateSearchName()`
- `CheckDuplicates()`
- `CheckContactType(ContactType: Enum "Contact Type")`
- `FindNewCustomerTemplate(): Code[20]`
- `FindNewVendorTemplate(): Code[20]`
- `ChooseNewCustomerTemplate(): Code[20]`
- `UpdateQuotesFromTemplate(Customer: Record Customer; CustomerTemplateCode: Code[20])`
- `GetSalutation(SalutationType: Enum "Salutation Formula Salutation Type"; LanguageCode: Code[10]): Text[260]`
- `InheritCompanyToPersonData(NewCompanyContact: Record Contact)`
- `StaleAddress(): Boolean` (protected)
- `SetHideValidationDialog(NewHideValidationDialog: Boolean)`
- `GetHideValidationDialog(): Boolean`
- `DisplayMap()`
- `ProcessNameChange()`
- `GetCompNo(ContactText: Text): Text`
- `ToPriceSource(var PriceSource: Record "Price Source")`
- `LookupCompany()`
- `LookupNewCustomerTemplate(): Code[20]`
- `CheckForExistingRelationships(LinkToTable: Enum "Contact Business Relation Link To Table")`
- `FindCustomer(var Customer: Record Customer): Boolean`
- `SetLastDateTimeModified()`
- `GetLastDateTimeModified(): DateTime`
- `SetLastDateTimeFilter(DateFilter: DateTime)`
- `TouchContact(ContactNo: Code[20])`
- `CountNoOfBusinessRelations(LinkToTable: Enum "Contact Business Relation Link To Table"): Integer`
- `CreateSalesQuoteFromContact()`
- `CreatePurchaseQuoteFromContact()`
- `ContactToCustBusinessRelationExist(): Boolean`
- `ContactToVendBusinessRelationExist(): Boolean`
- `CheckIfMinorForProfiles()`
- `CheckIfPrivacyBlocked(IsPosting: Boolean)`
- `CheckIfPrivacyBlockedGeneric()`
- `SetDefaultSalesperson()` (protected)
- `VATRegistrationValidation()`
- `GetContNo(ContactText: Text): Code[20]`
- `MarkContactsWithSimilarName(var Contact: Record Contact; ContactText: Text)` (protected)
- `GetContactsSelectionFromContactList(SelectMode: Boolean): Boolean`
- `SetSearchEmail()` (protected)
- `CreateEmployee(): Code[20]`
- `CreateEmployeeLink()`
- `GetOrClear(ContactNo: Code[20])`
- `LookupNewVendorTemplate(): Code[20]` (internal)
- `CreateInteractionForEmail()` (internal)

Plus 32 local procedures.

## Triggers

OnDelete, OnInsert, OnModify, OnRename

## Relations

- drill-down page [Page 5052 "Contact List"](../page/5052.md)
- lookup page [Page 5052 "Contact List"](../page/5052.md)
- Salesperson Code: TableRelation [Table 13 "Salesperson/Purchaser"](../table/13.md)
- Salesperson Filter: TableRelation [Table 13 "Salesperson/Purchaser"](../table/13.md)
- City: TableRelation [Table 225 "Post Code"](../table/225.md) (conditional)
- Post Code: TableRelation [Table 225 "Post Code"](../table/225.md) (conditional)
- Territory Code: TableRelation [Table 286 "Territory"](../table/286.md)
- No. Series: TableRelation [Table 308 "No. Series"](../table/308.md)
- Currency Code: TableRelation [Table 4 "Currency"](../table/4.md)
- Company Name: TableRelation [Table 5050 "Contact"](../table/5050.md)
- Company No.: TableRelation [Table 5050 "Contact"](../table/5050.md)
- Lookup Contact No.: TableRelation [Table 5050 "Contact"](../table/5050.md)
- No. of Business Relations: CalcFormula [Table 5054 "Contact Business Relation"](../table/5054.md)
- No. of Mailing Groups: CalcFormula [Table 5056 "Contact Mailing Group"](../table/5056.md)
- No. of Industry Groups: CalcFormula [Table 5058 "Contact Industry Group"](../table/5058.md)
- Comment: CalcFormula [Table 5061 "Rlshp. Mgt. Comment Line"](../table/5061.md)
- Cost (LCY): CalcFormula [Table 5065 "Interaction Log Entry"](../table/5065.md)
- Date of Last Interaction: CalcFormula [Table 5065 "Interaction Log Entry"](../table/5065.md)
- Duration (Min.): CalcFormula [Table 5065 "Interaction Log Entry"](../table/5065.md)
- Last Date Attempted: CalcFormula [Table 5065 "Interaction Log Entry"](../table/5065.md)
- No. of Interactions: CalcFormula [Table 5065 "Interaction Log Entry"](../table/5065.md)
- Job Responsibility Filter: TableRelation [Table 5066 "Job Responsibility"](../table/5066.md)
- No. of Job Responsibilities: CalcFormula [Table 5067 "Contact Job Responsibility"](../table/5067.md)
- Salutation Code: TableRelation [Table 5068 "Salutation"](../table/5068.md)
- Organizational Level Code: TableRelation [Table 5070 "Organizational Level"](../table/5070.md)
- Campaign Filter: TableRelation [Table 5071 "Campaign"](../table/5071.md)
- Next Task Date: CalcFormula [Table 5080 "To-do"](../table/5080.md)
- Task Entry Exists: CalcFormula [Table 5080 "To-do"](../table/5080.md)
- Team Filter: TableRelation [Table 5083 "Team"](../table/5083.md)
- Sales Cycle Filter: TableRelation [Table 5090 "Sales Cycle"](../table/5090.md)
- Sales Cycle Stage Filter: TableRelation [Table 5091 "Sales Cycle Stage"](../table/5091.md)
- Calcd. Current Value (LCY): CalcFormula [Table 5093 "Opportunity Entry"](../table/5093.md)
- Estimated Value (LCY): CalcFormula [Table 5093 "Opportunity Entry"](../table/5093.md)
- No. of Opportunities: CalcFormula [Table 5093 "Opportunity Entry"](../table/5093.md)
- Opportunity Entry Exists: CalcFormula [Table 5093 "Opportunity Entry"](../table/5093.md)
- Close Opportunity Filter: TableRelation [Table 5094 "Close Opportunity Code"](../table/5094.md)
- Coupled to Dataverse: CalcFormula [Table 5331 "CRM Integration Record"](../table/5331.md)
- Language Code: TableRelation [Table 8 "Language"](../table/8.md)
- Country/Region Code: TableRelation [Table 9 "Country/Region"](../table/9.md)

## Referenced by

126 fields in 70 objects relate to this table (TableRelation or CalcFormula).

- [Table 5065 "Interaction Log Entry"](../table/5065.md): Contact Company Name, Contact Name, Contact Company No., Contact No.
- [Table 5077 "Segment Line"](../table/5077.md): Contact Company Name, Contact Name, Contact Company No., Contact No.
- [Table 5080 "To-do"](../table/5080.md): Contact Company Name, Contact Name, Contact Company No., Contact No.
- [Table 5085 "Contact Duplicate"](../table/5085.md): Contact Name, Duplicate Contact Name, Contact No., Duplicate Contact No.
- [Table 5092 "Opportunity"](../table/5092.md): Contact Company Name, Contact Name, Contact Company No., Contact No.
- [Table 5050 "Contact"](../table/5050.md): Company Name, Company No., Lookup Contact No.
- [Table 5089 "Contact Profile Answer"](../table/5089.md): Contact Name, Contact Company No., Contact No.
- [Table 5102 "RM Matrix Management"](../table/5102.md): Company No., Contact Company Filter, Contact Filter
- [Table 9063 "Relationship Mgmt. Cue"](../table/9063.md): Contacts - Companies, Contacts - Open Opportunities, Contacts - Persons
- [Table 110 "Sales Shipment Header"](../table/110.md): Bill-to Contact No., Sell-to Contact No.
- [Table 112 "Sales Invoice Header"](../table/112.md): Bill-to Contact No., Sell-to Contact No.
- [Table 114 "Sales Cr.Memo Header"](../table/114.md): Bill-to Contact No., Sell-to Contact No.
- [Table 120 "Purch. Rcpt. Header"](../table/120.md): Buy-from Contact No., Pay-to Contact no.
- [Table 122 "Purch. Inv. Header"](../table/122.md): Buy-from Contact No., Pay-to Contact No.
- [Table 124 "Purch. Cr. Memo Hdr."](../table/124.md): Buy-from Contact No., Pay-to Contact No.
- [Table 13 "Salesperson/Purchaser"](../table/13.md): Contact Company Filter, Contact Filter
- [Table 36 "Sales Header"](../table/36.md): Bill-to Contact No., Sell-to Contact No.
- [Table 38 "Purchase Header"](../table/38.md): Buy-from Contact No., Pay-to Contact No.
- [Table 5054 "Contact Business Relation"](../table/5054.md): Contact Name, Contact No.
- [Table 5056 "Contact Mailing Group"](../table/5056.md): Contact Name, Contact No.
- [Table 5058 "Contact Industry Group"](../table/5058.md): Contact Name, Contact No.
- [Table 5060 "Contact Web Source"](../table/5060.md): Contact Name, Contact No.
- [Table 5067 "Contact Job Responsibility"](../table/5067.md): Contact Name, Contact No.
- [Table 5071 "Campaign"](../table/5071.md): Contact Company Filter, Contact Filter
- [Table 5083 "Team"](../table/5083.md): Contact Company Filter, Contact Filter
- [Table 5093 "Opportunity Entry"](../table/5093.md): Contact Company No., Contact No.
- [Table 5107 "Sales Header Archive"](../table/5107.md): Bill-to Contact No., Sell-to Contact No.
- [Table 5109 "Purchase Header Archive"](../table/5109.md): Buy-from Contact No., Pay-to Contact No.
- [Table 5900 "Service Header"](../table/5900.md): Bill-to Contact No., Contact No.
- [Table 5965 "Service Contract Header"](../table/5965.md): Bill-to Contact No., Contact No.
- [Table 5970 "Filed Service Contract Header"](../table/5970.md): Bill-to Contact No., Contact No.
- [Table 5990 "Service Shipment Header"](../table/5990.md): Bill-to Contact No., Contact No.
- [Table 5992 "Service Invoice Header"](../table/5992.md): Bill-to Contact No., Contact No.
- [Table 5994 "Service Cr.Memo Header"](../table/5994.md): Bill-to Contact No., Contact No.
- [Table 6010 "Service Header Archive"](../table/6010.md): Bill-to Contact No., Contact No.
- [Table 6650 "Return Shipment Header"](../table/6650.md): Buy-from Contact No., Pay-to Contact No.
- [Table 6660 "Return Receipt Header"](../table/6660.md): Bill-to Contact No., Sell-to Contact No.
- [Table 8008 "Imported Subscription Header"](../table/8008.md): Bill-to Contact No., End-User Contact No.
- [Table 8010 "Imported Cust. Sub. Contract"](../table/8010.md): Bill-to Contact No., Sell-to Contact No.
- [Table 8052 "Customer Subscription Contract"](../table/8052.md): Bill-to Contact No., Sell-to Contact No.
- [Table 8057 "Subscription Header"](../table/8057.md): Bill-to Contact No., End-User Contact No.
- [Table 8063 "Vendor Subscription Contract"](../table/8063.md): Buy-from Contact No., Pay-to Contact No.
- [Table 1001 "Job Task"](../table/1001.md): Sell-to Contact No.
- [Table 167 "Job"](../table/167.md): Sell-to Contact No.
- [Table 18 "Customer"](../table/18.md): Primary Contact No.
- [Table 23 "Vendor"](../table/23.md): Primary Contact No.
- [Table 4592 "SOA KPI Entry"](../table/4592.md): Contact Name
- [Table 5051 "Contact Alt. Address"](../table/5051.md): Contact No.
- [Table 5052 "Contact Alt. Addr. Date Range"](../table/5052.md): Contact No.
- [Table 5061 "Rlshp. Mgt. Comment Line"](../table/5061.md): No.
- and 20 more objects (20 fields): data/code/relations/29.json

## Pages and codeunits on this table

- [Page 1604 "Office New Contact Dlg"](../page/1604.md) (source table)
- [Page 1627 "Office No Customer Dlg"](../page/1627.md) (source table)
- [Page 1628 "Office No Vendor Dlg"](../page/1628.md) (source table)
- [Page 1630 "Office Contact Details Dlg"](../page/1630.md) (source table)
- [Page 30071 "APIV2 - Contacts"](../page/30071.md) (source table)
- [Page 30089 "APIV2 - CustContacts"](../page/30089.md) (source table)
- [Page 36966 "Contacts - PBI API"](../page/36966.md) (source table)
- [Page 4412 "SOA Contact Lookup"](../page/4412.md) (source table)
- [Page 5050 "Contact Card"](../page/5050.md) (source table)
- [Page 5052 "Contact List"](../page/5052.md) (source table)
- [Page 5053 "Contact Statistics"](../page/5053.md) (source table)
- [Page 5054 "Company Details"](../page/5054.md) (source table)
- [Page 5055 "Name Details"](../page/5055.md) (source table)
- [Page 5104 "Contact Picture"](../page/5104.md) (source table)
- [Page 8000 "Contact Billing Factbox"](../page/8000.md) (source table)
- [Page 9130 "Contact Statistics FactBox"](../page/9130.md) (source table)
- [Codeunit 5055 "CustVendBank-Update"](../codeunit/5055.md) (codeunit runs on it)

## Extended by

- [Table extension 4812 "Intrastat Report Contact"](../tableextension/4812.md)
- [Table extension 7246 "MDM Contact"](../tableextension/7246.md)
- [Table extension 8000 "Contracts Contact"](../tableextension/8000.md)

## 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 1381 "Customer Templ. Mgt."](../codeunit/1381.md) (5 calls: `ChooseNewCustomerTemplate → SelectCustomerTemplate`, `CreateCustomer → SelectCustomerTemplateFromContact`, `CreateCustomer → TemplatesAreNotEmpty`, …)
- [Codeunit 1387 "Employee Templ. Mgt."](../codeunit/1387.md) (5 calls: `CreateEmployee → ApplyEmployeeTemplate`, `CreateEmployee → InitEmployeeNo`, `CreateEmployee → IsEnabled`, …)
- [Codeunit 5055 "CustVendBank-Update"](../codeunit/5055.md) (5 calls: `CreateBankAccount → UpdateBankAccount`, `CreateCustomerFromTemplate → UpdateCustomer`, `CreateEmployee → UpdateEmployee`, …)
- [Codeunit 5060 "DuplicateManagement"](../codeunit/5060.md) (5 calls: `CheckDuplicates → DuplicateExist`, `CheckDuplicates → LaunchDuplicateForm`, `CheckDuplicates → MakeContIndex`, …)
- [Codeunit 1385 "Vendor Templ. Mgt."](../codeunit/1385.md) (3 calls: `CreateVendor → SelectVendorTemplateFromContact`, `CreateVendorFromTemplate → ApplyVendorTemplate`, `CreateVendorFromTemplate → InitVendorNo`)
- [Codeunit 249 "VAT Registration Log Mgt."](../codeunit/249.md) (3 calls: `OnDelete → DeleteContactLog`, `VATRegistrationValidation → LogContact`, `VATRegistrationValidation → ValidateVATRegNoWithVIES`)
- [Codeunit 7030 "Campaign Target Group Mgt"](../codeunit/7030.md) (3 calls: `CreateCustomerFromTemplate → ConverttoCustomer`, `OnDelete → DeleteContfromTargetGr`, `TypeChange → DeleteContfromTargetGr`)
- [Codeunit 10 "Type Helper"](../codeunit/10.md) (2 calls: `GetTimeZoneOffset → GetUserTimezoneOffset`, `MarkContactsWithSimilarName → TextDistance`)
- [Codeunit 1630 "Office Management"](../codeunit/1630.md) (2 calls: `ShowResultForCustomer → IsAvailable`, `ShowResultForVendor → IsAvailable`)
- [Page 456 "No. Series"](../page/456.md) (2 calls: `AssistEdit → (object)`, `OnInsert → (object)`)
- [Page 5061 "Contact Business Relations"](../page/5061.md) (2 calls: `ShowBusinessRelation → (object)`, `ShowBusinessRelations → (object)`)
- [Codeunit 27 "Confirm Management"](../codeunit/27.md) (1 call: `UpdateQuotesFromTemplate → GetResponse`)
- [Codeunit 3006 "DotNet_DateTimeOffset"](../codeunit/3006.md) (1 call: `GetTimeZoneOffset → GetOffset`)
- [Codeunit 4030 "Client Type Management"](../codeunit/4030.md) (1 call: `GetDefaultPhoneNo → GetCurrentClientType`)
- [Codeunit 802 "Online Map Management"](../codeunit/802.md) (1 call: `DisplayMap → MakeSelectionIfMapEnabled`)
- [Page 21 "Customer Card"](../page/21.md) (1 call: `ShowResultForCustomer → (object)`)
- [Page 26 "Vendor Card"](../page/26.md) (1 call: `ShowResultForVendor → (object)`)
- [Page 41 "Sales Quote"](../page/41.md) (1 call: `CreateSalesQuoteFromContact → (object)`)
- [Page 49 "Purchase Quote"](../page/49.md) (1 call: `CreatePurchaseQuoteFromContact → (object)`)

## Recent changes

- 2026-08-26 [#10631 Integration/main to releases 29.x 31a860b5](../../changes/bcapps/10631.md) (releases/29.x, BC29, feature)
- 2026-08-24 [#10303 [Master]-Modifying a linked contact's common field clears the SIREN field on the associated customer record in the French version.](../../changes/bcapps/10303.md) (main, BC30, fix)
- 2026-08-13 [#10036 [SOA]: Bugbash for releases 28.x - Contact unable to find due to Qasim map to Megan, different names](../../changes/bcapps/10036.md) (main, BC30, fix)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-28

## Countries that replace it

[AU](../../localizations/au.md), [BE](../../localizations/be.md), [FR](../../localizations/fr.md), [IT](../../localizations/it.md), [NZ](../../localizations/nz.md)

## Deprecations

- field Coupled to CRM: Removed 26.0 (#if not CLEANSCHEMA26), "Replaced by flow field Coupled to Dataverse"

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: "table", object_name: "Contact")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
