ImpulseSync™ User Manual
HomePricingContact Us
  • Introduction
    • What is Impulse?
  • Crash Course of ImpulseSync
    • Overview Of ImpulseSync
    • Step 1: Endpoints
      • Endpoint Configuration
    • Step 2: Jobs
      • Job Configuration
      • Step 2a: Content manipulators
      • Step 2b: Content mapper
    • Step 3: Syncing
  • Getting Started
    • Core Concepts
    • Creating Endpoints
    • Creating Jobs
    • Starting a Transaction
    • Transaction Reports
    • Automating Jobs with Pipelines
    • Scripting Post Sync
    • Scheduling Jobs and Pipelines
    • Dashboard
    • Managing Jobs/Pipelines
    • Content Mapper
      • Aligning Mismatched Content
      • Connector Matrix
      • Locked Fields
      • Content Aligner
      • Aligning Content Challenges
  • Reports
    • Reports Screen
    • Debug Report
    • Messages
  • Connectors
    • Common Job Options
    • All Connectors List
    • Source Connectors
      • Contentful
      • Contentstack
      • dotCMS
      • Drupal v7
      • Drupal v9
      • GitHub
      • GraphQL
      • MS Teams
      • SCP
      • Snapshot
      • Strapi v3
      • Strapi v4
    • Destination Connectors
      • Contentful
      • Contentstack
      • dotCMS
      • SCP
      • Strapi v3
      • Strapi v4
  • Content Manipulators
    • Common Manipulator Options
    • Add Replace Field
    • AI(Artificial intelligence)
    • Change ID Manipulator
    • CSV Store Manipulator
    • Dynamic Job Store Manipulator
    • File to Text
    • Folder Manipulator
    • Get and Set Field
    • Language
    • Liquid Field
      • Liquid On the Quick
      • Basics
        • Impulse Values
        • Impulse Variables
        • Operators
        • Truthy and falsy
        • Types
        • Whitespace control
      • Tags
        • Control flow
        • Impulse Content Objects
        • Iteration
        • Utility
        • Variable
      • Filters
        • abs
        • append
        • capitalize
        • ceil
        • compact
        • concat
        • date
        • date_str
        • default
        • divided_by
        • downcase
        • escape
        • escape_once
        • first
        • floor
        • getStoredValue
        • htmlQuery
        • htmlReplace
        • idMap
        • join
        • jq
        • json
        • last
        • lstrip
        • map
        • minus
        • modulo
        • newline_to_br
        • plus
        • prepend
        • remove
        • remove_first
        • replace
        • replace_first
        • reverse
        • round
        • rstrip
        • section
        • sections
        • size
        • slice
        • sort
        • sort_natural
        • split
        • str_to_date
        • strip
        • strip_html
        • strip_newlines
        • times
        • truncate
        • truncatewords
        • type
        • uniq
        • upcase
        • utl_decode
        • url_encode
      • Liquid Playground
    • Markdown
    • Regex
    • Relationship
    • Store Field
    • Tidy
  • Time Machine
    • Snapshot
    • Viewing Snapshots
    • Delivery from Snapshots
  • Cookbook Recipes
    • Adding Fields
    • Aligning Content between Endpoints
    • Avoid overriding Fields
    • Avoid syncing Content Types
    • Combing Fields
    • Default Field Value
    • File (.doc) to Structured Content
    • File (.docx) to Structured Content - Expanded
    • HTML to Structured Content
    • Language (Locale) mismatch between endpoints
    • Paths/IDs Changed
    • Reference to Value
    • Single Content Type to Multiple
    • Splitting Content with Reference
    • Syncing Content with Languages
    • Text Select to Boolean
    • Text to Reference
    • Text to Reference - liquid
    • Two Sources to One Destination
    • Changing a folder path
    • Combining data between content types
    • Converting HTML Sections
    • JSON object to reference
    • Use CSV to convert values
    • Storing fields with Store field motator
  • Troubleshooting
    • What to do if I run into a Job Problem
    • Troubleshooting via UI
    • Submitting a ticket
  • Using Impulse Headlessly
    • Getting Started with cURL
      • Creating Endpoints
      • Creating Jobs
      • Starting a Transaction
      • Transaction Reports
      • Automating Jobs with Pipelines
      • Scheduling Jobs and Pipelines
      • Aligning Mismatched Content
      • Scripting Post Sync
  • Organization Tier Restrictions
  • Content Storage Options
Powered by GitBook
On this page
  • Finding a Transaction
  • Transaction Report
  • Diff Report
  • Kal-El
  • Diffinator
  • Heartbeats
  • Heartbeats
  • Pulses
  • Running Heartbeats
  1. Using Impulse Headlessly
  2. Getting Started with cURL

Transaction Reports

PreviousStarting a TransactionNextAutomating Jobs with Pipelines

Last updated 2 years ago

Finding a Transaction

If you do not have the transaction ID for a transaction you can find a transaction using various .

You can use the or to get the list of transactions that are either currently running and active or finished and inactive.

curl --request GET '{{impulse-protocol}}://{{impulse-domain}}:{{impulse-port}}/private/sync-manager/activeTransactions'
curl --request GET '{{impulse-protocol}}://{{impulse-domain}}:{{impulse-port}}/private/sync-manager/inactiveTransactions'

Transaction Report

You can get reports for multiple transactions by calling the . This will return multiple transactions based on the parameters set. If you want to view a report for a specific transaction you should find the start time of the transaction and set it as part of the parameters.

curl --request GET '{{impulse-protocol}}://{{impulse-domain}}:{{impulse-port}}/private/sync-manager/report?start={{startTime}}&end={{endTime}}&limit=100&detailLimit=100'

This will show the details of the transaction and any additional details in the report.

Note:

  • When using time ranges across days, you will need to use multiple requests. At least 1 request per day.

  • Depending on the amount of content being synced or the number of syncs happening, there could be a large amount of data to be queried. You may want to make use of the limits or a smaller time range. Otherwise the request could be incredibly large.

You can also get details for a specific transaction by using the .

curl --request GET '{{impulse-protocol}}://{{impulse-domain}}:{{impulse-port}}/private/sync-manager/transactions/{{transaction-id}}'

This will show the details of the transaction as well additional information for the transaction.

Diff Report

Kal-El

Getting the Endpoints

curl --request GET '{{impulse-protocol}}://{{impulse-domain}}:{{impulse-port}}/private/kal-el/diff/{{transaction-id}}'

This will return all the endpoints related to the transaction that can be used to find a diff.

Building the Diff

curl --request GET '{{impulse-protocol}}://{{impulse-domain}}:{{impulse-port}}/private/kal-el/diff/{{transaction-id}}/{{endpoint1Id}}/{{endpoint2Id}}'

The response is based as endpoint1Id as the "left" of the diff and endpoint2Id as the "right" of the diff.

The response will include an array of diffs for the transaction. Each diff will have a few pieces of information.

  • Content ids from both endpoints

  • The motation id for the old content and what it updated to

  • The first field for the content

  • The diff type

There is also the total number of diffs for the transaction.

This will give you a general sense of what content is new, or updated. As well as what content is missing from endpoint 1.

Diffinator

Diffs are built using data stored in motation. The diffinator stores it's diff data into diesel. The diffinator builds a diff based on the value of fields. Meaning the name of a field is not diffed.

List Diff Fields

curl --request GET '{{impulse-protocol}}://{{impulse-domain}}:{{impulse-port}}/private/diffinator/diff/{{motation1Id}}/{{motation2Id}}'

The response is based as motation1Id as the "left" of the diff and motation2Id as the "right" of the diff.

The response will list all the fields with a diff that can be used in the next API. These fields can be used in the next API call.

Get Field Diff

This endpoint will only work after the previous step has been performed. As such, these motation IDs should be the same as used in the above API. The field is gotten from the above API call's response.

curl --request GET '{{impulse-protocol}}://{{impulse-domain}}:{{impulse-port}}/private/diffinator/diff/{{motation1Id}}/{{motation2Id}}/{{field}}'

The response will return the differences between the two contents for the specific field. It will look akin to this.

-sync1
+sync1 - updated

Heartbeats

With a transaction ID you can get the heartbeats of the transaction to see more details on where the transaction is in the sync process.

Heartbeats

You can use time stamps to filter what heartbeats to view as well as how many to view.

curl --request GET '{{impulse-protocol}}://{{impulse-domain}}:{{impulse-port}}/private/sync-manager/transactions/{{transactionId}}/heartbeats?start={{startTime}}&end={{endTime}}&limit={{limit}}'

Pulses

You can use time stamps to filter what pulses to view as well as how many to view.

curl --request GET '{{impulse-protocol}}://{{impulse-domain}}:{{impulse-port}}/private/sync-manager/transactions/{{transactionId}}/heartbeats/pulses?start={{startTime}}&end={{endTime}}&limit={{limit}}'

Running Heartbeats

You can use time stamps to filter what heartbeats to view as well as how many to view.

curl --request GET '{{impulse-protocol}}://{{impulse-domain}}:{{impulse-port}}/private/sync-manager/transactions/aee621f7-e68b-11ec-b2dd-0242ac190013/heartbeats/running?start={{startTime}}&end={{endTime}}&limit={{limit}}'

To get a diff report you will need to use both the and API.

A diff report can only be gotten if the transaction is finished. You can use the to check if the transaction is active or not before attempting to get a diff report.

To get a diff report you first need to call the to find the endpoints involved with the diff report.

Once you know the endpoints that can be diffed for a transaction, you can use the to build the diff report of content.

To get the actual diff of the content fields you need to use the . You will need to perform the steps in "List Diff Fields" before the steps in "Get Field Diff".

To know what fields have a diff you can use the diffinator's . This will return a list of fields that have a diff.

The motation IDs can be gotten from the response of the kal-el above.

To view the actual diff of a field's content, you can use the diffinator's . This will return the diff of the fields prepended with either a '-' or '+' for removed or added data.

To view the heartbeats of a transaction use sync-manager's .

To view the pulses from other services for a transaction use sync-manager's .

To view the currently running heartbeats for a transaction use sync-manager's .

sync-manager endpoints
/activeTransactions
/inactiveTransactions
/report
/transactions/{{transaction-id}} endpoint
kal-el
diffinator
/transactions/{{transaction-id}} endpoint
/diff/{{transaction-id}} endpoint
/diff/{{transaction-id}}/{{endpoint1Id}}/{{endpoint2Id}} endpoint
diffinator API
/diff/{{motation1Id}}/{{motation2Id}} endpoint
/diff/{{transaction-id}}/{{endpoint1Id}}/{{endpoint2Id}} endpoint
/diff/{{motation1Id}}/{{motation2Id}}/{{field}} endpoint
/transactions/{{transactionId}}/heartbeats endpoint
/transactions/{{transactionId}}/heartbeats/pulses endpoint
/transactions/{{transactionId}}/heartbeats/running endpoint