The User Flows Magic GPT will provide you with exactly this type of structure—or even more complex—depending on the flow you need. 🧩
🚀 No need to be a developer or know how to code—we’ve got your back! 😎
🚀 Test the plugin with this example!
🤖 This is the structure GPT will generate for you. Of course, this is just a sample of one flow, but it fully supports even the most complex flows! 🔥
🛠️ Here’s the required example you need to copy and paste into the Plugin:
{
"flowName": "User Registration Flow",
"nodes": [
{ "id": "1", "name": "Start", "type": "START", "description": [] },
{ "id": "2", "name": "Entry Point", "type": "ENTRYPOINT", "description": [{ "label": "Action", "content": "User lands on the Welcome Screen introducing app features." }] },
{ "id": "3", "name": "User Registration Form", "type": "STEP", "description": [
{ "label": "Action", "content": "User fills out the registration form." },
{ "label": "Inputs", "content": "Full Name, Email, Phone Number, Password, Address (Auto-suggestion), Referral Code (Optional)." },
{ "label": "Outputs", "content": "Account creation request sent." },
{ "label": "Errors", "content": "Invalid email format, Weak password, Phone number already registered, Address not recognized." }
] },
{ "id": "4", "name": "Phone Number Verification", "type": "STEP", "description": [
{ "label": "Action", "content": "User enters the OTP sent to their phone." },
{ "label": "Inputs", "content": "6-digit OTP." },
{ "label": "Outputs", "content": "OTP verification result (Success or Failure)." },
{ "label": "Errors", "content": "Incorrect OTP entered, OTP expired, Resend OTP limit reached." }
] },
{ "id": "5", "name": "Is Phone Verification Successful?", "type": "DECISION", "description": [] },
{ "id": "6", "name": "Account Creation Success", "type": "STEP", "description": [
{ "label": "Action", "content": "User sees a success confirmation and gets access to the app." },
{ "label": "Outputs", "content": "Account successfully created, User is logged in automatically, Welcome discount applied if applicable." },
{ "label": "Errors", "content": "Unexpected system error." }
] },
{ "id": "7", "name": "End", "type": "END", "description": [] }
],
"connections": [
{ "from": "1", "to": "2" },
{ "from": "2", "to": "3" },
{ "from": "3", "to": "4" },
{ "from": "4", "to": "5" },
{ "from": "5", "to": "6", "condition": "If OTP is correct." },
{ "from": "5", "to": "4", "condition": "If OTP is incorrect.", "secondary": true },
{ "from": "6", "to": "7" }
]
}
(⚡ Don’t freak out! 😄 This is just for you to review 👀 and understand what each name and field means, so you can get a clear idea of the structure. 🛠️📂)
flowName
: A string representing the name of the flow.nodes
: A list of nodes, where each node represents a step in the flow.connections
: A list of connections between the nodes.Each node is an object with the following properties:
id
: A unique string identifier for the node.name
: A string name for the node.type
: One of these values:
"START"
"END"
"ENTRYPOINT"
"STEP"
"DECISION"
description
: A list of objects, each with:
label
: A string (required).content
: A string (optional).type
is "ENTRYPOINT"
or "DECISION"
, the description
must be an empty array ([]
).