Forums | Back to Concur Developer Center

Need help with oneway Concur to Salesforce integration


#1

Hi,

A client of ours is using Concur for processing their Expense reports. They want to create custom object records in Salesforce when Expense record is ‘Approved’ in Concur. As a Salesforce developer I’m trying to create a API in Salesforce to which a event notification has to be sent from Concur.

Can someone with the past experience of integrating Concur with Salesforce

  • Provide a detailed steps of configuration in Concur
  • Provide a sample XML/JSON request that will be sent upon the expense approval, based on which I can build the API in salesforce

Appreciate your help.

Thanks!


#2

Hi Karan,

While at Concur, I was the principal designer for many of the APIs, including all the ones for Concur Expense. The one most relevant to your project is the “Event Notification” API. This is a “callout” API, in that Concur acts as the HTTP client, which makes an HTTP POST to an HTTP server you specify.

The idea of this API is when an expense reports reaches the “Pre-Extraction” workflow step, which means the expense report is “approved”, it will make an HTTP POST notifying you of this event. The information in the request body allows you in turn to take action including querying for details about this expense report.

As far as configuration, you must create a configuration called an “application connector”, which provides the metadata Concur needs to be able to make the HTTP POST. Essentially, the URL and authentication credentials for the HTTP server Concur will call.

You can read about the Event Notification callout here, https://developer.concur.com/api-reference/callouts/post-event-notification.html.

This includes a sample XML for the request body.

Also, you should read the overview of callouts and application connectors here, https://developer.concur.com/api-reference/callouts/callouts-application-connectors.html.

This prescribes how to configure an application connector.

Hope that gets you started.

Best regards,
John Toman
Chief Product Officer, Pivot Payables, Inc.


#4

Thanks John for your reply.

Our client is planning to use their Concur’s production org to do the development and testing (as we are not writing any data into Concur) and to keep the implementation cost low. I’m assuming I would need the clientId and clientSecret (for authorization) of their production org which I’m unable to locate when I login to their Concur tool. Can you please let me know where do I find this or do I have to ask them for the ‘clientId’ and the ‘clientSecret’ to ‘GET’ the full details of the approved Expense record when an event notification is sent to the API.


#5

Hi Karan,

Yes, you will need to get the clientid and clientsecret to be able to get the OAuth access token you need to make API calls to Concur. These are properties of a configuration called a “Partner Application”.

Here is the documentation on how to do this,
https://developer.concur.com/manage-apps/partner-applications.html

Note that these instructions are from the perspective of a developer creating a “public” application that will appear in the Concur App Center, and will be used by many Concur customers. Here, Concur creates the Partner Application, and provides the values for its clientid and clientsecret.

It doesn’t describe from the perspective of a developer like yourself, who is creating a “private” application to be used by one, specific Concur customer (i.e., your client). Your client will need to purchase the “Web Services” offering from Concur. Part of purchasing this service is being able to create a private, Partner Application. Creating a Partner Application is how you get the clientid and clientsecret you need.


#6

Hi John,

Has anyone been able to deliver the above, that is from Concur to Salesforce via the Event Notification API?

Only basic authentication is available so I don’t see how this is a viable option.

Looks like a SOAP request so an apex class method would need to be exposed as a web service but how would the wsdl doc be consumed? How would the headers and elements be set to assign the response body?

Any help would be great?


#7

Thanks for sharing the Requirement In Past i have integrate Concur in salesforce…