Transactions
In this section, we explore the concept of a transaction within Quickwork, providing clarity on its lifecycle and the common states a transaction can undergo.
✅ Pre-requisites
- Basic understanding of Quickwork terminologies and familiarity with Quickwork's GUI.
- Experience in creating and executing a journey, ensuring that you can manage the journey effectively from start to finish.
What is a transaction?
A single transaction represents the entire end-to-end flow of a journey. A transaction occurs every time a journey is triggered, irrespective of the outcome (Succeeded, Pending, or Failed) or the number of steps involved. Each activation of the journey, regardless of its complexity, duration, or the number of steps counts as a single transaction.
Consider a journey where customer feedback entered into a Google Sheets spreadsheet automatically triggers the creation of a support ticket in Freshdesk. This process includes capturing feedback details in the spreadsheet, mapping these details to corresponding fields in Freshdesk, and creating the ticket.
The entire sequence, from logging the feedback in Google Sheets to creating the ticket in Freshdesk, constitutes one complete transaction. Here's a look at how a transaction looks in this scenario. There are three transactions listed here, with two marked as Succeeded and one as Failed.

Transaction states
- The History tab of a journey details the transaction history.
- The transaction details for a journey that is triggered when a new row is added to a Google Sheets spreadsheet, leading to the creation of a new ticket in Freshdesk is as follows:
-
Status: This column displays the outcome of each transaction. It shows Initializing for journeys that has been triggered and is in the process of execution, Succeeded for transactions that were completed successfully, Failure for one that did not complete as expected, and Pending for transactions that are still in progress.
A journey may be in a Pending state during execution due to multiple steps that require time to complete. Here are common reasons a journey remains pending:
- Complex calculations or large data volumes that need processing.
- Delays in responses from external APIs, such as ticket creation in Freshdesk.
- Waiting for specific conditions to be met in decision-making processes.
- Waiting due to custom delay action in Scheduler by Quickwork app.
- If there is any step of type Ask a question, and the transaction is waiting for the user's answer or his input.
These factors can keep a journey Pending until all necessary operations are finalized, which will eventually resolve into either Succeeded or Failed.
-
Repeated: The Repeated status in the transaction report is triggered when the Rerun button is clicked, indicating a re-execution of the journey. This allows you to identify when the transaction has been processed multiple times under the same conditions. In this case, all entries show No, indicating that each transaction was a unique trigger event.
-
Description: This column provides a brief description of the transaction and is auto-generated.
-
Time: The time column logs the exact time each transaction was processed, that can help in tracking and auditing the journey's activities.
-
Transaction report
Clicking on a transaction, will open the Transaction Report , providing a detailed account of your journey.

❓ Troubleshooting
- Transactions stuck in pending state:
- Verify if there are delays or errors in responses from external APIs.
- Ensure that your systems are equipped to handle complex calculations and large data volumes.
- Check the conditions in your decision-making processes. Make sure they are set correctly and not causing unnecessary delays.
- Failed transaction with error messages and potential fixes:
- Error messages: Unauthenticated, Token expired, Token revoked, 401, Failed to refresh token.
Solutions:
- This type of error usually comes when the connection is no longer valid and requires re-connecting the connection from the Connections tab in the journey for the app where the error came from.
- If the connection uses API key, check if the API is expired, revoked or if any permissions have been changed
- Error messages: Unauthorized, Permission denied, Forbidden, 403.
Solutions:
- Check if the user has sufficient roles and permissions granted in the system.
- Contact the admin of the system for permissions or role related issues.
- Error messages: ETIMEOUT, Service unavailable, 504.
Solutions:
- The external API of the system did not respond in time or the external system is under maintenance.
- To handle such errors a Try-catch block should be used to catch such error messages and handle the journey flow according to the business requirement.
- You can use a delay of a few minutes with the Scheduler by Quickwork app's action in the catch block and re-try the actions once again after some time.
- Error message: Rate limit exceeded, Too many requests, 429.
Solutions:
- This indicates that the number of requests to the external system is sent more than the allowed limit or allotted quota.
- This can be solved if there is an option to increase the limit or quota of allowed requests. You can also use the Provisioned Concurrency setting in the journey to match the desired throughput and not exceed the allowed request limits.
- Error message: Value required for field X, Missing required field value, Bad request, Max characters reached for field X, Unknown field, 400.
Solutions:
- These error messages come when the validation of the action input is failed by an external system. Please ensure that all the values are passed for all the mandatory fields and that the values are within the field restrictions.
- Refresh the fields of the actions by clicking Refresh button to update to the latest fields as present in the external system.
- If any data pills are used for any values, make sure they are coming correctly from the above steps.
- Error message: Cannot read property of undefined or null, invalid character, unexpected character.
Solutions:
- These errors come where there is a Formula mode used for any action input.
- Make sure the entered formula or code is tested on your system once.
- The written code in formula mode does not use any third-party dependencies and does not use any undeclared or unavailable variables.
- Make sure you have handled scenarios where you are not calling any method on null or undefined data pill values from the above steps.
- If the app is NodeJS, make sure that you have turned off the Formula mode for the Code field. The string type datapill values in the Code input field are enclosed in single or double quotes. If you are facing challenges in escaping the values in string literals, please use the Context Key-Value pairs in Nodejs action to pass the values of data pills.
- Error messages: Unauthenticated, Token expired, Token revoked, 401, Failed to refresh token.
Solutions:
✏️ Tips and recommendations
- Check automated alerts via emails that notify you when a transaction fails.
📚 Additional resources
Triggers to initiate journeys
Configuring actions
Establishing connections
Building your first journey
Journey history
Try-catch error handling
Updated 5 days ago