Debug Report

A debug report can be generated for jobs to test a job's configuration before actually delivering the content.

Generating a Debug Report

A debug report can be generated by running a debug job. This can be done by opening the run job options and selecting "Run Debug".

This will start a new transaction for the job. Once the transaction is finished the Debug Report can be viewed.

Generating a debug report will leave it in storage for the organization until deleted. We suggest deleting debug reports once they are no longer needed to be stored in ImpulseSync storage so as not to incur unexpected costs.

Pipeline Debug Job

A pipeline can also generate debug reports for jobs.

When editing a pipeline, each job can be set to run in debug and generate a debug report for that job.

You can tell which jobs will run in debug mode if the bug icon is filled in.

In the above example, the article -> article job will be run in debug while the other two jobs will not.

To set which jobs in a pipeline should generate a debug report, simple press the bug icon and the debug option will be toggled. (If the debug option is set, pressing the bug icon will remove the debug option, leaving the job to run normally. And vice versa.)

When the pipeline runs, it will run as normal. With the exception that any job with the debug option set, will run in debug mode with the appropriate rules of a debug transaction.

When the start transaction options for a job are configured, the job will automatically remove the debug option. Be sure to check that the debug option is set appropriately after setting start transaction options for a job.

Rules of Debug transaction

There are a few rules to a debug transaction.

  1. A debug transaction will limit the amount of content picked up from each system to 1.

  2. A debug transaction will not deliver content. It will run all the steps like a normal transaction except it will not deliver the content to the system.

Viewing a Debug Report

A debug report can be downloaded and viewed by going to the reports page. Find the transaction that was run with the debug option and open the "action" menu and press "Download Debug Report"

This will then download the debug report in a JSON file. This file can then be viewed with your preferred JSON viewer.

Note: if the debug report does not exist (or couldn't be downloaded) for a transaction, a notification will appear stating that the report does not exist.

Reading a Debug Report

The debug report has 5 attributes in the root JSON object.

  1. transactionId

    • The transaction ID that generated the report

  2. originalContent

    • The content as Motation after being picked up from the source system

  3. manipulators

    • The content as Motation after each manipulator has been run

  4. contentMapping

    • The content as Motation after the content mapper (including field locking) before being delivered to the destination system

  5. advanced

    • Additional details for advanced users of the system and Motiv support

The Content Object

The originalContent, manipulators, and contentMapping attributes all share a common JSON object which will be referred to as a "content" object.

A content object has the following JSON structure.

{
 "totalTime": <time of the step in milliseconds>
 "contentId": <id of the content>
 "language": <id of the language for the content> 
 "fields": [
   {
    "fieldId": <field id/unique name of the field>
    "fieldType": <Motation field type of the field>
    "fieldValue": [
     "binary": <binary values of the field>
     "order": <order of the value>
     "relations": <relationship values of the field>
     "value": <value of the field>
    ]
   }
 ]
}

This content object can be copied and pasted into the liquid template playground to test liquid templates against the values from the content object.

Original Content

The originalContent attribute is the content after it was picked up from the source system and transformed into Motation. The value of this attribute is an array of content objects. Often each content object is a different language of the content.

All manipulators and content mapping will happen after the original content.

Manipulators

The manipulators attribute is the content object after each manipulator runs. The value of this attribute is an array of JSON objects with an attribute which is the name of the manipulator and the order it was run compared all other manipulators. Each manipulator then has an inner JSON object with the attribute "content" which is an array of content objects.

An example of the format for this JSON can be seen below.

 {
  "manipulators": [
   {
    "Liquid-Field-Manipulator-1": {
     "content": [
      { 
       <content object attributes> 
      }
     ]
    }
   }
  ]
 }

The manipulators are listed in the order that they ran during the transaction.

If a manipulator adjusted folders, then the changes to the folders will be seen in the attribute "folder" rather than "content".

Content Mapping

The contentMapping attribute is the content object after the content mapper has run. This includes any locked fields as well as mapped fields. The value of this attribute is an array of content objects.

Advanced

The advanced attribute can often be ignored and is for users with a deep understanding of ImpulseSync or Motiv support. This attribute will contain additional data that can prove useful in select cases where a view of the definition for the content is required.

Deleting Debug Reports

Debug reports can be deleted from storage by going to the reports page, scrolling to the bottom of the page, and pressing the "Delete All Debug Reports" button.

This will then open a confirmation modal to confirm you want to delete all debug reports. To continue with the deletion process, press the new "Delete All Debug Reports" button.

This will then close the confirmation modal and start the deletion process for all debug reports.

Last updated