Multivers Extended V3 - Customer Update
This document describes the customer synchronization process for the Multivers Extended V3 connector. It details how customer data, including addresses, contact persons, and related settings, are retrieved from the Multivers API and mapped to the App4Sales database.
Data Source Configuration
The connector retrieves customer data from a Multivers Extended V3 ERP system via its REST API. The base address for the API is configured in the App4Sales administration settings. The process involves several steps, starting with fetching debtor and organization data, and then enriching it with related information like payment conditions, contact persons, and addresses.
Data Mapping Tables
Customer
App4Sales Field | Source Field (API/Excel/DB) | Logic/Notes |
CustomerCode | Debtor.Id | The unique identifier of the debtor. |
CustomerName | Organisation.Name | The name of the organization. |
CustomerManager | Debtor.RepresentativeCode | The code of the sales representative. |
PaymentConditionCode | Debtor.PaymentConditionCode | The payment condition code. The connector verifies that the payment condition exists in App4Sales. |
LanguageCode | Organisation.LanguageCode | The language code of the organization. |
VatCode | Debtor.VatNumber | The VAT number of the debtor. |
VatLiable | Debtor.CalculateVat | A boolean indicating if VAT is calculated. Mapped from 'J' to true. |
DiscountGroup | Debtor.OrderDiscountGroupCode | The order discount group code. |
Currency | Debtor.CurrencyCode | The currency code of the debtor. |
Website | Debtor.WebSiteInfo.UrlAddress | The URL of the debtor's website. |
ChamberOfCommerceCode | Organisation.CocNumber | The Chamber of Commerce number of the organization. |
ItemShouldHaveStock | Organisation.Classifications | A boolean indicating if items should have stock. Determined by checking if a classification with the category code from the `OrganisationCategoryGroupIdForPortal4SalesItemStock` setting has a group code of 'JA'. |
CustomerClassification | Organisation.Classifications | The customer classification. Retrieved from the classification with the category code specified in the `CategoryCodeToRetrieveAsCustomerClassification` setting. |
ExtraData | Derived | A JSON object containing `OrganisationCode` and `OriginalPriceListCode`. |
Organisation.Emails | The primary email address of the organization. The connector first tries to find an email with a specific `TelecomUsageCode` if the `TeleComUsedTypeEmail` setting is configured. Otherwise, it takes the first email ordered by identifier. | |
Phone | Organisation.TelephoneNumbers | The primary phone number of the organization. The connector first tries to find a phone number with a specific `TelecomUsageCode` if the `TeleComUsedTypeTelephone` setting is configured. Otherwise, it takes the first phone number. |
Address
App4Sales Field | Source Field (API/Excel/DB) | Logic/Notes |
AddressLine1 | OrganisationAddress.AddressLine1 | The first line of the address. |
AddressLine2 | OrganisationAddress.AddressLine2 | The second line of the address. |
PostCode | OrganisationAddress.PostalCode | The postal code of the address. |
City | OrganisationAddress.City | The city of the address. |
Country | OrganisationAddress.CountryCode | The country code of the address. |
AddressType | OrganisationAddress.AddressTypeCode | The type of the address (e.g., 'DEL' for delivery, 'VIS' for visit, 'INV' for invoice). |
IsMainAddress | Debtor.DeliveryAddressCode, Debtor.VisitorsAddressCode | A boolean indicating if the address is the main address. Determined by comparing the address ID with the delivery and visitor address codes on the debtor. |
Contact Person
App4Sales Field | Source Field (API/Excel/DB) | Logic/Notes |
FullName | OrganisationPerson.FullName | The full name of the contact person. |
FirstName | OrganisationPerson.FirstName | The first name of the contact person. |
LastName | OrganisationPerson.LastName | The last name of the contact person. |
OrganisationPerson.EmailAddresses | The email address of the contact person. | |
Phonenumber | OrganisationPerson.TelephoneNumbers | The phone number of the contact person. |
MobileNumber | OrganisationPerson.TelephoneNumbers | The mobile number of the contact person. |
IsMainContact | Debtor.ContactPersonCode | A boolean indicating if the contact person is the main contact. Determined by comparing the person code with the contact person code on the debtor. |
Special Logic & Filters
Allowed Debtors: The connector can be configured to only sync a specific list of debtors using the `AllowedDebtorCodes` setting.
Inactive Customers: The `SkipInactiveCustomersDuringSync` setting determines whether inactive debtors are skipped during synchronization.
Disabled Customers Prefix: Customers with an organization code that starts with the value of the `DisabledCustomersPrefix` setting are skipped.
Customer Discounts: If the `CustomerDiscountProductGroupCode` setting is provided, the connector retrieves customer-specific discounts from the specified product group.
Action Price Lists: The `RetrieveActionPriceLists` setting enables the retrieval of action price lists for customers.
Customer Notes: After the main customer update, the connector separately fetches and updates customer notes.
Related Settings & Prerequisites
`AllowedDebtorCodes`: A semicolon-separated list of debtor codes to sync. If empty, all debtors are synced.
`SkipInactiveCustomersDuringSync`: If true, inactive debtors are not synced.
`DisabledCustomersPrefix`: A prefix for organization codes that should be excluded from the sync.
`CustomerDiscountProductGroupCode`: The product group code to use for retrieving customer-specific discounts.
`RetrieveActionPriceLists`: If true, action price lists are retrieved for customers.
`TeleComUsedTypeEmail`: The telecom usage code to identify the primary email address.
`TeleComUsedTypeTelephone`: The telecom usage code to identify the primary phone number.
`OrganisationCategoryGroupIdForPortal4SalesItemStock`: The organization category group ID used to determine if items should have stock.
`CategoryCodeToRetrieveAsCustomerClassification`: The category code used to retrieve the customer classification.