improved

Upcoming changes to the Set step

Upcoming Changes to the Set Step Data Format

As part of our ongoing efforts to improve the functionality of Voiceflow, we are introducing an update to the Set step data format: the transition from setV2 to set-v3 nodes. This update provides a more refined structure to the Set step, offering improved control and flexibility for setting variables in your projects.


Key Changes

Transition to set-v3 Nodes:

We are transforming the current setV2 nodes into set-v3 nodes. This migration will ensure a more robust and flexible approach to variable management, with an updated structure that simplifies the process of setting variables within your projects.

Automatic Conversion:

All existing setV2 nodes will be automatically converted into set-v3 nodes when a project is opened in-app. This conversion preserves all existing functionalities while enabling you to leverage the new and improved system.


Technical Overview

The new set-v3 structure is outlined below:

Properties Affected:

  • Fields Added: None
  • Fields Modified: diagram.nodes[type=setV2] transformed into diagram.nodes[type=set-v3]
  • Fields Removed: None

Migration Example

To illustrate how the migration transforms setV2 nodes into set-v3 nodes, here are examples before and after the migration:

Before Migration:

{
  "diagram": {
    "nodes": {
      "642c35170660144e5e8e4042": {
        "type": "setV2",
        "data": {
          "name": "",
          "sets": [
            {
              "id": "random-id-1",
              "type": "advance",
              "variable": "set-variable1-id",
              "expression": "{{[variable1Name].variable1ID}}"
            },
            {
              "id": "random-id-2",
              "type": "advance",
              "label": "set-2-label",
              "variable": "set-variable2-id",
              "expression": "{{[variable1Name].variable1ID}} + {{[variable2Name].variable2ID}}"
            },
            {
              "id": "random-id-3",
              "type": "advance",
              "variable": "set-variable3-id",
              "expression": "\\"just text\\""
            }
          ],
          "title": "Overwrite Itinerary",
          "portsV2": {
            "byKey": {},
            "builtIn": {
              "next": {
                "type": "next",
                "target": null,
                "id": "642c35170660144e5e8e4043",
                "data": {
                  "points": [
                    {
                      "point": [171.50532091813443, 322.2586013515363],
                      "toTop": false,
                      "locked": false,
                      "reversed": false,
                      "allowedToTop": false
                    },
                    {
                      "point": [230.50532091813443, 322.2586013515363],
                      "toTop": false,
                      "locked": false,
                      "reversed": false,
                      "allowedToTop": false
                    },
                    {
                      "point": [230.50532091813443, 517.7585097988019],
                      "toTop": false,
                      "locked": false,
                      "reversed": false,
                      "allowedToTop": false
                    },
                    {
                      "point": [206.50532091813443, 517.7585097988019],
                      "toTop": false,
                      "locked": false,
                      "reversed": true,
                      "allowedToTop": false
                    }
                  ]
                }
              }
            },
            "dynamic": []
          }
        },
        "nodeID": "642c35170660144e5e8e4042"
      }
    }
  }
}

After Migration:

{
  "diagram": {
    "nodes": {
      "642c35170660144e5e8e4042": {
        "type": "set-v3",
        "data": {
          "name": "",
          "items": [
            {
              "id": "random-id-1",
              "type": "script",
              "value": [{ "variableID": "variable1ID" }],
              "variableID": "set-variable1-id"
            },
            {
              "id": "random-id-2",
              "type": "script",
              "label": "set-2-label",
              "value": [{ "variableID": "variable1ID" }, " + ", { "variableID": "variable2ID" }],
              "variableID": "set-variable2-id"
            },
            {
              "id": "random-id-3",
              "type": "script",
              "value": ["\\"just text\\""],
              "variableID": "set-variable3-id"
            }
          ],
          "label": "Overwrite Itinerary",
          "portsV2": {
            "byKey": {
              "next": {
                "type": "next",
                "target": null,
                "id": "642c35170660144e5e8e4043",
                "data": {
                  "points": [
                    {
                      "point": [171.50532091813443, 322.2586013515363],
                      "toTop": false,
                      "locked": false,
                      "reversed": false,
                      "allowedToTop": false
                    },
                    {
                      "point": [230.50532091813443, 322.2586013515363],
                      "toTop": false,
                      "locked": false,
                      "reversed": false,
                      "allowedToTop": false
                    },
                    {
                      "point": [230.50532091813443, 517.7585097988019],
                      "toTop": false,
                      "locked": false,
                      "reversed": false,
                      "allowedToTop": false
                    },
                    {
                      "point": [206.50532091813443, 517.7585097988019],
                      "toTop": false,
                      "locked": false,
                      "reversed": true,
                      "allowedToTop": false
                    }
                  ]
                }
              }
            },
            "builtIn": {},
            "dynamic": []
          }
        },
        "nodeID": "642c35170660144e5e8e4042"
      }
    }
  }
}


Next Steps

As we approach the release date for this migration, we encourage all users to familiarize themselves with these changes to make the most of the enhanced Set step functionality. If you have any questions or need assistance, our support team is ready to help. Stay tuned for the release!