EasyEditor extension schema

EasyEditor app blocks are simply meta data and defined using a JSON schema. The EasyEditor extension schema is defined as a JSON Schema and can be download in full here and visually explored here.

The schema has the following elements:

Key schema blocks

The schema is broken up into the following key blocks:

  • listing - The app blocks listing details to describe its purpose and use.
  • parameters - The definitions of any configuration parameters required for the app block.
  • template - The HTML template to render the app block.

Let's explore these key blocks in more detail.

listing block

The listing block is used to define all the visual elements of the app block which should describe its purpose and use so that Dotdigital users can understand its value to them.

name

Required, string (3-50 characters)

The name of your app block; this is used as the block's name in the tool menu, so try to keep it concise. (3-50 characters)

author

Required, string (3-50 characters)

Your company name, so Dotdigital users can recognize who provided the extension.

description

Required, string (Min 20 characters)

Describe the function of the app block concisely for the user; remember you can use additional links to help the user find more detailed help.

icon

Required, string

This should be some JSON escaped SVG markup with the icon to be used with this app block, for example:

<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
    <rect width="40" height="40" rx="2" fill="white"/>
    <path fill-rule="evenodd" clip-rule="evenodd" d="M12.7899 30.9777L31.9086 16.9383L24.9383 14.9663L20.4162 8L15.8941 14.9663L8 17.1997L13.0992 23.7384L12.7899 30.9777Z" fill="#0042E4"/>
    <rect x="24.0322" y="23.1682" width="7.96779" height="8.07962" rx="3.98389" fill="#FF4E61"/>
</svg>
<svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n    <rect width=\"40\" height=\"40\" rx=\"2\" fill=\"white\"/>\r\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.7899 30.9777L31.9086 16.9383L24.9383 14.9663L20.4162 8L15.8941 14.9663L8 17.1997L13.0992 23.7384L12.7899 30.9777Z\" fill=\"#0042E4\"/>\r\n    <rect x=\"24.0322\" y=\"23.1682\" width=\"7.96779\" height=\"8.07962\" rx=\"3.98389\" fill=\"#FF4E61\"/>\r\n</svg>

group

Describes the EasyEditor tool group this block should be added to; it is usual for this to be the same across all your company's app blocks.

group.name

Required, string (3-52 characters)

The group name to be shown in the left hand tool box that this app block belongs to.

group.icon

Required, string

This should be some JSON escaped SVG markup with the icon to be used with this group, for example:

<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
    <rect width="40" height="40" rx="2" fill="white"/>
    <path fill-rule="evenodd" clip-rule="evenodd" d="M12.7899 30.9777L31.9086 16.9383L24.9383 14.9663L20.4162 8L15.8941 14.9663L8 17.1997L13.0992 23.7384L12.7899 30.9777Z" fill="#0042E4"/>
    <rect x="24.0322" y="23.1682" width="7.96779" height="8.07962" rx="3.98389" fill="#FF4E61"/>
</svg>
<svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n    <rect width=\"40\" height=\"40\" rx=\"2\" fill=\"white\"/>\r\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.7899 30.9777L31.9086 16.9383L24.9383 14.9663L20.4162 8L15.8941 14.9663L8 17.1997L13.0992 23.7384L12.7899 30.9777Z\" fill=\"#0042E4\"/>\r\n    <rect x=\"24.0322\" y=\"23.1682\" width=\"7.96779\" height=\"8.07962\" rx=\"3.98389\" fill=\"#FF4E61\"/>\r\n</svg>

scope

Required, array of string

This defines which EasyEditors this app block works with; add a string entry for each EasyEditor, choosing from email and pagesAndForms

links

Required, array of objects

These are web links shown under the description to provide additional guidance and links related to your app block and company. For instance you may provide a link to your own documentation on how to configure and use the app block, or provide a link to sign up to your services etc.

link object

url

Required, string

The URL to link to, preferably HTTPS based.

description

Required, string (3-110 characters)

Concise description of what the link is.

inherit_styles

boolean - defaults to false

Whether the App Blocks mark-up should inherit the campaign styles setup in Easy Editors style manager or not. We would encourage setting this to true whenever possible so that your App Block automatically inherits the look and feel of the campaign it is embedded within.

min_width

integer

This is the minimum width in pixels your App Block can render correctly within.

🚧

Highly recommended to define min_width

If the min_width field isn't defined then the App Block will not be able to be placed within columns within Easy Editor and therefore significantly limiting the layout options for users using your App Block in Easy Editor.

max_width

integer

This is the maximum width in pixels your App Block can render correctly within. If you have an upper limit your App Block renders correctly in then we strongly encourage setting this value to ensure it isn't placed in a column that would cause it to misrender.

parameters block

This optional block defines any interactive and non-interactive parameters the app block may require to be configured in order to work.

non_interactive

Optional block to define parameters that the user doesn't directly enter. These parameters could be hard coded values you add when registering the extension, such as the users account number for their convenience or even data driven using a contact data field or a Liquid Script to extract Insight Data.

id

Required, string (much meet this regex ^[a-zA-z0-9_]+$)

The unique parameter id to identify this parameter value. You will reference this id in your template to merge the value into your template mark up.

value

Required, string

The value of the parameter which can be one of the following:

  • A static string value.
  • A dynamic string value with one or more contact data fields merged in using the usual Dotdigital format of: @data field name@.
  • A dynamic string from a Liquid Script query.

Examples:

ddg347367
Hi @FIRST_NAME@ how are you
{% assign Orders_data = contact.insight.Orders | sort: 'purchase_date' | reverse %}{{ Orders_data.first.id }}

interactive

Optional block to define any parameters that the user needs to enter within EasyEditor. Each parameter needs a unique name, description and parameter type defining.

id

Required, string (much meet this regex ^[a-zA-z0-9_]+$)

The unique parameter id to identify this parameter value. You will reference this id in your template to merge the value into your template mark up.

name

Required, string (3-50 characters)

The unique display name for the parameter that the user sees in EasyEditor.

parameter_type

Required, string

The input control type for the parameter; one of the following string values:

  • boolean - Simple true / false toggle control
  • numeric - Numeric value control
  • string - Simple text box control
  • multiple-choice - Select multiple values from a defined list
  • dropdown - Drop down list to select one value from many
  • check-list - Select multiple values from a defined list
  • color-picker - Show a color palette widget to choose a color and receive a HTML color code string for the selected color e.g. #ffde03

default_value

Optional, string

The default value for the parameter.

The way the default value is defined differs by the parameter type as follows:

  • for boolean type - only true and false are allowed.
  • for numeric type - it should be a number i.e. -123.45, 0, 111, 123.45 etc.
  • for check list - should be a comma-separated string containing boolean values true or false for all defined options. If you have 3 options, your default value should look like true,false,true, meaning the first and the last ones are selected, the second one is not selected.
  • for dropdown and multiple choice - should be a non-negative integer from the range [0; options.Length - 1], so if you defined 3 options, allowed values are 0, 1, 2.

required

Required, boolean

Indicates whether the parameter is mandatory or not.

min_value

Optional and only applies to numeric parameters, numeric value

If defined, the minimum acceptable numeric value.

Note: Must be lower than the max_value if defined

max_value

Optional and only applies to numeric parameters, numeric value

If defined, the maximum acceptable numeric value.

Note: Must be higher than the min_value if defined.

step

Optional and only applies to numeric parameters, numeric value

If defined specifies the step change between valid values for numeric types for sliders.

options

Optional and only applied to parameters of type multiple-choice, dropdown and check-list, array of string

Defines the values to choose from when the parameter is a multiple choice input.

help

Required, string (3-110 characters)

A short description of the parameters purpose and the value required.

template block

Required, string

This is the JSON escaped HTML markup that your app block injects into the email and/or page and forms HTML markup.

If you want to reference your parameter values then use the token pattern: [[id of parameter]] e.g. [[accountName]]

Example:

"template": "<script type=\"text/javascript\">\r\n(function e(){var e=document.createElement(\"script\");e.type=\"text/javascript\",e.async=true,e.src=\"//staticw2.yotpo.com/[[yotpo_app_key]]/widget.js\";var t=document.getElementsByTagName(\"script\")[0];t.parentNode.insertBefore(e,t)})();\r\n</script>\r\n\r\n<div class=\"yotpo bottomLine\"\r\ndata-yotpo-product-id=\"[[sku]]\">\r\n</div>"
<script type="text/javascript">
(function e(){
  var e=document.createElement("script");
  e.type="text/javascript",e.async=true,e.src="//staticw2.yotpo.com/[[yotpo_app_key]]/widget.js";
  var t=document.getElementsByTagName("script")[0];
  t.parentNode.insertBefore(e,t)
})();
</script>

<div class="yotpo bottomLine"
data-yotpo-product-id="[[sku]]">
</div>

📘

See our template considerations for additional advice around creating great template markup for your app blocks.

Example JSON

Here is a basic example app block:

{
  "listing": {
    "scope": [
      "email"
    ],
    "author": "Acme Inc.",
    "group": {
      "name": "Acme Inc.",
      "icon": "<svg id=\"eOYvqUgPi7p1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 300 300\" shape-rendering=\"geometricPrecision\" text-rendering=\"geometricPrecision\" style=\"background-color:#fff\"><text dx=\"0\" dy=\"0\" font-family=\"&quot;eOYvqUgPi7p1:::Roboto&quot;\" font-size=\"350\" font-weight=\"700\" transform=\"translate(32.249283 272.223328)\" fill=\"#9e0008\" stroke-width=\"0\"><tspan y=\"0\" font-weight=\"700\" stroke-width=\"0\"><![CDATA[\r\nA\r\n]]></tspan></text><text dx=\"0\" dy=\"0\" font-family=\"&quot;eOYvqUgPi7p1:::Concert One&quot;\" font-size=\"60\" font-weight=\"400\" transform=\"translate(100.991627 266.790509)\" stroke-width=\"0\"><tspan y=\"0\" font-weight=\"400\" stroke-width=\"0\"><![CDATA[\r\nInc.\r\n]]></tspan></text>\r\n<style><![CDATA[\r\n@font-face {font-family: 'eOYvqUgPi7p1:::Concert One';font-style: normal;font-weight: 400;src: url(data:font/ttf;charset=utf-8;base64,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) format('truetype');}@font-face {font-family: 'eOYvqUgPi7p1:::Roboto';font-style: normal;font-weight: 700;src: url(data:font/ttf;charset=utf-8;base64,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) format('truetype');}\r\n]]></style>\r\n</svg>"
    },
    "icon": "<svg id=\"eOYvqUgPi7p1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 300 300\" shape-rendering=\"geometricPrecision\" text-rendering=\"geometricPrecision\" style=\"background-color:#fff\"><text dx=\"0\" dy=\"0\" font-family=\"&quot;eOYvqUgPi7p1:::Roboto&quot;\" font-size=\"350\" font-weight=\"700\" transform=\"translate(32.249283 272.223328)\" fill=\"#9e0008\" stroke-width=\"0\"><tspan y=\"0\" font-weight=\"700\" stroke-width=\"0\"><![CDATA[\r\nA\r\n]]></tspan></text><text dx=\"0\" dy=\"0\" font-family=\"&quot;eOYvqUgPi7p1:::Concert One&quot;\" font-size=\"60\" font-weight=\"400\" transform=\"translate(100.991627 266.790509)\" stroke-width=\"0\"><tspan y=\"0\" font-weight=\"400\" stroke-width=\"0\"><![CDATA[\r\nInc.\r\n]]></tspan></text>\r\n<style><![CDATA[\r\n@font-face {font-family: 'eOYvqUgPi7p1:::Concert One';font-style: normal;font-weight: 400;src: url(data:font/ttf;charset=utf-8;base64,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) format('truetype');}@font-face {font-family: 'eOYvqUgPi7p1:::Roboto';font-style: normal;font-weight: 700;src: url(data:font/ttf;charset=utf-8;base64,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) format('truetype');}\r\n]]></style>\r\n</svg>",
    "name": "Greeting Block (Simple)",
    "description": "Displays a simple greeting for the contact.",
    "links": [
      {
        "description": "Acme Inc",
        "url": "https://fake.acmeinc.com/about"
      }
    ]
  },
  "parameters": {
    "interactive": [
      {
        "id": "salutation",
        "name": "Salutation",
        "parameter_type": "string",
        "default_value": "Hi there, ",
        "required": false,
        "help": "This is your salutation at the start of the greeting message"
      }
    ],
    "non_interactive": [
      {
        "id": "firstName",
        "value": "@FIRSTNAME@"
      }
    ]
  },
  "template": "<h1>[[salutation]] [[firstName]]</h1>"
}

What’s Next

Ensure your template will work with EasyEditor