web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :
Small and medium business | Business Central, N...
Suggested answer

Customer Contact Creation ... Not Possible? ( #AbsoluteBeginner / #TalkToMeLikeIAmFive )

(3) ShareShare
ReportReport
Posted on by 35
Hi,
I have a customer.
 
I wish to add a contact to the customer.
 
However, when I make the contact, it tries makes some weird company, that I do not wish it to make. Worse than that, it names the company after the contact that I'm trying to create.
 
The contact is for the customer. The customer has all the details for  ... the customer. I do not need to make a company, as well.
 
I have a customer, I want the contact aligned with the customer.
 
If I go to make a new contact away from the customer screen, and that's worse.
 
How do I make a contact for a customer, not a company?
 
I have read the docs, here:
This question seems to be irrelevant ... sorry:
 
If it helps, and makes things simpler, I have API access ... quite honestly I have no clue what's going on in this GUI. :'(
I have the same question (0)
  • Sumit Singh Profile Picture
    7,485 on at
    Customer Contact Creation ... Not Possible? ( #AbsoluteBeginner / #TalkToMeLikeIAmFive )
    What’s Happening
    When you create a contact outside the Customer Card, Business Central assumes you're creating a new company contact, and it auto-generates a company record using the contact's name.
    Correct Way to Create a Contact for a Customer
    To avoid the unwanted company creation, follow these steps:
    🔹 Step-by-Step (GUI Method)
    1. Go to the Customer Card of the customer you want to link the contact to.
    2. In the Navigate tab, choose:
      • Customer > Contacts
    3. In the Contacts page that opens, click New.
    4. This will automatically link the contact to the existing customer company.
    5. Fill in the contact details (name, job title, phone, email, etc.).
    6. Save.
    This method ensures:
    • No new company is created.
    • The contact is correctly linked to the existing customer company.
    Alternative: API Method
    If you're using the API, make sure to link the contact to the existing customer company using the companyId field.
    Here’s a simplified example:
    POST /businesscentral/contacts
    {
      "firstName": "John",
      "lastName": "Doe",
      "jobTitle": "Procurement Manager",
      "companyId": "GUID-of-existing-customer-company"
    }
    You can retrieve the companyId from the customer record via the API before creating the contact.
     Tip
    If you often face this issue, consider customizing the contact creation flow or adding a validation to prevent standalone contact creation unless explicitly needed.
    Note: This response was created in collaboration with Microsoft Copilot to ensure clarity and completeness. I hope it helps to some extent.
    Mark the Answer as Verified if this is Helpful.
     
  • Suggested answer
    RockwithNav Profile Picture
    8,370 Super User 2025 Season 2 on at
    Customer Contact Creation ... Not Possible? ( #AbsoluteBeginner / #TalkToMeLikeIAmFive )
    Have a look - 
     
  • Suggested answer
    Ramesh Kumar Profile Picture
    7,511 Super User 2025 Season 2 on at
    Customer Contact Creation ... Not Possible? ( #AbsoluteBeginner / #TalkToMeLikeIAmFive )
    You can change Contact type to person or company
     
  • eliotcole Profile Picture
    35 on at
    Customer Contact Creation ... Not Possible? ( #AbsoluteBeginner / #TalkToMeLikeIAmFive )
    Hi, @Ramesh Kumar, I don't wish to change a contact to a company. Thank you for your response.
    You can change Contact type to person or company
     
     
    Thanks, @RockwithNav, I have yzhums on speeddial and had read that very article ... should've listed it ... thanks though!
     
     
    I appreciate the long response, but I should have stated in my question that I won't accept information from AI generated content. Thank you, though, @Sumit Singh.
    When you create ...
    ...
    ... If you're using the API, make sure to 
    That being said, the API steps are logic that I should have got to, I just got so frustrated at the ridiculousness of the GUI. 😏
     
    Either way, the Customer is not linked to a Company in any way, whatsoever.
     
    ...
     
    Also, case in point on the AI stuff (sorry to do this here) ... the API does not list companyId as a field that you can set for the contact endpoint, here.
     
    Additionally, I pulled a schema of the contacts endpoint, and it is not a field that is available according to this:
    {
    	"body": {
    		"name": "contacts",
    		"title": "Contact",
    		"x-ms-permission": "read-write",
    		"x-ms-capabilities": {
    			"sortRestrictions": {
    				"sortable": true
    			},
    			"filterRestrictions": {
    				"filterable": true
    			},
    			"selectRestrictions": {
    				"selectable": true
    			},
    			"filterFunctionSupport": [
    				"eq",
    				"ne",
    				"gt",
    				"ge",
    				"lt",
    				"le",
    				"and",
    				"or",
    				"contains",
    				"endswith",
    				"startswith",
    				"substring",
    				"tolower",
    				"toupper"
    			],
    			"serverPagingOptions": [
    				"skiptoken"
    			]
    		},
    		"schema": {
    			"x-ms-permission": "read-write",
    			"type": "array",
    			"items": {
    				"type": "object",
    				"required": [],
    				"properties": {
    					"id": {
    						"title": "Id",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"format": "guid",
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or"
    							]
    						},
    						"x-ms-permission": "read-only",
    						"x-ms-keyType": "primary",
    						"x-ms-keyOrder": 1
    					},
    					"number": {
    						"title": "No.",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"maxLength": 20,
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or",
    								"contains",
    								"endswith",
    								"startswith",
    								"substring",
    								"tolower",
    								"toupper"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"type": {
    						"title": "Type",
    						"type": "string",
    						"x-ms-sort": "none",
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"displayName": {
    						"title": "Display Name",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"maxLength": 100,
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or",
    								"contains",
    								"endswith",
    								"startswith",
    								"substring",
    								"tolower",
    								"toupper"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"jobTitle": {
    						"title": "Job Title",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"maxLength": 30,
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or",
    								"contains",
    								"endswith",
    								"startswith",
    								"substring",
    								"tolower",
    								"toupper"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"companyNumber": {
    						"title": "Company Number",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"maxLength": 20,
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or",
    								"contains",
    								"endswith",
    								"startswith",
    								"substring",
    								"tolower",
    								"toupper"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"companyName": {
    						"title": "Company Name",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"maxLength": 100,
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or",
    								"contains",
    								"endswith",
    								"startswith",
    								"substring",
    								"tolower",
    								"toupper"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"contactBusinessRelation": {
    						"title": "Business Relation",
    						"type": "string",
    						"x-ms-sort": "none",
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"addressLine1": {
    						"title": "Address Line 1",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"maxLength": 100,
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or",
    								"contains",
    								"endswith",
    								"startswith",
    								"substring",
    								"tolower",
    								"toupper"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"addressLine2": {
    						"title": "Address Line 2",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"maxLength": 50,
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or",
    								"contains",
    								"endswith",
    								"startswith",
    								"substring",
    								"tolower",
    								"toupper"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"city": {
    						"title": "City",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"maxLength": 30,
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or",
    								"contains",
    								"endswith",
    								"startswith",
    								"substring",
    								"tolower",
    								"toupper"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"state": {
    						"title": "State",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"maxLength": 30,
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or",
    								"contains",
    								"endswith",
    								"startswith",
    								"substring",
    								"tolower",
    								"toupper"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"country": {
    						"title": "Country/Region Code",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"maxLength": 10,
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or",
    								"contains",
    								"endswith",
    								"startswith",
    								"substring",
    								"tolower",
    								"toupper"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"postalCode": {
    						"title": "Postcode",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"maxLength": 20,
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or",
    								"contains",
    								"endswith",
    								"startswith",
    								"substring",
    								"tolower",
    								"toupper"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"phoneNumber": {
    						"title": "Phone No.",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"maxLength": 30,
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or",
    								"contains",
    								"endswith",
    								"startswith",
    								"substring",
    								"tolower",
    								"toupper"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"mobilePhoneNumber": {
    						"title": "Mobile Phone No.",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"maxLength": 30,
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or",
    								"contains",
    								"endswith",
    								"startswith",
    								"substring",
    								"tolower",
    								"toupper"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"email": {
    						"title": "Email",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"maxLength": 80,
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or",
    								"contains",
    								"endswith",
    								"startswith",
    								"substring",
    								"tolower",
    								"toupper"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"website": {
    						"title": "Website",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"maxLength": 80,
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or",
    								"contains",
    								"endswith",
    								"startswith",
    								"substring",
    								"tolower",
    								"toupper"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"searchName": {
    						"title": "Search Name",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"maxLength": 100,
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or",
    								"contains",
    								"endswith",
    								"startswith",
    								"substring",
    								"tolower",
    								"toupper"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"privacyBlocked": {
    						"title": "Privacy Blocked",
    						"type": "boolean",
    						"x-ms-sort": "asc,desc",
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"taxRegistrationNumber": {
    						"title": "VAT Registration No.",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or",
    								"contains",
    								"endswith",
    								"startswith",
    								"substring",
    								"tolower",
    								"toupper"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"lastInteractionDate": {
    						"title": "Date of Last Interaction",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"format": "date",
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or"
    							]
    						},
    						"x-ms-permission": "read-write"
    					},
    					"lastModifiedDateTime": {
    						"title": "Last Modified Date",
    						"type": "string",
    						"x-ms-sort": "asc,desc",
    						"format": "date-time",
    						"x-ms-capabilities": {
    							"filterFunctions": [
    								"eq",
    								"ne",
    								"gt",
    								"ge",
    								"lt",
    								"le",
    								"and",
    								"or"
    							]
    						},
    						"x-ms-permission": "read-write"
    					}
    				},
    				"x-ms-displayFormat": {
    					"propertiesCompactDisplayOrder": [
    						"id",
    						"number",
    						"type"
    					],
    					"propertiesDisplayOrder": [
    						"id",
    						"number",
    						"type",
    						"displayName",
    						"jobTitle",
    						"companyNumber",
    						"companyName",
    						"contactBusinessRelation",
    						"addressLine1",
    						"addressLine2",
    						"city",
    						"state",
    						"country",
    						"postalCode",
    						"phoneNumber",
    						"mobilePhoneNumber",
    						"email",
    						"website",
    						"searchName",
    						"privacyBlocked"
    					],
    					"propertiesTabularDisplayOrder": [
    						"id",
    						"number",
    						"type",
    						"displayName",
    						"jobTitle",
    						"companyNumber",
    						"companyName",
    						"contactBusinessRelation",
    						"addressLine1",
    						"addressLine2",
    						"city",
    						"state",
    						"country",
    						"postalCode",
    						"phoneNumber",
    						"mobilePhoneNumber",
    						"email",
    						"website",
    						"searchName",
    						"privacyBlocked"
    					]
    				}
    			}
    		}
    	}
    }
    Further more, the EDMX readout for the contacts endpoint shows no connection to that data, either ... at least that I can find ... but EDMX is horrrrrrrible. :sweat_smile:
     
          <EntityType Name="contact">
            <Key>
              <PropertyRef Name="id" />
            </Key>
            <Property Name="id" Type="Edm.Guid" Nullable="false" />
            <Property Name="number" Type="Edm.String" MaxLength="20" />
            <Property Name="type" Type="Microsoft.NAV.contactType" />
            <Property Name="displayName" Type="Edm.String" Nullable="false" MaxLength="100" />
            <Property Name="jobTitle" Type="Edm.String" Nullable="false" MaxLength="30" />
            <Property Name="companyNumber" Type="Edm.String" MaxLength="20" />
            <Property Name="companyName" Type="Edm.String" MaxLength="100" />
            <Property Name="contactBusinessRelation" Type="Microsoft.NAV.contactBusinessRelation" />
            <Property Name="addressLine1" Type="Edm.String" MaxLength="100" />
            <Property Name="addressLine2" Type="Edm.String" MaxLength="50" />
            <Property Name="city" Type="Edm.String" MaxLength="30" />
            <Property Name="state" Type="Edm.String" MaxLength="30" />
            <Property Name="country" Type="Edm.String" MaxLength="10" />
            <Property Name="postalCode" Type="Edm.String" MaxLength="20" />
            <Property Name="phoneNumber" Type="Edm.String" MaxLength="30" />
            <Property Name="mobilePhoneNumber" Type="Edm.String" MaxLength="30" />
            <Property Name="email" Type="Edm.String" MaxLength="80" />
            <Property Name="website" Type="Edm.String" MaxLength="80" />
            <Property Name="searchName" Type="Edm.String" MaxLength="100" />
            <Property Name="privacyBlocked" Type="Edm.Boolean" />
            <Property Name="taxRegistrationNumber" Type="Edm.String" />
            <Property Name="lastInteractionDate" Type="Edm.Date" />
            <Property Name="lastModifiedDateTime" Type="Edm.DateTimeOffset" />
            <NavigationProperty Name="contactInformation" Type="Microsoft.NAV.contactInformation" Partner="contact" ContainsTarget="true">
              <ReferentialConstraint Property="id" ReferencedProperty="contactId" />
            </NavigationProperty>
            <NavigationProperty Name="picture" Type="Microsoft.NAV.picture" Partner="contact" ContainsTarget="true">
              <ReferentialConstraint Property="id" ReferencedProperty="id" />
            </NavigationProperty>
          </EntityType>
     
     

     
     
     

  • Suggested answer
    YUN ZHU Profile Picture
    92,831 Super User 2025 Season 2 on at
    Customer Contact Creation ... Not Possible? ( #AbsoluteBeginner / #TalkToMeLikeIAmFive )
    If that's the case, I think maybe only customization can do it.
    In addition, if you create a Contact from a Customer Card, it will automatically be associated with the customer and there will be no such strange behavior.
     
     
    Thanks.
    ZHU
  • eliotcole Profile Picture
    35 on at
    Customer Contact Creation ... Not Possible? ( #AbsoluteBeginner / #TalkToMeLikeIAmFive )
    Hi, @YUN ZHU, thanks for responding. Wow ... didn't think I'd see you here! 😅
     
    I actually tried that, and it wouldn't let me create the contact as the contact, with the customer as what they were related to.
     
    It added them with the contact's name as their company, and it was all just a bit weird. :(
     
    Just to reiterate what I hope that I mentioned in my (long-ass!) reply, earlier ... there is not a corresponding company for the Customer ... and it was not made when I created the Customer.
  • Scott_itD Profile Picture
    Community Manager on at
    Customer Contact Creation ... Not Possible? ( #AbsoluteBeginner / #TalkToMeLikeIAmFive )
    Thanks for posting @Sumit Singh, we appreciate your desire to help the Community!
     
    UPDATE: I see that you have updated your post to include your sources. Greatly appreciated!
     
    I think your reply might be an AI-assisted post, but I do not see any tools or sources cited. Can you update the post to include your sources, or confirm this was not produced using AI?
     
    Please refer to the Use AI responsibly section of Writing effective responses in the community:
     
    Thank you!

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Abhilash Warrier – Community Spotlight

We are honored to recognize Abhilash Warrier as our Community Spotlight honoree for…

Leaderboard > Small and medium business | Business Central, NAV, RMS

#1
Rishabh Kanaskar Profile Picture

Rishabh Kanaskar 4,275

#2
Sumit Singh Profile Picture

Sumit Singh 2,677

#3
Nimsara Jayathilaka. Profile Picture

Nimsara Jayathilaka. 2,526

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans