How It Works - General¶
When a new company should be created in Lime CRM, ACD will be shown. When ACD is loaded, there is a possibility to search for companies from the data provider or to create a company manually by clicking the Create Manually button. If you start searching for a company the results from that search will be displayed in a list where each item corresponds to a company. On the list item there is a action button with the possibility to either import the company to Lime CRM or navigate to the object card of the company. The action depends on if the company already exists in Lime CRM or not.
Which fields that should be populated when importing a company to Lime CRM is configurable.
Link an Existing Company (Webclient)¶
You can link an existing company in Lime CRM to a company from your data provider if the company is not already linked. This can be done from the company object card. The ACD dialog will be shown when you want to link a company and you can there choose which company you want to link to. The input fields in the ACD dialog can be prepopulated with data from you company in Lime CRM, this is decided in the configuration.
Updating Companies¶
Automatic updates¶
With version 8.0.0
or later you can set up a nightly job to keep your provider data up-to-date. The visibility of the manual update button is configurable.
This feature is currently only supported with Proff, but more providers will follow.
Manually updating an existing company¶
You can update your already imported companies with the latest data from the data provider. This is done from the company object card.
Different Data Providers¶
ACD is prepared behind the scenes to be expanded with support for more data providers. It is also possible, built as a customization, to add support for a completely custom data source, for example an internal data warehouse.
Supporting Object Access¶
If there are multiple companies working in the same Lime CRM application, they can still use ACD to search for and import new companies. For example, let's consider a setup where we have two different users User A and User B, belonging to separate user groups in Lime CRM called Group A and Group B. The object access rules on the table company is set to no access for Everyone. If User A logs in and searches for Company X and adds it, a new company will be created of course. If then User B logs in and also searches for Company X, ACD will not show that it already exists in Lime CRM. If User B chooses to import that company, a completely new company object will be created, which will only be visible for users in Group B going forward.
Field Types Support¶
There are a few things to look out for when mapping between properties in Lime and the provider's API.
- It's required to pick a compatible field type in Lime. If e.g. you want to save a number from the provider, make sure to map it towards an Integer or Decimal property in Lime.
- If any of the Lime properties are mandatory they have to be included in the mapping. We generally recommend to avoid mandatory fields on the configured company limetype to avoid complications.
- Field types that aren't supported in the field mapping are: user, xml, file and any relation fields.
How to Map a Date Field¶
Date fields are only supported if the provider's response contains a compatible date string in the yyyy-MM-dd'T'HH:mm:ss'Z'
format (e.g. 2022-06-12T15:46:46Z
). Other date formats are not supported and will fail when you're trying to save a company.
How to Map an Option Field¶
ACD supports the mapping towards an option field, but only if the values from the provider align with the key names of the options in Lime. The provider response might e.g. contain a field creditRating
with possible values of A
, B
and C
. In order to map this successfully, the Lime option field has to have options with keys that are called A
, B
and C
.
How to Map a Value From a List¶
ACD doesn't support the mapping of lists (some lists are normalized, see the provider specific documentation), but you can map the first value in a list to a Lime property. Let's assume the provider response contains a list of phone numbers in the following structure:
{
"company": {
"phoneNumbers": [
{
"number": "string",
"type": "string"
}
]
}
}
In order to map the first number in the list you need to use the path company.phoneNumbers.0.number
as providerProperty
.