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

Notifications

Announcements

No record found.

Community site session details

Community site session details

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

How to add custom fields in Coupling Match-Based grid?

(6) ShareShare
ReportReport
Posted on by 29
Hi,
my scenario:
D365 BC 20 On-Premise
Dataverse/Dynamics 365 Sales Online
D365 BC is integrated with Dataverse using data-sync hybrid Dataverse Connection Setup. (Standard native data-sync connector)
In BC23.5 and previous versions, we cannot add new integration tables other than the default tables. We need to go through complex customization.
 
In my D365 BC 20 On-premise, the "New Table Mapping" and "New Field Mapping" actions are not supported for adding Dataverse extensions in the "Integration Table Mapping" (5335) and "Integration Field Mapping" (5336) tables.
As a result, I had to implement some custom logic using AL code, following the guidelines provided in the Customizing an integration with Microsoft Dataverse documentation.

However, the Microsoft documentation does not include any examples or AL how-to instructions for adding custom fields to the "Match Based Coupling Criteria" page card (5363), which is part of the "Integration Field Mapping" (5336) setup.

Details:

  • I created a custom field in the standard Dataverse Contact table: "BC No." (new_bcno) of type Text[100].
  • I’m using the default "CONTACT" integration record in the "Integration Table Mapping" (5335).
  • I mapped the custom Dataverse field to the "No." field of the BC Contact (5050) table, following the customization guidelines.

However, when I select the "CONTACT" integration record and choose the "Match-Based Coupling" action from the "Coupling" group, the two fields are not available on the "Match Based Coupling Criteria" page card (5363).

How can I add them?

 
Note: There isn't "No," as Field Name and "BC No."  as Integration Field Name. 
Same behaviour if I add any custom fields to OOB Dataverse Contact Table.
I have the same question (0)
  • Suggested answer
    Jeffrey Bulanadi Profile Picture
    8,760 on at

    Hi DP-09071335-0,

    You're asking how to expose a custom field—specifically "BC No." (new_bcno)—in the Match-Based Coupling Criteria page (ID 5363) when working with the standard CONTACT integration record in BC 20 On-Premise. You've already mapped the field in Integration Field Mapping (5336), but it doesn’t appear in the coupling grid.

    This is a known limitation in older versions of BC, especially on-premise, where the Match-Based Coupling Criteria page only displays fields that are explicitly enabled and linked through the integration metadata.

    Here’s how you can work around it:

    1. Extend the Integration Field Mapping Table (5336)
    You’ll need to create a new record in Integration Field Mapping manually via AL code to link your custom Dataverse field to the BC field.

    al
    procedure AddCustomFieldMapping()
    var
        IntegrationFieldMapping: Record "Integration Field Mapping";
    begin
        IntegrationFieldMapping.Init();
        IntegrationFieldMapping."Integration Table Mapping ID" := 'CONTACT'; // Use actual GUID or lookup
        IntegrationFieldMapping."Field Name" := 'No.';
        IntegrationFieldMapping."Integration Field Name" := 'new_bcno';
        IntegrationFieldMapping."Direction" := IntegrationFieldMapping."Direction"::Bidirectional;
        IntegrationFieldMapping.Insert(true);
    end;
     

    Make sure this runs after your integration setup is initialized.

     

    2. Extend the Match-Based Coupling Criteria Page (5363)
    This page uses a filtered view of Integration Field Mapping. You’ll need to ensure your custom field is flagged as eligible for matching.

    • Add a new field to the page via a page extension
    • Set Match on this Field and Case-sensitive Matching to true
    • Optionally, set Match Priority to guide the matching logic
     

    3. Validate Field Visibility
    After inserting the mapping, restart the client and open the Match-Based Coupling action again. Your custom field should now appear in the grid.

    If it still doesn’t show:

     
     
     
    • Check if the field is enabled in the FieldGroup of the Contact table
    • Confirm that the integration metadata is refreshed (you may need to restart the service tier)
     
     

    Here’s an example of how custom fields appear in the Match-Based Coupling grid once properly mapped:
    Customize Dataverse Integration – Microsoft Learn
    Add Field to FieldGroup – Saurav Dhyani
    Dataverse Field Mapping – Dynamics 365 Lab
    Coupling and Synchronizing Records – Microsoft Learn


    If you find this helpful, feel free to mark this as the suggested or verified answer.

    Cheers
    Jeffrey

  • Suggested answer
    YUN ZHU Profile Picture
    95,329 Super User 2025 Season 2 on at
    Hi, I have done some simple tests before, I hope the following information can give you some hints.
    Business Central 2024 wave 1 (BC24): Add table and field mappings to existing integration tables (Dataverse)
     
    Thanks.
    ZHU
  • Suggested answer
    DP-09071335-0 Profile Picture
    29 on at
    Thank you Jeffrey Bulanadi ,
    I just noticed that Microsoft's standard AL code for Dataverse integration requires that only one record be created in the 'Integration Table Mapping' (5335) table for each BC table to be integrated. The 'Match-Based Coupling' action recognizes the mapping of the selected record solely based on the 'Table ID' field; the 'Integration Table ID' field is completely ignored in the AL filters! So the system always takes the mapping of the first record with that 'Table ID'.
    In my case, I had inserted two records in 'Integration Table Mapping' (5335) with the same 'Table ID' (Contact) and the same 'Integration Table ID'. Microsoft's AL code will always use the 'Integration Field Mapping' fields from the first record! In my case, it takes the fields from the default 'CONTACT' record.
     
    The solution is to create only one record per BC table to be integrated and to set that record with Bidirectional direction.
     
     
    I am trying to create this custom scenario:
    1. I want to create standalone code and prevent the automatic creation of Microsoft default records in the 'Integration Table Mapping' (5335) table. My goal is to have only my custom records appear when clicking 'Use Default Synchronization Setup'.
    2. Contacts created in Business Central must be imported into Dataverse and can only be updated from Business Central.
    3. Contacts created in Dataverse must be imported into Business Central and can only be updated from Dataverse.
    Could someone help me, please?
     
    Kindly Regards,
    David

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…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

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

#1
OussamaSabbouh Profile Picture

OussamaSabbouh 3,143

#2
Jainam M. Kothari Profile Picture

Jainam M. Kothari 1,694 Super User 2025 Season 2

#3
YUN ZHU Profile Picture

YUN ZHU 1,067 Super User 2025 Season 2

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans