This integration is available from the Pro plan and above.

Index

Overview

Salesforce is a cloud computing service as a software (SaaS) company that specializes in customer relationship management (CRM). Salesforce services allow businesses to use cloud technology to better connect with customers, partners, and potential customers.

Salesforce consists of different clouds, e.g. Marketing Cloud, Commerce Cloud, Sales Cloud, Service Cloud. At the moment, Lokalise integrates ONLY with SFDC (Salesforce.com) covering the following use cases:

  1. Salesforce interface (e.g. Sales & Service Clouds) — this might be relevant for global sales teams (e.g. sales reps are not speaking English) and support teams. Usually companies adjust their Salesforce instance and add a lot of custom content.

  2. Knowledge Articles — this is relevant for Support & Customer Success teams who store knowledge articles inside CRM. We are pulling this data from Salesforce and allowing it to be translated into Lokalise.

  3. Community Pages — often the content of community pages is also built on Custom Labels that we are pulling. There are multiple use cases for community pages: intranet, partner portals, non-profit communities, marketing portal, etc.

Supported objects

  • Custom & Standard Objects — standard objects are objects that are included with Salesforce. Common business objects like Account, Contact, Lead, and Opportunity are all standard objects. Custom objects are objects that users create to store information that’s specific to their company or industry.

  • Custom Field (Picklist Values + Lookup filter) — each object includes fields. It could be standard or custom fields. Custom fields can have different types: text, number, picklist, etc. The integration works with the following field types: Picklist, Picklist (Multi-select), Text, Text Area.

  • Custom Labels custom text values that can be accessed from Apex classes, Visualforce pages, or Lightning components.

  • Button and Link Label — custom buttons and links are used to integrate Salesforce data with external URLs, applications, the company’s intranet, or other back-end office systems (see details).

  • Quick actions custom quick actions are used to make user navigation and workflow as smooth as possible by giving them convenient access to information that’s most important (see details here).

  • Record type — lets users offer different business processes, picklist values, and page layouts to different users. For example, the company has two sales divisions, hardware and consulting, and only the consulting division receives leads through seminars. You can choose to display the Seminar contact lead source for the consulting division only.

  • Validation Error Message the user can add custom validation error messages to any object. These messages are also one of the translatable fields.

  • Knowledge Article object with a set of fields with different types. Currently, we can pull article titles and field values with the following types: text, text area, text area (long).

Salesforce CRM

Translation workbench is used to maintain translated values for metadata and data labels in the Salesforce CRM. The workflow:

  • Activate translation workbench.

  • Add languages to translation workbench.

  • Add translations to all translatable fields.

  • Lokalise integration works through a translation workbench.

Note on Salesforce Knowledge Articles states

If you are going to use Salesforce Knowledge Articles integration, please note that we can only work with articles in draft state. Articles can have one of the following states:

  • Archived — couldn’t be updated and will be dismissed by the Lokalise integration.

  • Published:
    - With all published languages — couldn’t be updated and will be dismissed by Lokalise integration.
    - With drafts for any languages — only drafts can be updated (already published articles will be left intact).
    - With created new draft — only the draft can be updated and only draft will be shown in the integration page.

  • Draft — can be updated.

Initial setup

Creating a connected app

Before enabling Lokalise integration, you have to add a new app to your Salesforce account. To achieve that, proceed to Salesforce and then go to Setup > Apps > App Manager.

On this page click the New Connected App button and fill in the form:

  1. Add the required basic information: Connected App Name, API Name, and Contact Email.

  2. Check the Enable OAuth Settings checkbox.

  3. Add the link to the Lokalise at Callback URL field: https://app.lokalise.com/salesforce-redirect/crm for CRM and https://app.lokalise.com/salesforce-redirect/articles for articles. You can add both links to one connected app or create different apps.

  4. Select the required OAuth Scopes: Perform requests on your behalf at any time (refresh_token, offline_access) and Access and manage your data (api).

  5. Check the Require Secret for Web Server Flow checkbox.

  6. Click Save.

  7. Copy Consumer Key and Consumer Secret.

Please note that it can take up from 10 minutes to several hours for Salesforce to recognize the created application.

The user's profile must have access to the created connected app. To achieve that, proceed to Administration > Users > Profiles, find your profile, click Edit, find the Connected App Access section and tick the checkbox next to the app that you've created:

Required user licenses

  • For CRM integration users must have the Salesforce license.

  • For Articles integration users can have either Salesforce or force.com license.

To manage user license, proceed to Administration > Users > Users, find the user you would like to modify, click Edit next to the name, and select one of the elements from the User License dropdown:

Also, if you're setting up Knowledge Articles integration, you must enable Knowledge user option for your user:

Permission sets

Proceed to Administration > Users > Permissions sets and create a new set of permissions. Enter a label and an API name — you can use any values here. However, it's important to choose a proper license. One of the following licenses should work:

  • Salesforce — works for both CRM and Knowledge Articles.

  • force.com — works for Knowledge Articles only (you might not have this license).

Next, it's important to adjust the proper permissions for this newly created set. First, find System permissions:

For Knowledge Articles integration you'll need to enable the following system permissions:

  • API enabled

For CRM you'll require the following system permissions:

  • API enabled

  • Customize Application

  • Manage Translation

  • Lightning Experience User

  • Modify Data Classification

  • Modify Metadata Through Metadata API Functions

Second, for Knowledge Articles you'll have to specify App permissions:

Enable the following App permissions:

  • Article Translation - Edit

  • Article Translation - Submit for Translation

  • Manage Articles

After you have created an adjusted a new permission set, you have to assign it to a user. To achieve that, proceed to Administration > Users > Users, find a user that you would like to modify and click on his/her name (don't click Edit).

Next, click Permission set assignments:

Then, click Edit assignments:

Add a permission set that you've created and click Save:

CRM object permissions

To translate your objects on Lokalise, the integration has to be able to "see" these fields. However, only the Salesforce system administrator profile has full access to all objects. The only exception is Custom Labels content type — it doesn't require any object permissions.

While you could use system administrator to set up the integration, it is not very safe. Therefore, we recommend to specify object permissions manually. There are two ways to achieve that: by by adjusting a permission set (which is recommended) or creating a new profile.

Adjusting object permissions in a permission set

Proceed to Administration > Users > Permission sets, find the set you're interested in, open it, and then click Object settings:

Then find an object that you would like to synchronize with Lokalise, open it, click Edit, and modify its permissions. Objects require Read, Create, and Edit permissions.

Fields require Edit Access permission.

Then make sure that this permission set is assigned to the user as explained above in the Permission sets section.

Adjusting object permissions in a profile

Proceed to Administration > Users > Profiles and create a new profile based on the Standard User:

After the profile is created, scroll to the bottom and find the Standard Object Permissions section. You'll have to adjust permissions for the objects that you would like to synchronize with Lokalise:

Objects require Read, Create, and Edit permissions. Fields require Edit Access permission.

Also make sure to grant access to your connected app. To achieve that, open your profile, click Edit, find the Connected App Access section and tick the checkbox next to the app that you've created:

After you're done with setting profile permissions, you'll need to assign this profile to your user. To achieve that, proceed to Administration > Users > Users, find a user you're interested in, and click Edit. Find the Profile setting and choose your newly created profile from the dropdown:

Please note that if the user license is not set to Salesforce, you'll not be able to choose your newly created profile because it was assigned a Salesforce license, and the licenses must match for the user and his/her profile.

Adding translation languages

To add languages for Salesforce CRM, proceed to User Interface > Translation Workbench > Translation Language Settings. Here you will see all currently added languages as well as the Add button to create new ones.

To add languages for Knowledge Articles, proceed to Knowledge settings and choose one or more languages from the list:

Connecting Lokalise to Salesforce

Open your Lokalise project, click More > Integrations and then find Salesforce CRM or Salesforce Knowledge Articles in the list of integrations. Click Connect and then Connect again. Insert consumer key and secret obtained earlier, choose the Salesforce environment (production or sandbox), and then authorize the app.

Using the integration

Salesforce CRM

After authorizing the application, you will see the following screen:

It lists all the items that you can import to Lokalise and translate as usual. Choose one or more items and then click Import selected. Then decide what languages you would like to import (all missing languages will be created in your Lokalise project automatically):

If the Overwrite updated translations checkbox is checked, then all previously downloaded translations keys will be updated using data from Salesforce.

The import process will be performed in the background, and its status can be checked on the Activity page.

Note that you can find a specific item using the search box in the top right corner, or narrow the scope by using the Filter dropdown:

Once the import is completed you can return to the project editor and perform translations as usual. To upload translations back to Salesforce, open the Salesforce CRM integration page again and choose one or more items. Then click Export selected.

Choose the languages to export and click Ok.

Salesforce Knowledge Articles

After authorizing the application, you will see the following screen:

It lists all the items that you can import to Lokalise and translate as usual. Choose one or more items and then click Import selected. Then decide what languages you would like to import (all missing languages will be created in your Lokalise project automatically):

If the Overwrite updated translations checkbox is checked, then all previously downloaded translations keys will be updated using data from Salesforce.

The import process will be performed in the background, and its status can be checked on the Activity page.

Note that you can find a specific item using the search box in the top right corner, or narrow the scope by using the Filter dropdown:

To upload translations back to Salesforce, open the Salesforce Knowledge Articles integration page again and choose one or more items. Then click Export selected.

Choose the languages to export and click Ok.

Did this answer your question?