Axiom Structure

When exporting an Axiom.ai automation, you will receive a JSON file containing the inner workings of your automation. This allows you to share your automation with our support team, with a colleague or with another person that you are working on a project with. A lot of this file is purely for Axiom.ai to process your automation, but it's still interesting to know what it does! We have omitted some fields from the JSON as they are related to features no longer in use, features that are only used for the operation of the extension, or features that may not be of interest.

You can think of your exported automation as a "snapshot" of your automations current state, including variables related to the steps, errors and any settings that you have set up within your automation.

🚨 We do not recommend that you edit your automation through this JSON file

# Identifiers


Reviewing the first few values in the JSON, we can see the following fields:

"id": 938717,
"name": "Send to Supabase",
"templateId": 0,
"triggers": [ ... ]
Key Description
id This is the ID of the automation
templateId If you created your automation from a template, the ID will be stored
triggers Any triggers you have set up, i.e. schedules

If you have a schedule set up, you'll see the following inside the triggers key:

{
  "id": 10126,
  "interval_type": "seconds",
  "name": "",
  "starting_time": "2025-02-26 16:26:23+00",
  "status": "ready",
  "time_criteria": 86400,
  "type": "schedule"
}
Key Description
id The ID of the schedule
interval_type The interval setting, this is always in seconds.
starting_time The time you set the schedule to start.
time_criteria The seconds between intervals, i.e. 86400 - 1 day
type The type of trigger

# Data


The data key is where all the magic happens, this contains all of the data about the steps that you have inserted into the automation that makes it run. You will see the following object sitting in your data key:

"builderTemplateId": 0,
"context": [{ "context": "url", "url": "" }],
"continueOnError": true,
"disablePageChangeMonitoring": true,
"executablePath": "...",
"extensionToLoad": "...",
"form": [ ... ]
Key Description Default Docs
continueOnError Continue after the automation runs into an error. false Docs
disablePageChangeMonitoring Disable page change monitoring. false/off Docs
executablePath The path to your local installation of Chrome. null Docs
extensionToLoad The path to any extensions you wish to load. null Docs
form See Step data .

# Step data


Step data is found in the form key, you'll find an array of objects containing information about your steps, for example:

{
    "description": "Instruct the bot to go to a new page.",
    "hasErrors": false,
    "index": 0,
    "machine_name": "WidgetDriverGoto",
    "metadata": "",
    "name": "google.com",
    "original_name": "Go to page",
    "params": [ ... ],
    "stepNumber": "1",
    "token": ""
}
Key Description
description This contains the description of the automation 1.
machine_name This is out backend name for the step.
metadata This is used for the step finder, they're additional terms you can use to find the step.
name This is the name of the automation, customisable.
original_name The "official" name for the step without any customisations.
params See Params
stepNumber The order that the step in your automation.
token If the step outputs a data token, it'll be found here (without the data).

1We include the description to ensure older versions of the steps do not get confusing when they're updated - keeping them in use.

# Params


As mentioned, the params key holds data on all of the parameters that you see within your step. It also holds the value of the parameter that you have entered. Let's dive into one of the parameters for the Read data from a Google Sheet step.

{
  "collapsible": 0,
  "configurable": true,
  "default_value": "",
  "description": ["Select a google sheet to read from, or paste its URL here."],
  "help": [],
  "image": "",
  "name": "Spreadsheet",
  "sheetName": "Your Google Sheet",
  "type": "spreadsheet_picker",
  "value": "..."
}
Key Description
default_value If the step has a default value, it'll show here.
description The description of the parameter 2.
name The name of the parameter, this helps with identifying it.
sheetName The name of the Google Sheet being used in the automation.
type The type of parameter it is. A "spreadsheet_picker" in the above example.
value The value that you have input into the parameter.

2We include the description to ensure older versions of the steps do not get confusing when they're updated - keeping them in use.

Each parameters may have piece of data that are specific to the parameter, or the step, that you are reviewing. The above example is just a single parameter. Most steps will have multiple parameters to allow for the customisation of the step.

# Automation options


Finally, we come to the options that you can set within your automation's settings panel. These options are all stored within you automation. Head into "Settings" within your automation to change any of these settings.

"headless": false,
"iframesAllowed": true,
"incognitoMode": true,
"injector": { "injector": "dom", "magic_btn_status": true, "selector": "" },
"maximumRuntime": 600,
"mode": "browser",
"notifications": { ... },
"proxyAuth": null,
"storeCookies": true,
"templateId": 0,
"templateItem": null,
"templateMode": false,
"templateStarted": false,
"tokens": null,
"useLocalTimezone": true,
"userDataDir": "...",
"viewport": null
Key Description Default Docs
headless If the browser will run in headless mode. false/off Docs
iframesAllowed If the selector tool will interact with iframes. false/off Docs
incognitoMode If the automation will run in incognito mode. false/off Docs
maximumRuntime The maximum amount of runtime an automation can use, in seconds. 720 Docs
notifications See Notifications null Docs
proxyAuth If you have a proxy set up, details will be included. null Docs
storeCookies If the automation will use stored cookies. null Docs
templateId The ID of the template used to create the automation. 0
useLocalTimezone If the automation should use your local timezone for scheduling. false/off Docs
userDataDir If you have a custom Chrome profile set, the path will be shown here. null Docs

# Notifications


When you set notifications for your automations, you'll find the settings in the notifications key. For example:

{
  "emailAddress": "...",
  "emailOn": true,
  "onFailure": true,
  "onSuccess": false,
  "webhookOn": false,
  "webhookPayload": "",
  "webhookURL": ""
}
Key Description
emailAddress The email address(es) you've entered for email notifications
emailOn If email notifications are enabled
onFailure If failure notifications are enabled
onSuccess If success notifications are enabled
webhookOn If webhook notifications are enabled
webhookPayload The automatically created payload
webhookURL The URL to send the webhook payload to

# Wrapping up


Understanding the structure of an Axiom.ai automation can be helpful in understanding any automation that you have exported from your account. While we generally do not recommend editing this file, there may be instances where you can update the JSON directly, provided you've read the guide above to understand what each key does within the file. Any errors within the JSON may prevent the automation from having the ability to be imported into the extension.