Adobe Sign integration with e-signature in CCPQ
  • 16 Nov 2023
  • 2 Minutes to read
  • Contributors
  • Dark
    Light

Adobe Sign integration with e-signature in CCPQ

  • Dark
    Light

Article Summary

Adobe Sign Setup

In order to use Adobe Sign with Mobileforce CPQ, the admin has to follow the steps listed below.

Adobe Sign Plan

Make sure that the customers Adobe Sign has

  1. the right plan(Teams - Acrobat Sign Solution) and
  2. access to APIs.

Adobe Sign Plan and API Access

Adobe OAuth Setup

  1. Login to Adobe Sign page https://secure.echosign.com/public/login
  2. Navigate to API->Adobe Sign API->API Application and click "+" button

Adobe Sign OAuth Setup

  1. In "Create" dialog box, enter following information:
    • "Name" -> "MobileForce"
    • "Display Name" -> "MobileForce CPQ"
    • "Domain" -> "Partner"
      Then click the "Save" button.

Adobe Sign OAuth Settings

  1. In the list view select the most recent added application(MobileForce) and click on "Configure OAuth for Application"

Configure Adobe Sign OAuth

  1. In "Config OAuth" dialog box, enter following information:
    • "Redirect URL" -> "https://apps.mobileforcesoftware.com/adlwebui/oauth_callback.php"
    • Select checkbox agreement_read, agreement_write, agreement_send, webhook_read and webhook_write scope and use "Modifier" as "self"(Default "account" will be selected).
      Then click the "Save" button

Adobe Sign OAuth Config Settings

ADL Setup

Copy and update the following prop keys:

  • cpq-signing-enabled - Set it to "1". This will enable sign feature for the CPQ.
  • adobesign-api-base-url - its value should be https://api.<domain-name - see screenshot>
  • adobesign-oauth-authurl - its value should be following url with domain name updated - https://secure.<domain-name>/public/oauth/v2
  • adobesign-oauth-accesstokenurl - its value should be following url with domain name updated - https://api.<domain-name>/oauth/v2/token
  • adobe-oauth-clientid - Update it with Application ID
  • adobe-oauth-clientsecret - Update it with Client Secret

Adobe Sign Application Id and Client Secret

    <prop key="cpq-signing-enabled">1</prop>

    <prop key="adobesign-prefix">adobesign-</prop>
    <prop key="adobesign-api-base-url">https://api.na4.adobesign.com</prop>
    <prop key="adobesign-oauth-version">2.0</prop>
    <prop key="adobesign-oauth-clientid">AABBCC</prop>
    <prop key="adobesign-oauth-clientsecret">DDEEFF</prop>
    <prop key="adobesign-oauth-scope">agreement_send:self agreement_write:self agreement_read:self webhook_write:self webhook_read:self</prop>
    <prop key="adobesign-oauth-authurl">https://secure.na4.adobesign.com/public/oauth/v2</prop>
    <prop key="adobesign-oauth-accesstokenurl">https://api.na4.adobesign.com/oauth/v2/token</prop>
    <prop key="adobesign-oauth-redirecturi">https://apps.mobileforcesoftware.com/adlwebui/oauth_callback.php</prop>
    <prop key="adobesign-oauth-accessmethod">header</prop>
    <prop key="adobesign-oauth-clientauthmethod">requestparams</prop>
    <prop key="adobesign-oauth-granttype">authorization_code</prop>

CPQ Configuration

  1. Go to "CPQ Setup" -> "Document Template" and select the document that needs Adobe Sign to be enabled.
  2. Update the following fields:
    • Enable Signature - Set it to "Yes"
    • System - "Adobe Sign"
    • Adobe Sign Agreement Json -

CPQ Setup

Adobe Sign Agreement JSON

JSON string should follow the format specified as per Adobe Sign API doc Adobe Sign Doc

{
    "fileInfos": [{
        "transientDocumentId": "${transientDocumentId}"
    }],
    "name": "Quote",
    "participantSetsInfo": [{
        "memberInfos": [{
            "email": "${contact_email}"
        }],
        "order": 1,
        "role": "SIGNER"
    }
    ],
    "signatureType": "ESIGN",
    "state": "IN_PROCESS"
}
  • ${transientDocumentId} is pre-defined field which shouldn't be modified
  • All other field ${ <field-name> } will be replaced by the quote field value

If you want to have multiple signer you need to update the "participantSetsInfo" JSON array accordingly. For eg. below JSON specified two participants.

{
    "fileInfos": [{
        "transientDocumentId": "${transientDocumentId}"
    }],
    "name": "Quote",
    "participantSetsInfo": [{
        "memberInfos": [{
            "email": "${contact_email}"
        }],
        "order": 1,
        "role": "SIGNER"
    },
    {
        "memberInfos": [{
            "email": "[email protected]"
        }],
        "order": 1,
        "role": "SIGNER"
    }
    ],
    "signatureType": "ESIGN",
    "state": "IN_PROCESS"
}

Document Template Anchor

  • You can setup the signature anchor in quote document directly. For more info see Adobe Docs

For eg.:

{{  Sig_es_:signer1:signature   }}

{{  Sig_es_:signer2:signature   }}

The above two anchor tags specified signature for signer1 and signer2. First document is send for singer1. When singer1 signs the doc will be sent to singer2.

Demo Screenshot

CPQ Setup

Demo App

account: account_name
app: mobileforce
login: [email protected]
password: pwd

For Adobe Sign login user:

email: [email protected]
password: pwd


Was this article helpful?