INTERNET APPLICATION DEVELOPMENT
MID MARKET ERP DEVELOPMENT
by Hrayr Galoyan
I recently worked on integrating Intacct with Salesforce. There is an existing integration package, and the manual that comes with it is pretty good. However, I faced several issues that the manual did not cover, and most were related to Salesforce functionality. This was my first time integrating Intacct and Salesforce. Fortunately, Salesforce has an outstanding support team; their response time was close to immediate, and they helped me through the issues.
Linking Intacct and Salesforce Users
It wasn’t clear to me from the documentation whether the same Intacct CRM user can be repurposed for multiple Salesforce users, so I decided to try. And the answer is No, each Salesforce user needs a separate CRM user in Intacct. Not only that, but the “Salesforce.com user key” value must be unique for each CRM user.
Object Permissions in Salesforce
When “Intacct Max for Salesforce MCP” is installed in Salesforce, it creates multiple new objects that are used to exchange data with Intacct. The documentation mentioned that only the admin users need to have access to those objects, but I found that it didn’t work for me. I added the new fields, buttons, and lists to accounts and opportunities, and everything worked as long as I was the user. For other users, the buttons were visible, but didn’t do anything. The new fields and lists did not appear at all.
Other users didn’t have permission to use the new objects. There may be multiple ways to configure security in Salesforce, but in this instance, it was controlled through profiles. For lists, like list of orders and invoices, the security is controlled on the object level. There is also a field-level security; it seems it only affects the Intacct Customer ID field on the Account.
To modify the object-level permissions, click on the Setup link (typically at the top of the screen) to get to the administrative area, and then choose Manage Users -> Profiles.
Select the profile to which you want to give access. In my case, it was the profile “Level 1.” Then click on Object Settings.
Select an object, for example, “Sales Invoices.”
I chose to give read-only access to this object to all users. The object is populated by Intacct Salesforce integration, so there is no need for users to edit it. However, they do need at least read-only access to be able to see the list of invoices related to an opportunity. Similarly, you need to give permissions to all other related objects, like “Sales Invoice Items,” “Sales Orders,” etc. You need to give permissions to the object, as well as individual fields.
Similarly, you need to grant permissions to the Intacct Customer ID field, which is defined in the Accounts object.
Some users will need both Read and Edit permissions to this field, while others may only need to be able to view it.
Multiple Page Layouts
Each object in Salesforce may have multiple page layouts created for it. I believe page layouts can be assigned to individual users, but in this particular implementation, they varied by record type. Here is how Account object is defined:
Notice that depending on record type (account type), a different page layout is used. That means that multiple page layouts needed to be customized in order for Intacct related fields and buttons to be available for all account types.
Thanks, Hrayr. This will be very helpful info in the future.