PM Connector into Salesforce - Quick Guide

  1. Configure Salesforce

    1. From Salesforce Admin: Setup → Platform Tools → Apps → Connected Apps → Manage Connected Apps. Create a New Connected App 'ProcessMaker Demo'

    2. Take note of Consumer Key and Consumer Secret at API (Enable OAUTH Settings)

    3. Edit Callback URL with that of PM instance making the calls (i.e. https://poc32.processmaker.com/plugin/pmConnectors/oauth/callback.php)


  2. Configure ProcessMaker

    1. From PM Admin: PM Connectors → Authentication Configuration. Create New Configuration 'Salesforce'
      1. Procotol: Oauth2
      2. Sub-protocol: Authorization Code
      3. authorizationUri: https://na50.salesforce.com/services/oauth2/authorize (replace with actual SF instance)
      4. tokenCredentialUri: https://na50.salesforce.com/services/oauth2/token  (replace with actual SF instance) 
      5. redirectUri: must be exact as SF Callback URL above 1.c
      6. cliendId and clientSecret, as provided by SF Connected App above 1.b
      7. All other fields as default
      8. Get Access Token: Press to get token before connecting. This token expires fairly quickly. Must revise/renew prior to each demo session.
    2. From PM Admin: PM Connectors → Services. Create New Service 'Salesforce' with Authentication Configuration Salesforce created above 2.a.
    3. From PM Admin: PM Connectors → Connectors. Create Connectors as needed:
      1. Method: GET
      2. URL: 

        https://na50.salesforce.com/services/data/v20.0/query/?q=SELECT+Name,Phone,Email,Title,SuiteCreated__c,SuiteUser__c,AccountId+from+Contact+WHERE+id+=+'{SFcontactId}'
        1. This example URL call uses SF API v20.0 to request various Contact fields using a Path Parameter Variable SFcontactId
        2. The expected query string follows SF SOQL formatting. Full reference here: https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_query.htm

  3. In-Process Use

    1. Save Parameter variables in @@ Vars as needed.
    2. Call the Connectors with Service Tasks. Feed the Path Parameters with the appropriate Vars.
    3. Define the Response Mapping as Variables. 
      1. @@returnMessage : message→records
      2. @@code : code
    4. Capture the response messages after the Service Task, as Array values within a Trigger (create as type Object).  For the example SOQL above:
      1. @@returnName = @&returnMessage[0]->Name;
        @@returnTitle = @&returnMessage[0]->Title;
        @@returnEmail = @&returnMessage[0]->Email;
        @@returnPhone = @&returnMessage[0]->Phone;
        @@returnOwner = @&returnMessage[0]->SuiteUser__c;
        @@returnDate = @&returnMessage[0]->SuiteCreated__c;
        @@returnAccountId = @&returnMessage[0]->AccountId;