---
id: object/codeunit/5334
type: object
title: Codeunit 5334 "CRM Setup Defaults"
summary: Codeunit 5334 "CRM Setup Defaults" in Base Application (Microsoft.Integration.D365Sales). 47 public procedures, 36 events. Present since at least BC23, still in BC30, changed in BC24-28.
tier: official
language: en
tags:
  - codeunit
  - 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: 7fd2d329ab2c00554e89564b198ee3d4e4702cf914c65084bbf0d2a9037df066
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Integration/D365Sales/CRMSetupDefaults.Codeunit.al
    title: src/Layers/W1/BaseApp/Integration/D365Sales/CRMSetupDefaults.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: 5334
name: CRM Setup Defaults
namespace: Microsoft.Integration.D365Sales
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: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 94
  events: 36
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 9
  calls: 7
  called_by: 12
  implements: 0
---

# Codeunit 5334 "CRM Setup Defaults"

> Codeunit 5334 "CRM Setup Defaults" in Base Application (Microsoft.Integration.D365Sales). 47 public procedures, 36 events. Present since at least BC23, still in BC30, changed in BC24-28.

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

## Events published

- `OnAfterResetConfiguration(CRMConnectionSetup: Record "CRM Connection Setup")` (integration)
- `OnGetCDSTableNo(BCTableNo: Integer; var CDSTableNo: Integer; var handled: Boolean)` (integration)
  - subscribers: [Codeunit 6277 "Sust. Setup Defaults"](../codeunit/6277.md) ReturnProxyTableNoOnGetCDSTableNo, [Codeunit 6611 "FS Setup Defaults"](../codeunit/6611.md) ReturnProxyTableNoOnGetCDSTableNo, [Codeunit 7204 "CDS Setup Defaults"](../codeunit/7204.md) ReturnProxyTableNoOnGetCDSTableNo
- `OnAddEntityTableMapping(var TempNameValueBuffer: Record "Name/Value Buffer" temporary)` (integration)
  - subscribers: [Codeunit 6277 "Sust. Setup Defaults"](../codeunit/6277.md) AddProxyTablesOnAddEntityTableMapping, [Codeunit 6611 "FS Setup Defaults"](../codeunit/6611.md) AddProxyTablesOnAddEntityTableMapping, [Codeunit 7204 "CDS Setup Defaults"](../codeunit/7204.md) AddProxyTablesOnAddEntityTableMapping
- `OnBeforeResetItemProductMapping(var IntegrationTableMappingName: Code[20]; var EnqueueJobQueEntry: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeResetResourceProductMapping(var IntegrationTableMappingName: Code[20]; var EnqueueJobQueEntry: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeResetSalesInvoiceHeaderInvoiceMapping(var IntegrationTableMappingName: Code[20]; var EnqueueJobQueEntry: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeResetSalesInvoiceLineInvoiceMapping(var IntegrationTableMappingName: Code[20]; var IsHandled: Boolean)` (integration)
- `OnBeforeResetSalesOrderMapping(var IntegrationTableMappingName: Code[20]; var EnqueueJobQueEntry: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeResetBidirectionalSalesOrderMapping(var IntegrationTableMappingName: Code[20]; var EnqueueJobQueEntry: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeResetBidirectionalSalesOrderLineMapping(var IntegrationTableMappingName: Code[20]; var IsHandled: Boolean)` (integration)
- `OnBeforeResetPriceListHeaderPricelevelMapping(var IntegrationTableMappingName: Code[20]; var EnqueueJobQueEntry: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeResetPriceListLineProductPricelevelMapping(var IntegrationTableMappingName: Code[20]; var EnqueueJobQueEntry: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeResetUnitOfMeasureUoMScheduleMapping(var IntegrationTableMappingName: Code[20]; var EnqueueJobQueEntry: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeResetUnitGroupUoMScheduleMapping(var IntegrationTableMappingName: Code[20]; var EnqueueJobQueueEntry: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeResetItemUnitOfMeasureUoMMapping(var IntegrationTableMappingName: Code[20]; var EnqueueJobQueueEntry: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeResetResourceUnitOfMeasureUoMMapping(var IntegrationTableMappingName: Code[20]; var EnqueueJobQueueEntry: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeResetOpportunityMapping(var IntegrationTableMappingName: Code[20]; var IsHandled: Boolean)` (integration)
- `OnBeforeInsertIntegrationTableMapping(var IntegrationTableMapping: Record "Integration Table Mapping"; var MappingName: Code[20]; var TableNo: Integer; var IntegrationTableNo: Integer; var IntegrationTableUIDFieldNo: Integer; var IntegrationTableModifiedFieldNo: Integer; var TableConfigTemplateCode: Code[10]; var IntegrationTableConfigTemplateCode: Code[10]; var SynchOnlyCoupledRecords: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeInsertIntegrationFieldMapping(var IntegrationTableMappingName: Code[20]; var TableFieldNo: Integer; var IntegrationTableFieldNo: Integer; var SynchDirection: Option; var ConstValue: Text; var ValidateField: Boolean; var ValidateIntegrationTableField: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeGetDefaultDirection(NAVTableId: Integer; var DefaultDirection: Option; var IsHandled: Boolean)` (integration)
- `OnBeforeGetNameFieldNo(TableId: Integer; var FieldNo: Integer)` (integration)
  - subscribers: [Codeunit 6277 "Sust. Setup Defaults"](../codeunit/6277.md) ReturnNameFieldNoOnBeforeGetNameFieldNo, [Codeunit 6611 "FS Setup Defaults"](../codeunit/6611.md) ReturnNameFieldNoOnBeforeGetNameFieldNo
- `OnBeforeAddEntityTableMapping(var CRMEntityTypeName: Text; var TableID: Integer; var TempNameValueBuffer: Record "Name/Value Buffer" temporary)` (integration)
- `OnBeforeResetConfiguration(var CRMConnectionSetup: Record "CRM Connection Setup"; var IsHandled: Boolean)` (integration)
- `OnResetCustomerPriceGroupPricelevelMappingOnAfterInsertFieldsMapping(IntegrationTableMappingName: Code[20])` (integration)
- `OnResetItemProductMappingOnAfterInsertFieldsMapping(IntegrationTableMappingName: Code[20])` (integration)
  - subscribers: [Codeunit 6610 "FS Int. Table Subscriber"](../codeunit/6610.md) AddFieldServiceProductMappings
- `OnResetOpportunityMappingOnAfterInsertFieldsMapping(IntegrationTableMappingName: Code[20])` (integration)
- `OnResetPriceListHeaderPricelevelMappingOnAfterInsertFieldsMapping(IntegrationTableMappingName: Code[20])` (integration)
- `OnResetPriceListLineProductPricelevelMappingOnAfterInsertFieldsMapping(IntegrationTableMappingName: Code[20])` (integration)
- `OnResetResourceProductMappingOnAfterInsertFieldsMapping(IntegrationTableMappingName: Code[20])` (integration)
- `OnResetSalesInvoiceHeaderInvoiceMappingOnAfterInsertFieldsMapping(IntegrationTableMappingName: Code[20])` (integration)
- `OnResetSalesInvoiceLineInvoiceMappingOnAfterInsertFieldsMapping(IntegrationTableMappingName: Code[20])` (integration)
- `OnResetSalesOrderMappingOnAfterInsertFieldsMapping(IntegrationTableMappingName: Code[20])` (integration)
- `OnResetBidirectionalSalesOrderMappingOnAfterInsertFieldsMapping(IntegrationTableMappingName: Code[20])` (integration)
- `OnResetBidirectionalSalesOrderLineMappingOnAfterInsertFieldsMapping(IntegrationTableMappingName: Code[20])` (integration)
- `OnGetTableIDCRMEntityNameMappingOnAfterAddFSEntityTableMapping(var TempNameValueBuffer: Record "Name/Value Buffer" temporary)` (integration, obsolete 27.0)
- `OnResetSalesPriceProductPricelevelMappingOnAfterInsertFieldsMapping(IntegrationTableMappingName: Code[20])` (integration)

## Procedures

- `ResetConfiguration(CRMConnectionSetup: Record "CRM Connection Setup")`
- `ResetExtendedPriceListConfiguration()`
- `ResetUnitGroupMappingConfiguration()`
- `ResetItemProductMapping(IntegrationTableMappingName: Code[20]; EnqueueJobQueEntry: Boolean)`
- `ResetResourceProductMapping(IntegrationTableMappingName: Code[20]; EnqueueJobQueEntry: Boolean)`
- `ResetSalesInvoiceHeaderInvoiceMapping(IntegrationTableMappingName: Code[20]; IsTeamOwnershipModel: Boolean; EnqueueJobQueEntry: Boolean)`
- `ResetSalesInvoiceLineInvoiceMapping(IntegrationTableMappingName: Code[20])`
- `ResetSalesOrderMapping(IntegrationTableMappingName: Code[20]; IsTeamOwnershipModel: Boolean; EnqueueJobQueEntry: Boolean)`
- `ResetBidirectionalSalesOrderMapping(IntegrationTableMappingName: Code[20]; IsTeamOwnershipModel: Boolean; EnqueueJobQueEntry: Boolean)`
- `ResetBidirectionalSalesOrderLineMapping(IntegrationTableMappingName: Code[20])`
- `ResetSalesOrderMappingConfiguration(CRMConnectionSetup: Record "CRM Connection Setup")`
- `ResetCustomerPriceGroupPricelevelMapping(IntegrationTableMappingName: Code[20]; EnqueueJobQueEntry: Boolean)`
- `ResetPriceListHeaderPricelevelMapping(IntegrationTableMappingName: Code[20]; EnqueueJobQueEntry: Boolean)`
- `ResetUnitOfMeasureUoMScheduleMapping(IntegrationTableMappingName: Code[20]; EnqueueJobQueEntry: Boolean)`
- `ResetUnitGroupUoMScheduleMapping(IntegrationTableMappingName: Code[20]; EnqueueJobQueueEntry: Boolean)`
- `ResetItemUnitOfMeasureUoMMapping(IntegrationTableMappingName: Code[20]; EnqueueJobQueueEntry: Boolean)`
- `ResetResourceUnitOfMeasureUoMMapping(IntegrationTableMappingName: Code[20]; EnqueueJobQueueEntry: Boolean)`
- `ResetOpportunityMapping(IntegrationTableMappingName: Code[20]; IsTeamOwnershipModel: Boolean)`
- `InsertIntegrationTableMapping(var IntegrationTableMapping: Record "Integration Table Mapping"; MappingName: Code[20]; TableNo: Integer; IntegrationTableNo: Integer; IntegrationTableUIDFieldNo: Integer; IntegrationTableModifiedFieldNo: Integer; TableConfigTemplateCode: Code[10]; IntegrationTableConfigTemplateCode: Code[10]; SynchOnlyCoupledRecords: Boolean)`
- `InsertIntegrationFieldMapping(IntegrationTableMappingName: Code[20]; TableFieldNo: Integer; IntegrationTableFieldNo: Integer; SynchDirection: Option; ConstValue: Text; ValidateField: Boolean; ValidateIntegrationTableField: Boolean)`
- `SetIntegrationFieldMappingClearValueOnFailedSync()`
- `SetIntegrationFieldMappingNotNull()`
- `CreateJobQueueEntry(IntegrationTableMapping: Record "Integration Table Mapping"): Boolean`
- `RecreateItemAvailabilityJobQueueEntry(EnqueueJobQueEntry: Boolean)`
- `DeleteItemAvailabilityJobQueueEntry()`
- `RecreateSalesOrderStatusJobQueueEntry(EnqueueJobQueEntry: Boolean)`
- `RecreateSalesOrderNotesJobQueueEntry(EnqueueJobQueEntry: Boolean)`
- `RecreateArchivedSalesOrdersJobQueueEntry(EnqueueJobQueEntry: Boolean)`
- `RecreateJobQueueEntryFromIntTableMapping(IntegrationTableMapping: Record "Integration Table Mapping"; IntervalInMinutes: Integer; ShouldRecreateJobQueueEntry: Boolean; InactivityTimeoutPeriod: Integer)`
- `ResetCRMNAVConnectionData()`
- `RecreateAutoCreateSalesOrdersJobQueueEntry(EnqueueJobQueEntry: Boolean)`
- `RecreateAutoProcessSalesQuotesJobQueueEntry(EnqueueJobQueEntry: Boolean)`
- `RecreateJobQueueEntry(EnqueueJobQueEntry: Boolean; CodeunitId: Integer; MinutesBetweenRun: Integer; EntryDescription: Text; StatusReady: Boolean)`
- `DeleteAutoCreateSalesOrdersJobQueueEntry()`
- `DeleteAutoProcessSalesQuotesJobQueueEntry()`
- `GetAddPostedSalesDocumentToCRMAccountWallConfig(): Boolean`
- `GetAllowNonSecureConnections(): Boolean`
- `GetCRMTableNo(NAVTableID: Integer): Integer`
- `GetDefaultDirection(NAVTableID: Integer): Integer`
- `GetProductQuantityPrecision(): Integer`
- `GetNameFieldNo(TableID: Integer): Integer`
- `GetTableFilterFromView(TableID: Integer; Caption: Text; View: Text): Text`
- `GetPrioritizedMappingList(var NameValueBuffer: Record "Name/Value Buffer")`
- `GetTableIDCRMEntityNameMapping(var TempNameValueBuffer: Record "Name/Value Buffer" temporary)`
- `AddEntityTableMapping(CRMEntityTypeName: Text; TableID: Integer; var TempNameValueBuffer: Record "Name/Value Buffer" temporary)`
- `CreateInventoryQuantityFieldMapping()`
- `SetCustomIntegrationsTableMappings(CRMConnectionSetup: Record "CRM Connection Setup")`

Plus 11 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 7200 "CDS Integration Mgt."](../codeunit/7200.md) (10 calls: `InsertIntegrationTableMapping → HasCompanyIdField`, `ResetBidirectionalSalesOrderMapping → GetCDSCompany`, `ResetConfiguration → IsTeamOwnershipModelSelected`, …)
- [Codeunit 5344 "CRM Product Name"](../codeunit/5344.md) (9 calls: `CreateJobQueueEntry → SHORT`, `RecreateArchivedSalesOrdersJobQueueEntry → SHORT`, `RecreateAutoCreateSalesOrdersJobQueueEntry → SHORT`, …)
- [Codeunit 5330 "CRM Integration Management"](../codeunit/5330.md) (7 calls: `GetTableIDCRMEntityNameMapping → IsUnitGroupMappingEnabled`, `ResetConfiguration → IsCRMSolutionInstalled`, `ResetConfiguration → IsUnitGroupMappingEnabled`, …)
- [Codeunit 7204 "CDS Setup Defaults"](../codeunit/7204.md) (3 calls: `CreateJobQueueEntry → CreateJobQueueEntry`, `RecreateJobQueueEntryFromIntTableMapping → RecreateJobQueueEntryFromIntTableMapping`, `ResetConfiguration → AddExtraIntegrationFieldMappings`)
- [Codeunit 5353 "CRM Enable Posts"](../codeunit/5353.md) (2 calls: `ResetConfiguration → (object)`, `ResetSalesOrderMappingConfiguration → (object)`)
- [Codeunit 7001 "Price Calculation Mgt."](../codeunit/7001.md) (2 calls: `GetTableIDCRMEntityNameMapping → IsExtendedPriceCalculationEnabled`, `ResetConfiguration → IsExtendedPriceCalculationEnabled`)
- [Codeunit 453 "Job Queue - Enqueue"](../codeunit/453.md) (1 call: `RecreateJobQueueEntry → (object)`)

## Called by

- [Codeunit 5330 "CRM Integration Management"](../codeunit/5330.md) (24 calls: `EnqueueFullSyncJob → CreateJobQueueEntry`, `EnqueueOptionSyncJob → CreateJobQueueEntry`, `EnqueueOptionSyncJobFromIntegrationTable → CreateJobQueueEntry`, …)
- [Table 5332 "Coupling Record Buffer"](../table/5332.md) (4 calls: `FindCRMRecordByName → GetNameFieldNo`, `Initialize → GetCRMTableNo`, `Initialize → GetDefaultDirection`, …)
- [Codeunit 6611 "FS Setup Defaults"](../codeunit/6611.md) (3 calls: `AddProxyTablesOnAddEntityTableMapping → AddEntityTableMapping`, `ResetConfiguration → ResetItemProductMapping`, `ResetServiceOrderMapping → RecreateJobQueueEntry`)
- [Table 5330 "CRM Connection Setup"](../table/5330.md) (3 calls: `EnableIntegrationTables → ResetConfiguration`, `PerformWebClientUrlReset → ResetCRMNAVConnectionData`, `SynchronizeNow → GetPrioritizedMappingList`)
- [Table 5335 "Integration Table Mapping"](../table/5335.md) (3 calls: `DisableMultiCompanySynchronization → GetTableFilterFromView`, `EnableMultiCompanySynchronization → GetTableFilterFromView`, `SynchronizeOptionNow → CreateJobQueueEntry`)
- [Codeunit 104000 "Upgrade - BaseApp"](../codeunit/104000.md) (1 call: `UpgradeIntegrationTableMappingFilterForOpportunities → GetTableFilterFromView`)
- [Codeunit 5342 "CRM Synch. Helper"](../codeunit/5342.md) (1 call: `SetCRMDecimalsSupportedValue → GetProductQuantityPrecision`)
- [Codeunit 5346 "CRM Sales Document Posting Mgt"](../codeunit/5346.md) (1 call: `AddPostedSalesDocumentToCRMAccountWall → GetAddPostedSalesDocumentToCRMAccountWallConfig`)
- [Codeunit 6277 "Sust. Setup Defaults"](../codeunit/6277.md) (1 call: `AddProxyTablesOnAddEntityTableMapping → AddEntityTableMapping`)
- [Codeunit 6610 "FS Int. Table Subscriber"](../codeunit/6610.md) (1 call: `AddFieldServiceProductMappings → InsertIntegrationFieldMapping`)
- [Codeunit 7049 "Feature - Price Calculation"](../codeunit/7049.md) (1 call: `AdjustCRMConnectionSetup → ResetExtendedPriceListConfiguration`)
- [Codeunit 7204 "CDS Setup Defaults"](../codeunit/7204.md) (1 call: `AddProxyTablesOnAddEntityTableMapping → AddEntityTableMapping`)

## Across versions

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

## Deprecations

- procedure OnGetTableIDCRMEntityNameMappingOnAfterAddFSEntityTableMapping: Pending 27.0 (#if not CLEAN27), "This event is never raised."

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: "CRM Setup Defaults")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
