Skip to main content

InforLn - Customer sync

InforLn - Customer Update This document describes the customer synchronization process for the InforLn connector. The process retrieves cu...

Updated over a week ago

InforLn - Customer Update

This document describes the customer synchronization process for the InforLn connector. The process retrieves customer data from the InforLn ERP system, transforms it, and updates the App4Sales database. This includes core customer information, addresses, contact persons, price list links, and discounts.

Data Source Configuration

The customer update process is initiated by calling the A4SListCustomers SOAP web service. The connector retrieves a list of all customers from the connected InforLn administration.

  • Service: InforLn Web Service

  • Method: A4SListCustomers

  • Authentication: The username for the current administration is used for authentication.

Data Mapping

The following tables detail how data from the InforLn ERP system is mapped to App4Sales entities.

Customers

App4Sales Field

Source Field (XML)

Logic/Notes

CustomerCode

customers.customerCode

The customer code is trimmed of any leading/trailing whitespace.

CustomerName

customers.customerName

The name of the customer.

LanguageCode

customers.languageCode

The language code is mapped to an App4Sales language code.

Discount

customers.discount

The discount is converted to a decimal value. If the value is empty or null, it defaults to 0.

CustomerManager

customers.customerManager

The manager responsible for the customer.

CustomerDashboard

customers.customerDashboard

The Base64 encoded dashboard layout for the customer. This is processed and stored separately.

Email

customers.email

The primary email address for the customer.

Sysmodified

customers.sysmodified / customers.lastModified

The date and time the customer was last modified. If not provided, it defaults to the current date and time.

VatCode

customers.VATCode

The VAT code for the customer. For USA administrations, this field is cleared.

VatLiable

customers.isVATLiable

A boolean indicating if the customer is VAT liable. For USA administrations, this is set to false.

ActionPriceList

-

If a `DefaultActionPriceListCode` is configured in the connector settings, and the customer does not have an action price list, this will be used.

PaymentConditionCode

-

If the payment condition code is an empty string, it is set to null to prevent foreign key issues.

ItemFilter

-

Processed from extra data if `CustomerItemFilter` setting is enabled.

Addresses

App4Sales Field

Source Field (XML)

Logic/Notes

AddressType

-

Hardcoded to "del" (delivery) and "vis" (visit). If only one type is provided, the other is created as a copy.

AddressLine1

customers.deliveryAddress1 / customers.visitAddress1

The first line of the address.

PostCode

customers.deliveryPostCode / customers.visitPostCode

The postal code for the address.

City

customers.deliveryCity / customers.visitCity

The city for the address.

Country

customers.languageCode

The country for the address, initially set to the customer's language code.

Iso2

-

The ISO2 country code is derived from the country name. It can be overridden by mapped country codes.

Phone

customers.contactPhone

The phone number for the address.

Email

customers.email

The email address for the address, inherited from the customer.

Fax

-

The fax number, inherited from the customer.

IsMainAddress

-

The first visit and delivery address are marked as the main address.

Contact Persons

App4Sales Field

Source Field (XML)

Logic/Notes

FullName

customers.contactFullName

The full name of the contact person. If not provided, it is constructed from the first, middle, and last names.

IsMainContactPerson

-

The first contact person in the list is marked as the main contact person if no other contact is specified as the main contact.

ContactId

-

If the contact ID is empty, a new one is generated based on a hash of the contact person object. This is only done when running in Updater mode.

Special Logic & Filters

  • Batch Processing: Customers are processed in batches of 100 to avoid timeouts and reduce memory consumption.

  • GUID Handling: The connector attempts to reuse existing customer GUIDs to preserve relationships with orders and notes. It also supports reactivating previously deleted customers.

  • Address Normalization: The connector ensures that both a visit and a delivery address exist for each customer. If one is missing, it's created by copying the other. Country codes are normalized to ISO2 standards.

  • Main Contact: If no main contact person is designated, the first contact person in the list is automatically assigned as the main contact.

  • Extra Data Processing: The connector can process extra customer data provided via FTP/CSV. This data can override standard fields or be added as free fields.

  • Item Filters: Fixed item filters can be created for a customer based on extra data fields prefixed with `ItemFilter_`. This is controlled by the `CustomerItemFilter` setting.

  • Customer Dashboards: Base64-encoded dashboard layouts are decoded and saved to the `CustomerDashboards` table.

  • Customer Notes: Customer notes are recreated on each sync. Any existing notes from the backoffice are deleted and replaced with the new note.

Related Settings & Prerequisites

  • DefaultActionPriceListCode: If set, all customers without an action price list will be assigned the price list with this code.

  • CustomerItemFilter: When enabled, the connector will process extra data fields to create fixed item filters for customers.

  • EnablePriceDeduplication: If enabled, the connector will migrate customers to their deduplicated versions of pricelists.

Did this answer your question?