This topic describes the details and steps for generating the document with JSON data and sending it to a designated email address. You might use this functionality differently to generate documents depending on your business case.

Prerequisites

  • Contact your Account Executive with your 18-digit OrgID to enable the Composer API feature.
  • Refer to the Authentication section to generate the Client ID and Client Secret that will be used in the code to connect to the Conga Authorization server.

  • Configure your email integration settings

Use Case

In this use case, we use the email template created  merge the document with JSON data, convert it to PDF format, and then download it. All of these composer parameters are added to the legacyOptions tag of the merge request body, as well as a JSON payload in the jsonData tag.

Step 1: Prepare the Template 

Create an email template on Conga Platform. Carefully note the template's file ID. For more information on how to create a template and get the File ID, see the following topics:

Step 2: Retrieve Conga Authentication Token

A Conga authentication token is required when you submit a request to merge a document or check the merge request status. To get this token, pass the client ID and client secret you obtained when enabling the Salesforce org for Conga Composer API.

Call the following Composer REST API method to get the Conga authentication token.

End Pointhttps://services.congamerge.com/api/v1/auth/connect/token
Request Method

POST

Request Header
  • Content-Type: application/x-www-form-urlencoded
  • Content-Length: <calculated when request is sent>
Request Body
  • grant_type: client_credentials
  • scope: doc-gen.composer
  • client_id: <congaAuthClientId>
  • client_secret: <congaAuthClientSecret>
Response Body
{
   "access_token ":".....token value.....",
   "expires_in": 3600,
   "token_type": "Bearer",
   "scope": "doc-gen.composer"
}
CODE

Step 3: Create Merge Request and Submit

After completing the previous three steps, you can create a merge request to generate the document. The merge request contains several parameters that determine which features are included in the generated document.

In the merge API request body, you can control the behavior of document generation by including values in the legacyOptions tag, a JSON payload in the jsonData tag, and getting the template from your cloud storage provider in the TemplateSources tag.

In this use case:

  • DefaultPDF: Generate a document in PDF format.
  • OFN: Output File Name, overriding the default name of the file.

  • jsonData: Create a JSON Data body as described above in the example. 

    You must include the escape character (\) for double quotes inside the jsonData tag.

  • TemplateSources
    • IntegrationName: box (name of the cloud storage provider)
    • FileID: The location of a template file.
  • generateDocumentDownload under output must be set to true. 

    For example

    "output": {

          "generateDocumentDownload": true

    }

Call the below Composer REST API method to create a document using the Merge API service.

End Pointhttps://coreapps-rlsprod.congacloud.com/api/ingress/v1/Merge
Request Method

POST

Request Header
  • Authorization: Bearer <cogaAuthToken>
  • Content-Type: application/json
  • Content-Length: <calculated when the request is sent>
Request Body
{
  "LegacyOptions": {
    "DefaultPdf": "1",
    "OFN": "Box + Document Download Testing",
	"CongaEmailTemplateId":"c7a6d6ac-919a-4db0-9a1c-a51e735e3414",
	"EmailAdditionalTo":"falturbaqcongatest@gmail.com",
	"EmailFromId":"falturbaq@conga.com"
  },
  "JsonData": "{\"firstName\":\"John\",\"lastName\":\"Doe\",
                \"executiveSummary\":\"Below, you will find a proposal, etc. etc.\",
                \"products\":[{\"name\":\"test product\",\"quantity\":5,
                 \"price\":10,\"total\":50},{\"name\":\"Creatice Name\",
                \"quantity\":10,\"price\":20,\"total\":200}]}",
  "TemplateSources": [
        {"IntegrationName":"box", "FileId": "{{FileId}}"}
  ],
  "output": {"generateDocumentDownload": true} 
}
CODE
Response Body
{
   "correlationId": "<correlationId>",
   "status": "Accepted",
   "result": {
     "statusCode": "Success",
     "statusMessage": [
         {
             "code": "SUCC200",
             "description": "Success"
         }
     ]  
   }
}
CODE

Step 4: Check Merge Request Status

Once you send a request to generate a document, you will receive a correlationId in response. You can check the current merge status request using this correlationId.

Call the following Composer REST API service to check the merge request status.

Call this method repeatedly with a delay until the status changes from "Pending" to "Completed" or "Error."

  • correlationId: You can find the value for this parameter from the previous step to submit the merge request’s response body.
End Pointhttps://coreapps-rlsprod.congacloud.com/api/ingress/v1/status/{{CORRELATION_ID}}
Request Method

GET

Request Header

Authorization: Bearer {{cogaAuthToken}}

Response Body
{
    "statusPersistanceRecord": {
        "correlationId": "<correlationId>",
        "envelope": [
            {
                "version": "1.0.0",
                "correlationId": "<correlationId>",
                "transactionId": "<transactionId>",
                "topic": {
			--------------------------------------------------
			--------------------------------------------------              
        ],
        "message": "Completed",
        "lastUpdateTimeStamp": 638036833402666423,
        "createdDate": 638036830011162087
    }
}
CODE

Step 5: Verify Email is Generated

Check your target email address and confirm that the email and generated document have been received.