2
0

chore(editor): ♻️ Revert tables to arrays

Yet another refacto. I improved many many mechanisms on this one including dnd. It is now end 2 end tested 🎉
This commit is contained in:
Baptiste Arnaud
2022-02-04 19:00:08 +01:00
parent 8a350eee6c
commit 524ef0812c
123 changed files with 2998 additions and 3112 deletions

View File

@ -0,0 +1,185 @@
{
"id": "ckz84wbbj2095no1ali9kzfz4",
"createdAt": "2022-02-04T08:16:59.215Z",
"updatedAt": "2022-02-04T08:16:59.215Z",
"name": "My typebot",
"ownerId": "ckz6t9iep0006k31a22j05fwq",
"publishedTypebotId": null,
"folderId": null,
"blocks": [
{
"id": "de8iZbvNxMxyhvLrnPBpt8",
"steps": [
{
"id": "hqgG9FuPDWrkrdHXFnSy9G",
"type": "start",
"label": "Start",
"blockId": "de8iZbvNxMxyhvLrnPBpt8",
"outgoingEdgeId": "41aa19ih9WQQQEurwdjmVJ"
}
],
"title": "Start",
"graphCoordinates": { "x": 0, "y": 0 }
},
{
"id": "vmDTsAC7aLeqanVVtJ9yQx",
"graphCoordinates": { "x": 85, "y": 220 },
"title": "Block #1",
"steps": [
{
"id": "sqUp2x8SXx8JBC8a9XuKGL9",
"blockId": "vmDTsAC7aLeqanVVtJ9yQx",
"type": "text",
"content": {
"html": "<div>Hello!</div>",
"richText": [{ "type": "p", "children": [{ "text": "Hello!" }] }],
"plainText": "Hello!"
}
},
{
"id": "suRXuWyuJ7kpsdLUYKA6VqM",
"blockId": "vmDTsAC7aLeqanVVtJ9yQx",
"type": "text",
"content": {
"html": "<div>How are you?</div>",
"richText": [
{ "type": "p", "children": [{ "text": "How are you?" }] }
],
"plainText": "How are you?"
}
},
{
"id": "ssxDdzVUkgZYPPoPnQK4dCo",
"blockId": "vmDTsAC7aLeqanVVtJ9yQx",
"type": "choice input",
"options": { "buttonLabel": "Send", "isMultipleChoice": false },
"items": [
{
"id": "e7dy3bH2py8fFcak2jUJjr",
"stepId": "ssxDdzVUkgZYPPoPnQK4dCo",
"type": 0,
"content": "Item 1",
"outgoingEdgeId": "8Ty7noiTJAP3jtaWXLsNwy"
},
{
"stepId": "ssxDdzVUkgZYPPoPnQK4dCo",
"type": 0,
"id": "mBJkTavGHAygmPTjiLMQyC",
"content": "Item 2"
},
{
"stepId": "ssxDdzVUkgZYPPoPnQK4dCo",
"type": 0,
"id": "vVfToFyNLyGgRYyB8jYLkn",
"content": "Item 3",
"outgoingEdgeId": "tprSzPvt6A5kTFf7iUNaeR"
}
]
}
]
},
{
"id": "hB4p8rwA1dUSq9A5ctTLqh",
"graphCoordinates": { "x": 513, "y": 152 },
"title": "Block #2",
"steps": [
{
"id": "suHw7fjcMD9KjDRpbB413jn",
"blockId": "hB4p8rwA1dUSq9A5ctTLqh",
"type": "Condition",
"items": [
{
"id": "jvGN6sfftqJgfYYVRUYMuJ",
"stepId": "suHw7fjcMD9KjDRpbB413jn",
"type": 1,
"content": { "comparisons": [], "logicalOperator": "AND" }
}
]
}
]
},
{
"id": "t7g44CwVvCg6mN16KHVAWv",
"graphCoordinates": { "x": 509, "y": 489 },
"title": "Block #3",
"steps": [
{
"id": "suHztCMVss4kTAtgShANxjU",
"blockId": "t7g44CwVvCg6mN16KHVAWv",
"type": "choice input",
"options": { "buttonLabel": "Send", "isMultipleChoice": false },
"items": [
{
"id": "buQjAL2M3cBUVK2ofnxKW3",
"stepId": "suHztCMVss4kTAtgShANxjU",
"type": 0,
"content": "Item 2-1"
},
{
"stepId": "suHztCMVss4kTAtgShANxjU",
"type": 0,
"id": "4gQe9XK1vyQUHXVzFErW4t",
"content": "Item 2-2"
},
{
"stepId": "suHztCMVss4kTAtgShANxjU",
"type": 0,
"id": "uttagH8w5XWzibkKsW23oi",
"content": "Item 2-3"
}
]
}
]
}
],
"variables": [],
"edges": [
{
"from": {
"blockId": "de8iZbvNxMxyhvLrnPBpt8",
"stepId": "hqgG9FuPDWrkrdHXFnSy9G"
},
"to": { "blockId": "vmDTsAC7aLeqanVVtJ9yQx" },
"id": "41aa19ih9WQQQEurwdjmVJ"
},
{
"from": {
"blockId": "vmDTsAC7aLeqanVVtJ9yQx",
"stepId": "ssxDdzVUkgZYPPoPnQK4dCo",
"itemId": "e7dy3bH2py8fFcak2jUJjr"
},
"to": { "blockId": "hB4p8rwA1dUSq9A5ctTLqh" },
"id": "8Ty7noiTJAP3jtaWXLsNwy"
},
{
"from": {
"blockId": "vmDTsAC7aLeqanVVtJ9yQx",
"stepId": "ssxDdzVUkgZYPPoPnQK4dCo",
"itemId": "vVfToFyNLyGgRYyB8jYLkn"
},
"to": { "blockId": "t7g44CwVvCg6mN16KHVAWv" },
"id": "tprSzPvt6A5kTFf7iUNaeR"
}
],
"theme": {
"chat": {
"inputs": {
"color": "#303235",
"backgroundColor": "#FFFFFF",
"placeholderColor": "#9095A0"
},
"buttons": { "color": "#FFFFFF", "backgroundColor": "#0042DA" },
"hostBubbles": { "color": "#303235", "backgroundColor": "#F7F8FF" },
"guestBubbles": { "color": "#FFFFFF", "backgroundColor": "#FF8E21" }
},
"general": { "font": "Open Sans", "background": { "type": "None" } }
},
"settings": {
"general": { "isBrandingEnabled": true },
"metadata": {
"description": "Build beautiful conversational forms and embed them directly in your applications without a line of code. Triple your response rate and collect answers that has more value compared to a traditional form."
},
"typingEmulation": { "speed": 300, "enabled": true, "maxDelay": 1.5 }
},
"publicId": null
}

View File

@ -1,98 +1,76 @@
{
"id": "ckylszb9z0354z31a623dg7ji",
"createdAt": "2022-01-19T17:12:27.863Z",
"updatedAt": "2022-01-19T17:12:27.863Z",
"id": "ckz8gg4n39573no1aa5rsfyp1",
"createdAt": "2022-02-04T13:40:19.455Z",
"updatedAt": "2022-02-04T13:40:19.455Z",
"name": "My typebot",
"ownerId": "ckylsz8yy0335z31amvq0jwtt",
"ownerId": "ckz6t9iep0006k31a22j05fwq",
"publishedTypebotId": null,
"folderId": null,
"webhooks": { "byId": {}, "allIds": [] },
"blocks": {
"byId": {
"j24wz82YG3rjXMgrmCiTLy": {
"id": "j24wz82YG3rjXMgrmCiTLy",
"title": "Start",
"stepIds": ["1NdXPCiRicqDA8k4JfnXfi"],
"graphCoordinates": { "x": 0, "y": 0 }
},
"bmaKTUXkT2cc3wtKfK7ra71": {
"id": "bmaKTUXkT2cc3wtKfK7ra71",
"title": "Block #2",
"graphCoordinates": { "x": 175, "y": 197 },
"stepIds": ["spHxPWbSqkVZW9gqH86ovC5"]
},
"bnt8fM5Wgc8gBg2iSmUcfJu": {
"id": "bnt8fM5Wgc8gBg2iSmUcfJu",
"title": "Block #3",
"graphCoordinates": { "x": 504, "y": 347 },
"stepIds": ["siPoEE9H27hVHqykth3a7Kj"]
}
"blocks": [
{
"id": "bSHn2HQZ1sKji5pd9Nmejf",
"steps": [
{
"id": "qYmbSFBxCvGCgTvQTg9HeH",
"type": "start",
"label": "Start",
"blockId": "bSHn2HQZ1sKji5pd9Nmejf",
"outgoingEdgeId": "jdQnqJK4b559rTJzHHhjcz"
}
],
"title": "Start",
"graphCoordinates": { "x": 0, "y": 0 }
},
"allIds": [
"j24wz82YG3rjXMgrmCiTLy",
"bmaKTUXkT2cc3wtKfK7ra71",
"bnt8fM5Wgc8gBg2iSmUcfJu"
]
},
"steps": {
"byId": {
"1NdXPCiRicqDA8k4JfnXfi": {
"id": "1NdXPCiRicqDA8k4JfnXfi",
"type": "start",
"label": "Start",
"blockId": "j24wz82YG3rjXMgrmCiTLy",
"edgeId": "benDCcLMUWNvi6Fg6CXE9H"
},
"spHxPWbSqkVZW9gqH86ovC5": {
"id": "spHxPWbSqkVZW9gqH86ovC5",
"blockId": "bmaKTUXkT2cc3wtKfK7ra71",
"type": "email input",
"options": { "variableId": "oexLr4sJQNVdSnYCGgGRB3" },
"edgeId": "6Tax9rw7L8kmRn9JRD2Mrg"
},
"siPoEE9H27hVHqykth3a7Kj": {
"id": "siPoEE9H27hVHqykth3a7Kj",
"blockId": "bnt8fM5Wgc8gBg2iSmUcfJu",
"type": "Google Sheets"
}
{
"id": "mSvUFogQH16bQDN1iGWF66",
"graphCoordinates": { "x": 324, "y": 209 },
"title": "Block #1",
"steps": [
{
"id": "spDLmDCZfNJu4DrZ1MUg84c",
"blockId": "mSvUFogQH16bQDN1iGWF66",
"type": "email input",
"options": {
"labels": { "button": "Send", "placeholder": "Type your email..." },
"variableId": "qyLW6xD1AyLeedso2tHmhw"
},
"outgoingEdgeId": "4yg9V76fdDntpDEw6H3tvU"
}
]
},
"allIds": [
"1NdXPCiRicqDA8k4JfnXfi",
"spHxPWbSqkVZW9gqH86ovC5",
"siPoEE9H27hVHqykth3a7Kj"
]
},
"choiceItems": { "byId": {}, "allIds": [] },
"variables": {
"byId": {
"oexLr4sJQNVdSnYCGgGRB3": {
"id": "oexLr4sJQNVdSnYCGgGRB3",
"name": "Email"
}
},
"allIds": ["oexLr4sJQNVdSnYCGgGRB3"]
},
"edges": {
"byId": {
"benDCcLMUWNvi6Fg6CXE9H": {
"from": {
"blockId": "j24wz82YG3rjXMgrmCiTLy",
"stepId": "1NdXPCiRicqDA8k4JfnXfi"
},
"to": { "blockId": "bmaKTUXkT2cc3wtKfK7ra71" },
"id": "benDCcLMUWNvi6Fg6CXE9H"
{
"id": "jd4S6BQsUQ2RuKieHXYKs9",
"graphCoordinates": { "x": 655, "y": 363 },
"title": "Block #2",
"steps": [
{
"id": "s1ZvUqWxV6b8UgFGYWh39pV",
"blockId": "jd4S6BQsUQ2RuKieHXYKs9",
"type": "Google Sheets",
"options": {}
}
]
}
],
"variables": [{ "id": "qyLW6xD1AyLeedso2tHmhw", "name": "Email" }],
"edges": [
{
"from": {
"blockId": "bSHn2HQZ1sKji5pd9Nmejf",
"stepId": "qYmbSFBxCvGCgTvQTg9HeH"
},
"6Tax9rw7L8kmRn9JRD2Mrg": {
"from": {
"blockId": "bmaKTUXkT2cc3wtKfK7ra71",
"stepId": "spHxPWbSqkVZW9gqH86ovC5"
},
"to": { "blockId": "bnt8fM5Wgc8gBg2iSmUcfJu" },
"id": "6Tax9rw7L8kmRn9JRD2Mrg"
}
"to": { "blockId": "mSvUFogQH16bQDN1iGWF66" },
"id": "jdQnqJK4b559rTJzHHhjcz"
},
"allIds": ["benDCcLMUWNvi6Fg6CXE9H", "6Tax9rw7L8kmRn9JRD2Mrg"]
},
{
"from": {
"blockId": "mSvUFogQH16bQDN1iGWF66",
"stepId": "spDLmDCZfNJu4DrZ1MUg84c"
},
"to": { "blockId": "jd4S6BQsUQ2RuKieHXYKs9" },
"id": "4yg9V76fdDntpDEw6H3tvU"
}
],
"theme": {
"chat": {
"inputs": {

View File

@ -1,136 +1,109 @@
{
"id": "ckyltevlb0559z31an8cmkyrp",
"createdAt": "2022-01-19T17:24:34.031Z",
"updatedAt": "2022-01-19T17:24:34.031Z",
"id": "ckz8gg4n39573no1aa5rsfyp1",
"createdAt": "2022-02-04T13:40:19.455Z",
"updatedAt": "2022-02-04T13:40:19.455Z",
"name": "My typebot",
"ownerId": "ckyltekzq0533z31ad8opmacz",
"ownerId": "ckz6t9iep0006k31a22j05fwq",
"publishedTypebotId": null,
"folderId": null,
"webhooks": { "byId": {}, "allIds": [] },
"blocks": {
"byId": {
"kPupUcEn7TcBGKHUpgK2Q5": {
"id": "kPupUcEn7TcBGKHUpgK2Q5",
"title": "Start",
"stepIds": ["nP5oWm7PxigMupyWpPLq24"],
"graphCoordinates": { "x": 0, "y": 0 }
},
"bi4J5fv9DFn1zPSqGf8eRht": {
"id": "bi4J5fv9DFn1zPSqGf8eRht",
"title": "Block #2",
"graphCoordinates": { "x": 104, "y": 201 },
"stepIds": ["scH9qdXwFfAScoavj6UzQNT"]
},
"bwqGhUsa2SKaxXSrKtapVc8": {
"id": "bwqGhUsa2SKaxXSrKtapVc8",
"title": "Block #3",
"graphCoordinates": { "x": 458, "y": 292 },
"stepIds": ["shZdc8Qw48domEbS7vLW5eN"]
},
"bqmgS9hLUu2RA2oxVv7hMka": {
"id": "bqmgS9hLUu2RA2oxVv7hMka",
"title": "Block #4",
"graphCoordinates": { "x": 102, "y": 432 },
"stepIds": ["s4z6G3MGAyhXChU9jakQWer"]
}
},
"allIds": [
"kPupUcEn7TcBGKHUpgK2Q5",
"bi4J5fv9DFn1zPSqGf8eRht",
"bwqGhUsa2SKaxXSrKtapVc8",
"bqmgS9hLUu2RA2oxVv7hMka"
]
},
"steps": {
"byId": {
"nP5oWm7PxigMupyWpPLq24": {
"id": "nP5oWm7PxigMupyWpPLq24",
"type": "start",
"label": "Start",
"blockId": "kPupUcEn7TcBGKHUpgK2Q5",
"edgeId": "kCLXGLpiM2F6pn4wFYc1f5"
},
"scH9qdXwFfAScoavj6UzQNT": {
"id": "scH9qdXwFfAScoavj6UzQNT",
"blockId": "bi4J5fv9DFn1zPSqGf8eRht",
"type": "email input",
"options": { "variableId": "ifXp66N1meAtoUDcbqWxuD" },
"edgeId": "7Czn5hJFUfpkRGtwGnKxtt"
},
"shZdc8Qw48domEbS7vLW5eN": {
"id": "shZdc8Qw48domEbS7vLW5eN",
"blockId": "bwqGhUsa2SKaxXSrKtapVc8",
"type": "Google Sheets",
"edgeId": "eMhGokwHMDRDrynSvpiRje"
},
"s4z6G3MGAyhXChU9jakQWer": {
"id": "s4z6G3MGAyhXChU9jakQWer",
"blockId": "bqmgS9hLUu2RA2oxVv7hMka",
"type": "text",
"content": {
"html": "<div>Your name is: {{First name}} {{Last name}}</div>",
"richText": [
{
"type": "p",
"children": [
{ "text": "Your name is: {{First name}} {{Last name}}" }
]
}
],
"plainText": "Your name is: {{First name}} {{Last name}}"
"blocks": [
{
"id": "bSHn2HQZ1sKji5pd9Nmejf",
"steps": [
{
"id": "qYmbSFBxCvGCgTvQTg9HeH",
"type": "start",
"label": "Start",
"blockId": "bSHn2HQZ1sKji5pd9Nmejf",
"outgoingEdgeId": "jdQnqJK4b559rTJzHHhjcz"
}
}
],
"title": "Start",
"graphCoordinates": { "x": 0, "y": 0 }
},
"allIds": [
"nP5oWm7PxigMupyWpPLq24",
"scH9qdXwFfAScoavj6UzQNT",
"shZdc8Qw48domEbS7vLW5eN",
"s4z6G3MGAyhXChU9jakQWer"
]
},
"choiceItems": { "byId": {}, "allIds": [] },
"variables": {
"byId": {
"ifXp66N1meAtoUDcbqWxuD": {
"id": "ifXp66N1meAtoUDcbqWxuD",
"name": "Email"
}
{
"id": "mSvUFogQH16bQDN1iGWF66",
"graphCoordinates": { "x": 324, "y": 209 },
"title": "Block #1",
"steps": [
{
"id": "spDLmDCZfNJu4DrZ1MUg84c",
"blockId": "mSvUFogQH16bQDN1iGWF66",
"type": "email input",
"options": {
"labels": { "button": "Send", "placeholder": "Type your email..." },
"variableId": "qyLW6xD1AyLeedso2tHmhw"
},
"outgoingEdgeId": "4yg9V76fdDntpDEw6H3tvU"
}
]
},
"allIds": ["ifXp66N1meAtoUDcbqWxuD"]
},
"edges": {
"byId": {
"kCLXGLpiM2F6pn4wFYc1f5": {
"from": {
"blockId": "kPupUcEn7TcBGKHUpgK2Q5",
"stepId": "nP5oWm7PxigMupyWpPLq24"
},
"to": { "blockId": "bi4J5fv9DFn1zPSqGf8eRht" },
"id": "kCLXGLpiM2F6pn4wFYc1f5"
{
"id": "jd4S6BQsUQ2RuKieHXYKs9",
"graphCoordinates": { "x": 655, "y": 363 },
"title": "Block #2",
"steps": [
{
"id": "s1ZvUqWxV6b8UgFGYWh39pV",
"blockId": "jd4S6BQsUQ2RuKieHXYKs9",
"type": "Google Sheets",
"options": {},
"outgoingEdgeId": "tBsPNYzMW1mMSvFMHZpmx8"
}
]
},
{
"id": "pd3PECJqHB9xHMfc52SbrZ",
"graphCoordinates": { "x": 292, "y": 509 },
"title": "Block #3",
"steps": [
{
"id": "sdECvSYszxBaZHH5TuWm11h",
"blockId": "pd3PECJqHB9xHMfc52SbrZ",
"type": "text",
"content": {
"html": "<div>Your name is: {{First name}} {{Last name}}</div>",
"richText": [
{
"type": "p",
"children": [
{ "text": "Your name is: {{First name}} {{Last name}}" }
]
}
],
"plainText": "Your name is: {{First name}} {{Last name}}"
}
}
]
}
],
"variables": [{ "id": "qyLW6xD1AyLeedso2tHmhw", "name": "Email" }],
"edges": [
{
"from": {
"blockId": "bSHn2HQZ1sKji5pd9Nmejf",
"stepId": "qYmbSFBxCvGCgTvQTg9HeH"
},
"7Czn5hJFUfpkRGtwGnKxtt": {
"from": {
"blockId": "bi4J5fv9DFn1zPSqGf8eRht",
"stepId": "scH9qdXwFfAScoavj6UzQNT"
},
"to": { "blockId": "bwqGhUsa2SKaxXSrKtapVc8" },
"id": "7Czn5hJFUfpkRGtwGnKxtt"
},
"eMhGokwHMDRDrynSvpiRje": {
"from": {
"blockId": "bwqGhUsa2SKaxXSrKtapVc8",
"stepId": "shZdc8Qw48domEbS7vLW5eN"
},
"to": { "blockId": "bqmgS9hLUu2RA2oxVv7hMka" },
"id": "eMhGokwHMDRDrynSvpiRje"
}
"to": { "blockId": "mSvUFogQH16bQDN1iGWF66" },
"id": "jdQnqJK4b559rTJzHHhjcz"
},
"allIds": [
"kCLXGLpiM2F6pn4wFYc1f5",
"7Czn5hJFUfpkRGtwGnKxtt",
"eMhGokwHMDRDrynSvpiRje"
]
},
{
"from": {
"blockId": "mSvUFogQH16bQDN1iGWF66",
"stepId": "spDLmDCZfNJu4DrZ1MUg84c"
},
"to": { "blockId": "jd4S6BQsUQ2RuKieHXYKs9" },
"id": "4yg9V76fdDntpDEw6H3tvU"
},
{
"from": {
"blockId": "jd4S6BQsUQ2RuKieHXYKs9",
"stepId": "s1ZvUqWxV6b8UgFGYWh39pV"
},
"to": { "blockId": "pd3PECJqHB9xHMfc52SbrZ" },
"id": "tBsPNYzMW1mMSvFMHZpmx8"
}
],
"theme": {
"chat": {
"inputs": {

View File

@ -1,155 +1,103 @@
{
"id": "ckz478ggv1144eo1a5euf9twl",
"createdAt": "2022-02-01T14:11:20.287Z",
"updatedAt": "2022-02-01T14:11:20.286Z",
"name": "Webhook",
"ownerId": "ckz478eaj1091eo1amyo1me1z",
"id": "ckz8gli9e9842no1afuppdn0z",
"createdAt": "2022-02-04T13:44:30.386Z",
"updatedAt": "2022-02-04T13:44:30.386Z",
"name": "My typebot",
"ownerId": "ckz6t9iep0006k31a22j05fwq",
"publishedTypebotId": null,
"folderId": null,
"blocks": {
"byId": {
"q7gjzJu7wBFycca5dNvZek": {
"id": "q7gjzJu7wBFycca5dNvZek",
"title": "Start",
"stepIds": ["da1KErxMzczHwaM25vQtFP"],
"graphCoordinates": { "x": 0, "y": 0 }
},
"bUUqjxyAFZkKzjByqEaEzV": {
"id": "bUUqjxyAFZkKzjByqEaEzV",
"graphCoordinates": { "x": 248, "y": 247 },
"title": "Block 1",
"stepIds": ["siAj9x5LZ8W5cviqznX82T3", "s5GToHCtqZhwpygDuTb3tu4"]
},
"ifpYvoBnYU2X3B3RgwfeNJ": {
"id": "ifpYvoBnYU2X3B3RgwfeNJ",
"graphCoordinates": { "x": 690, "y": 504 },
"title": "Block 2",
"stepIds": ["sjDhaBWVLd2Ep7N3WryJGQJ"]
}
},
"allIds": [
"q7gjzJu7wBFycca5dNvZek",
"bUUqjxyAFZkKzjByqEaEzV",
"ifpYvoBnYU2X3B3RgwfeNJ"
]
},
"steps": {
"byId": {
"da1KErxMzczHwaM25vQtFP": {
"id": "da1KErxMzczHwaM25vQtFP",
"type": "start",
"label": "Start",
"blockId": "q7gjzJu7wBFycca5dNvZek",
"edgeId": "mcxdssnDkbvJBZ6d51XDey"
},
"s5GToHCtqZhwpygDuTb3tu4": {
"id": "s5GToHCtqZhwpygDuTb3tu4",
"blockId": "bUUqjxyAFZkKzjByqEaEzV",
"type": "choice input",
"options": {
"buttonLabel": "Send",
"isMultipleChoice": false,
"itemIds": ["ddSjZkft27gQnZAEeXtQny"]
"blocks": [
{
"id": "p6GeeRXHgwiJeoJRBkKaMJ",
"steps": [
{
"id": "iDS7jFemUsQ7Sp3eu3xg3w",
"type": "start",
"label": "Start",
"blockId": "p6GeeRXHgwiJeoJRBkKaMJ",
"outgoingEdgeId": "cyEJPaLU7AchnBSaeWoyiS"
}
},
"siAj9x5LZ8W5cviqznX82T3": {
"id": "siAj9x5LZ8W5cviqznX82T3",
"blockId": "bUUqjxyAFZkKzjByqEaEzV",
"type": "text",
"content": {
"html": "<div>Ready?</div>",
"richText": [{ "type": "p", "children": [{ "text": "Ready?" }] }],
"plainText": "Ready?"
}
},
"sjDhaBWVLd2Ep7N3WryJGQJ": {
"id": "sjDhaBWVLd2Ep7N3WryJGQJ",
"blockId": "ifpYvoBnYU2X3B3RgwfeNJ",
"type": "Webhook",
"options": {
"responseVariableMapping": { "byId": {}, "allIds": [] },
"variablesForTest": { "byId": {}, "allIds": [] },
"webhookId": "3nxQGoMMXpA6K5iuhGFW5S"
}
}
],
"title": "Start",
"graphCoordinates": { "x": 0, "y": 0 }
},
"allIds": [
"da1KErxMzczHwaM25vQtFP",
"s5GToHCtqZhwpygDuTb3tu4",
"siAj9x5LZ8W5cviqznX82T3",
"sjDhaBWVLd2Ep7N3WryJGQJ"
]
},
"choiceItems": {
"byId": {
"ddSjZkft27gQnZAEeXtQny": {
"id": "ddSjZkft27gQnZAEeXtQny",
"stepId": "s5GToHCtqZhwpygDuTb3tu4",
"content": "Go",
"edgeId": "x6cbRGrLAVYy4ymAg5tfp9"
}
},
"allIds": ["ddSjZkft27gQnZAEeXtQny"]
},
"variables": {
"byId": {
"oASkBtoLqkYNqeakcjZH4L": {
"id": "oASkBtoLqkYNqeakcjZH4L",
"name": "secret 1"
},
"4tvkRmf32wiTsXrYoqyhfr": {
"id": "4tvkRmf32wiTsXrYoqyhfr",
"name": "secret 2"
},
"jEg1FvkCU5S5owNAxXFsHL": {
"id": "jEg1FvkCU5S5owNAxXFsHL",
"name": "secret 3"
},
"rEoE1ehHzgx8X3d3UPGDHg": {
"id": "rEoE1ehHzgx8X3d3UPGDHg",
"name": "secret 4"
}
},
"allIds": [
"oASkBtoLqkYNqeakcjZH4L",
"4tvkRmf32wiTsXrYoqyhfr",
"jEg1FvkCU5S5owNAxXFsHL",
"rEoE1ehHzgx8X3d3UPGDHg"
]
},
"webhooks": {
"byId": {
"3nxQGoMMXpA6K5iuhGFW5S": {
"id": "3nxQGoMMXpA6K5iuhGFW5S",
"method": "GET",
"headers": { "byId": {}, "allIds": [] },
"queryParams": { "byId": {}, "allIds": [] }
}
},
"allIds": ["3nxQGoMMXpA6K5iuhGFW5S"]
},
"edges": {
"byId": {
"mcxdssnDkbvJBZ6d51XDey": {
"from": {
"blockId": "q7gjzJu7wBFycca5dNvZek",
"stepId": "da1KErxMzczHwaM25vQtFP"
{
"id": "kBneEpKdMYrF65XxUQ5GS7",
"graphCoordinates": { "x": 260, "y": 186 },
"title": "Block #1",
"steps": [
{
"id": "skSkZ4PNP7m1gYvu9Ew6ngM",
"blockId": "kBneEpKdMYrF65XxUQ5GS7",
"type": "text",
"content": {
"html": "<div>Ready?</div>",
"richText": [{ "type": "p", "children": [{ "text": "Ready?" }] }],
"plainText": "Ready?"
}
},
"to": { "blockId": "bUUqjxyAFZkKzjByqEaEzV" },
"id": "mcxdssnDkbvJBZ6d51XDey"
},
"x6cbRGrLAVYy4ymAg5tfp9": {
"from": {
"blockId": "bUUqjxyAFZkKzjByqEaEzV",
"stepId": "s5GToHCtqZhwpygDuTb3tu4",
"buttonId": "ddSjZkft27gQnZAEeXtQny"
},
"to": { "blockId": "ifpYvoBnYU2X3B3RgwfeNJ" },
"id": "x6cbRGrLAVYy4ymAg5tfp9"
}
{
"id": "sh6ZVRA3o72y6BEiNKVcoma",
"blockId": "kBneEpKdMYrF65XxUQ5GS7",
"type": "choice input",
"options": { "buttonLabel": "Send", "isMultipleChoice": false },
"items": [
{
"id": "rr5mKKBPq73ZrfXZ3uuupz",
"stepId": "sh6ZVRA3o72y6BEiNKVcoma",
"type": 0,
"content": "Go",
"outgoingEdgeId": "1sLicz8gq2QxytFTwBd8ac"
}
]
}
]
},
"allIds": ["mcxdssnDkbvJBZ6d51XDey", "x6cbRGrLAVYy4ymAg5tfp9"]
},
{
"id": "8XnDM1QsqPms4LQHh8q3Jo",
"graphCoordinates": { "x": 646, "y": 511 },
"title": "Block #2",
"steps": [
{
"id": "soSmiE7zyb3WF77GxFxAjYX",
"blockId": "8XnDM1QsqPms4LQHh8q3Jo",
"type": "Webhook",
"options": { "responseVariableMapping": [], "variablesForTest": [] },
"webhook": {
"id": "2L9mPYsLAXdXwcnGVK6pv9",
"method": "GET",
"headers": [],
"queryParams": []
}
}
]
}
],
"variables": [
{ "id": "var1", "name": "secret 1" },
{ "id": "var2", "name": "secret 2" },
{ "id": "var3", "name": "secret 3" },
{ "id": "var4", "name": "secret 4" }
],
"edges": [
{
"from": {
"blockId": "p6GeeRXHgwiJeoJRBkKaMJ",
"stepId": "iDS7jFemUsQ7Sp3eu3xg3w"
},
"to": { "blockId": "kBneEpKdMYrF65XxUQ5GS7" },
"id": "cyEJPaLU7AchnBSaeWoyiS"
},
{
"from": {
"blockId": "kBneEpKdMYrF65XxUQ5GS7",
"stepId": "sh6ZVRA3o72y6BEiNKVcoma",
"itemId": "rr5mKKBPq73ZrfXZ3uuupz"
},
"to": { "blockId": "8XnDM1QsqPms4LQHh8q3Jo" },
"id": "1sLicz8gq2QxytFTwBd8ac"
}
],
"theme": {
"chat": {
"inputs": {

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

@ -1,275 +0,0 @@
{
"id": "bdFW2HHjMoEFmqHtFre9Xi8",
"createdAt": "2022-01-21T07:55:14.727Z",
"updatedAt": "2022-01-21T07:55:14.727Z",
"name": "My typebot",
"ownerId": "user2",
"publishedTypebotId": null,
"folderId": null,
"blocks": {
"byId": {
"3kH2sUjVThQDWmqdoKnGk5": {
"id": "3kH2sUjVThQDWmqdoKnGk5",
"title": "Start",
"stepIds": ["oxTsU2C1RX5QHuyY8qjHAM"],
"graphCoordinates": { "x": 42, "y": 13 }
},
"b9mSgu7RKmK4xuiTVQP5Me8": {
"id": "b9mSgu7RKmK4xuiTVQP5Me8",
"title": "Block #3",
"stepIds": ["ssLd2wjExS9qWRur4tZDU1Z"],
"graphCoordinates": { "x": 300, "y": 550 }
},
"bdFW2HHjMoEFmqHtFre9Xi8": {
"id": "bdFW2HHjMoEFmqHtFre9Xi8",
"title": "Block #2",
"stepIds": ["sgkADMK25y9P9V3vjwjBaac", "ssEiEECKSFkA44dGDceHxKw"],
"graphCoordinates": { "x": 121, "y": 227 }
},
"bmz4rc8r19H2C6b7soxzby4": {
"id": "bmz4rc8r19H2C6b7soxzby4",
"title": "Block #4",
"graphCoordinates": { "x": 632, "y": 279 },
"stepIds": ["sgTWsRM1qF2YoYLuGo3Z3pU"]
}
},
"allIds": [
"3kH2sUjVThQDWmqdoKnGk5",
"bdFW2HHjMoEFmqHtFre9Xi8",
"b9mSgu7RKmK4xuiTVQP5Me8",
"bmz4rc8r19H2C6b7soxzby4"
]
},
"steps": {
"byId": {
"oxTsU2C1RX5QHuyY8qjHAM": {
"id": "oxTsU2C1RX5QHuyY8qjHAM",
"type": "start",
"label": "Start",
"edgeId": "25yX9DnQgdafpdAjfAu5Fp",
"blockId": "3kH2sUjVThQDWmqdoKnGk5"
},
"sgkADMK25y9P9V3vjwjBaac": {
"id": "sgkADMK25y9P9V3vjwjBaac",
"type": "text",
"blockId": "bdFW2HHjMoEFmqHtFre9Xi8",
"content": {
"html": "<div>Ready?</div>",
"richText": [{ "type": "p", "children": [{ "text": "Ready?" }] }],
"plainText": "Ready?"
}
},
"ssEiEECKSFkA44dGDceHxKw": {
"id": "ssEiEECKSFkA44dGDceHxKw",
"type": "choice input",
"edgeId": "oxEEtym3NfDf34NCipzjRQ",
"blockId": "bdFW2HHjMoEFmqHtFre9Xi8",
"options": { "itemIds": ["q69Ex7LacPrH9QUMeosRnB"] }
},
"ssLd2wjExS9qWRur4tZDU1Z": {
"id": "ssLd2wjExS9qWRur4tZDU1Z",
"type": "Webhook",
"blockId": "b9mSgu7RKmK4xuiTVQP5Me8",
"options": {
"webhookId": "4h4Kk3Q1qGy7gFzpZtWVpU",
"variablesForTest": {
"byId": {
"6pMn1xm1y3xWVSdJetMAJH": {
"id": "6pMn1xm1y3xWVSdJetMAJH",
"variableId": "oASkBtoLqkYNqeakcjZH4L",
"value": "secret1"
},
"ettAiB75uoFWnJyPS7gn5k": {
"id": "ettAiB75uoFWnJyPS7gn5k",
"variableId": "4tvkRmf32wiTsXrYoqyhfr",
"value": "secret2"
},
"kKpD3Q4YvFQ7CGWiZxJF4s": {
"id": "kKpD3Q4YvFQ7CGWiZxJF4s",
"variableId": "jEg1FvkCU5S5owNAxXFsHL",
"value": "secret3"
},
"xjUC5Q3msXCw9fwqpNdoSx": {
"id": "xjUC5Q3msXCw9fwqpNdoSx",
"variableId": "rEoE1ehHzgx8X3d3UPGDHg",
"value": "secret4"
}
},
"allIds": [
"6pMn1xm1y3xWVSdJetMAJH",
"ettAiB75uoFWnJyPS7gn5k",
"kKpD3Q4YvFQ7CGWiZxJF4s",
"xjUC5Q3msXCw9fwqpNdoSx"
]
},
"responseVariableMapping": {
"byId": {
"o53h6M1sgHJfDTY5C3YEaT": {
"id": "o53h6M1sgHJfDTY5C3YEaT",
"bodyPath": "data[0].name",
"variableId": "4kVx5uf8W1XP6WsfJEvt8v"
}
},
"allIds": ["o53h6M1sgHJfDTY5C3YEaT"]
}
},
"edgeId": "81SjKnxuUgrPmXvvJJihHM"
},
"sgTWsRM1qF2YoYLuGo3Z3pU": {
"id": "sgTWsRM1qF2YoYLuGo3Z3pU",
"blockId": "bmz4rc8r19H2C6b7soxzby4",
"type": "text",
"content": {
"html": "<div>His name is {{Name}}</div>",
"richText": [
{ "type": "p", "children": [{ "text": "His name is {{Name}}" }] }
],
"plainText": "His name is {{Name}}"
}
}
},
"allIds": [
"oxTsU2C1RX5QHuyY8qjHAM",
"sgkADMK25y9P9V3vjwjBaac",
"ssEiEECKSFkA44dGDceHxKw",
"ssLd2wjExS9qWRur4tZDU1Z",
"sgTWsRM1qF2YoYLuGo3Z3pU"
]
},
"choiceItems": {
"byId": {
"q69Ex7LacPrH9QUMeosRnB": {
"id": "q69Ex7LacPrH9QUMeosRnB",
"stepId": "ssEiEECKSFkA44dGDceHxKw",
"content": "Go"
}
},
"allIds": ["q69Ex7LacPrH9QUMeosRnB"]
},
"webhooks": { "byId": {}, "allIds": [] },
"variables": {
"byId": {
"4tvkRmf32wiTsXrYoqyhfr": {
"id": "4tvkRmf32wiTsXrYoqyhfr",
"name": "secret 2",
"value": "secret2"
},
"jEg1FvkCU5S5owNAxXFsHL": {
"id": "jEg1FvkCU5S5owNAxXFsHL",
"name": "secret 3",
"value": "secret3"
},
"oASkBtoLqkYNqeakcjZH4L": {
"id": "oASkBtoLqkYNqeakcjZH4L",
"name": "secret 1",
"value": "secret1"
},
"rEoE1ehHzgx8X3d3UPGDHg": {
"id": "rEoE1ehHzgx8X3d3UPGDHg",
"name": "secret 4",
"value": "secret4"
},
"4kVx5uf8W1XP6WsfJEvt8v": {
"id": "4kVx5uf8W1XP6WsfJEvt8v",
"name": "Name"
}
},
"allIds": [
"oASkBtoLqkYNqeakcjZH4L",
"4tvkRmf32wiTsXrYoqyhfr",
"jEg1FvkCU5S5owNAxXFsHL",
"rEoE1ehHzgx8X3d3UPGDHg",
"4kVx5uf8W1XP6WsfJEvt8v"
]
},
"webhooks": {
"byId": {
"4h4Kk3Q1qGy7gFzpZtWVpU": {
"id": "4h4Kk3Q1qGy7gFzpZtWVpU",
"url": "http://localhost:3000/api/mock/webhook",
"queryParams": {
"byId": {
"hwGB11cA7RaYnaqH7gYyuQ": {
"id": "hwGB11cA7RaYnaqH7gYyuQ",
"key": "firstParam",
"value": "{{secret 1}}"
},
"6ux2FZjhNc4vfqNUDuCkxn": {
"id": "6ux2FZjhNc4vfqNUDuCkxn",
"key": "secondParam",
"value": "{{secret 2}}"
}
},
"allIds": ["hwGB11cA7RaYnaqH7gYyuQ", "6ux2FZjhNc4vfqNUDuCkxn"]
},
"headers": {
"byId": {
"ayTB2cFRKMo6oH9t9KS8SA": {
"id": "ayTB2cFRKMo6oH9t9KS8SA",
"key": "Custom-Typebot",
"value": "{{secret 3}}"
}
},
"allIds": ["ayTB2cFRKMo6oH9t9KS8SA"]
},
"method": "POST",
"body": "{ \"customField\": \"{{secret 4}}\" }"
}
},
"allIds": ["4h4Kk3Q1qGy7gFzpZtWVpU"]
},
"edges": {
"byId": {
"25yX9DnQgdafpdAjfAu5Fp": {
"id": "25yX9DnQgdafpdAjfAu5Fp",
"to": { "blockId": "bdFW2HHjMoEFmqHtFre9Xi8" },
"from": {
"stepId": "oxTsU2C1RX5QHuyY8qjHAM",
"blockId": "3kH2sUjVThQDWmqdoKnGk5"
}
},
"oxEEtym3NfDf34NCipzjRQ": {
"id": "oxEEtym3NfDf34NCipzjRQ",
"to": { "blockId": "b9mSgu7RKmK4xuiTVQP5Me8" },
"from": {
"stepId": "ssEiEECKSFkA44dGDceHxKw",
"blockId": "bdFW2HHjMoEFmqHtFre9Xi8"
}
},
"81SjKnxuUgrPmXvvJJihHM": {
"from": {
"blockId": "b9mSgu7RKmK4xuiTVQP5Me8",
"stepId": "ssLd2wjExS9qWRur4tZDU1Z"
},
"to": { "blockId": "bmz4rc8r19H2C6b7soxzby4" },
"id": "81SjKnxuUgrPmXvvJJihHM"
}
},
"allIds": [
"25yX9DnQgdafpdAjfAu5Fp",
"oxEEtym3NfDf34NCipzjRQ",
"81SjKnxuUgrPmXvvJJihHM"
]
},
"theme": {
"chat": {
"inputs": {
"color": "#303235",
"backgroundColor": "#FFFFFF",
"placeholderColor": "#9095A0"
},
"buttons": { "color": "#FFFFFF", "backgroundColor": "#0042DA" },
"hostBubbles": { "color": "#303235", "backgroundColor": "#F7F8FF" },
"guestBubbles": { "color": "#FFFFFF", "backgroundColor": "#FF8E21" }
},
"general": { "font": "Open Sans", "background": { "type": "None" } }
},
"settings": {
"general": { "isBrandingEnabled": true },
"metadata": {
"description": "Build beautiful conversational forms and embed them directly in your applications without a line of code. Triple your response rate and collect answers that has more value compared to a traditional form."
},
"typingEmulation": { "speed": 300, "enabled": true, "maxDelay": 1.5 }
},
"publicId": null
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 283 KiB

View File

@ -1,228 +1,217 @@
{
"id": "ckylsd52p0114z31aobllswmu",
"createdAt": "2022-01-19T16:55:13.393Z",
"updatedAt": "2022-01-19T16:55:13.393Z",
"id": "ckz8gpmgr10008no1a1mq4q1l2",
"createdAt": "2022-02-04T13:47:42.459Z",
"updatedAt": "2022-02-04T13:47:42.459Z",
"name": "My typebot",
"ownerId": "ckylsbdf60088z31ayqytest6",
"ownerId": "ckz6t9iep0006k31a22j05fwq",
"publishedTypebotId": null,
"folderId": null,
"webhooks": { "byId": {}, "allIds": [] },
"blocks": {
"byId": {
"2x83WHtEBkiv7pk7KgqJwZ": {
"id": "2x83WHtEBkiv7pk7KgqJwZ",
"title": "Start",
"stepIds": ["1A76iZBgXG7hvkG2koCxe4"],
"graphCoordinates": { "x": 0, "y": 0 }
},
"bwga7RwqQWbowdHph27DM1N": {
"id": "bwga7RwqQWbowdHph27DM1N",
"title": "Block #2",
"graphCoordinates": { "x": 78, "y": 224 },
"stepIds": ["srwUKaUFFmehppJ2ZDqp4xG", "sxvzuo48GHi3AcAfmiFyYC1"]
},
"bu8whx817bJBG37FQrtD5dD": {
"id": "bu8whx817bJBG37FQrtD5dD",
"title": "Block #3",
"graphCoordinates": { "x": 430, "y": 287 },
"stepIds": ["ituVWW1AvQeVdFHTwsiVao", "5SLc4whZooZVUfr1bmTNSC"]
},
"b59jwmEdwZUvJszV394x44u": {
"id": "b59jwmEdwZUvJszV394x44u",
"title": "Block #4",
"graphCoordinates": { "x": 844, "y": 185 },
"stepIds": ["sm1YcKTL9cQMCGywzo1wyBB"]
},
"baVF9HqhuSnLDZqY9eRPpcp": {
"id": "baVF9HqhuSnLDZqY9eRPpcp",
"title": "Block #5",
"graphCoordinates": { "x": 841, "y": 356 },
"stepIds": ["sb3o6J8Fybg6u8KuayKviJq"]
},
"b9aEH46RHuZWTdQwZJ6KBWR": {
"id": "b9aEH46RHuZWTdQwZJ6KBWR",
"title": "Block #6",
"graphCoordinates": { "x": 839, "y": 523 },
"stepIds": ["scKogEJSTq4kPeHRhwTTjit"]
}
},
"allIds": [
"2x83WHtEBkiv7pk7KgqJwZ",
"bwga7RwqQWbowdHph27DM1N",
"bu8whx817bJBG37FQrtD5dD",
"b59jwmEdwZUvJszV394x44u",
"baVF9HqhuSnLDZqY9eRPpcp",
"b9aEH46RHuZWTdQwZJ6KBWR"
]
},
"steps": {
"byId": {
"1A76iZBgXG7hvkG2koCxe4": {
"id": "1A76iZBgXG7hvkG2koCxe4",
"type": "start",
"label": "Start",
"blockId": "2x83WHtEBkiv7pk7KgqJwZ",
"edgeId": "jjNy2hYgrQgPS9EBMKA7MH"
},
"srwUKaUFFmehppJ2ZDqp4xG": {
"id": "srwUKaUFFmehppJ2ZDqp4xG",
"blockId": "bwga7RwqQWbowdHph27DM1N",
"type": "text",
"content": {
"html": "<div>How old are you?</div>",
"richText": [
{ "type": "p", "children": [{ "text": "How old are you?" }] }
],
"plainText": "How old are you?"
"blocks": [
{
"id": "cN46uqNAR3ohjrS8jHJ6xT",
"steps": [
{
"id": "nzijwLtLTAZfNNCN7kEpn5",
"type": "start",
"label": "Start",
"blockId": "cN46uqNAR3ohjrS8jHJ6xT",
"outgoingEdgeId": "7wxB76VK81JsXMX9jU9dbQ"
}
},
"sxvzuo48GHi3AcAfmiFyYC1": {
"id": "sxvzuo48GHi3AcAfmiFyYC1",
"blockId": "bwga7RwqQWbowdHph27DM1N",
"type": "number input",
"options": { "variableId": "dEz689uVm8AxUM8TrbQd2t" },
"edgeId": "7mcWaWohM9zGtLX8ZSnqFy"
},
"ituVWW1AvQeVdFHTwsiVao": {
"id": "ituVWW1AvQeVdFHTwsiVao",
"blockId": "bu8whx817bJBG37FQrtD5dD",
"type": "Condition",
"options": {
"comparisons": {
"byId": {},
"allIds": []
],
"title": "Start",
"graphCoordinates": { "x": 0, "y": 0 }
},
{
"id": "eh2ohNATnGg6RTdjG9h5kb",
"steps": [
{
"id": "sb6xdkJRr6P6BxtTM3ku5JD",
"type": "text",
"blockId": "eh2ohNATnGg6RTdjG9h5kb",
"content": {
"html": "<div>How old are you?</div>",
"richText": [
{ "type": "p", "children": [{ "text": "How old are you?" }] }
],
"plainText": "How old are you?"
}
},
{
"id": "ssyBKZve7bihSxUASYTruZA",
"type": "number input",
"blockId": "eh2ohNATnGg6RTdjG9h5kb",
"options": {
"labels": { "button": "Send", "placeholder": "Type a number..." },
"variableId": "iDJzzyzAY2jrapm3NwhGMz"
},
"logicalOperator": "AND"
},
"trueEdgeId": "iBPsFyBsPv6Rbdfo2QdJyi"
},
"5SLc4whZooZVUfr1bmTNSC": {
"id": "5SLc4whZooZVUfr1bmTNSC",
"blockId": "bu8whx817bJBG37FQrtD5dD",
"type": "Condition",
"options": {
"comparisons": {
"byId": {},
"allIds": []
},
"logicalOperator": "AND"
},
"trueEdgeId": "354PJ2jD5U3J2APqLsPJrp",
"falseEdgeId": "94bmeCLigEUUpWYw2xsAVB"
},
"sm1YcKTL9cQMCGywzo1wyBB": {
"id": "sm1YcKTL9cQMCGywzo1wyBB",
"blockId": "b59jwmEdwZUvJszV394x44u",
"type": "text",
"content": {
"html": "<div>You are older than 80</div>",
"richText": [
{ "type": "p", "children": [{ "text": "You are older than 80" }] }
],
"plainText": "You are older than 80"
"outgoingEdgeId": "r8LX7iuEXxjF5SW5dbS6qT"
}
},
"sb3o6J8Fybg6u8KuayKviJq": {
"id": "sb3o6J8Fybg6u8KuayKviJq",
"blockId": "baVF9HqhuSnLDZqY9eRPpcp",
"type": "text",
"content": {
"html": "<div>You are older than 20</div>",
"richText": [
{ "type": "p", "children": [{ "text": "You are older than 20" }] }
],
"title": "Block #1",
"graphCoordinates": { "x": 159, "y": 224 }
},
{
"id": "eMk84KvFM53sBxchTeackR",
"steps": [
{
"id": "s5hz7HQki66cwELvk2738MJ",
"blockId": "eMk84KvFM53sBxchTeackR",
"type": "Condition",
"items": [
{
"id": "56s4R9THRKeoJtBdKzEGLn",
"stepId": "s5hz7HQki66cwELvk2738MJ",
"type": 1,
"content": {
"comparisons": [
{
"id": "wxWqL7JuZhy9uwCZNPDJjM"
}
],
"logicalOperator": "AND"
},
"outgoingEdgeId": "nDjMjM11xPQF7c9Be6ukdY"
}
]
},
{
"id": "sv8uvEXgYWQNMfZWcdbfyCs",
"type": "Condition",
"items": [
{
"id": "ijYfW38tGhCMRrCtmR3bcr",
"type": 1,
"stepId": "sv8uvEXgYWQNMfZWcdbfyCs",
"content": {
"comparisons": [
{
"id": "3di6P3ypWf3XusgBLLHYBE"
}
],
"logicalOperator": "AND"
},
"outgoingEdgeId": "s1uVbzP1zMMJjsCguAfhGV"
}
],
"plainText": "You are older than 20"
"blockId": "eMk84KvFM53sBxchTeackR",
"outgoingEdgeId": "hVScFHNzToiEsMfYVv5AWZ"
}
},
"scKogEJSTq4kPeHRhwTTjit": {
"id": "scKogEJSTq4kPeHRhwTTjit",
"blockId": "b9aEH46RHuZWTdQwZJ6KBWR",
"type": "text",
"content": {
"html": "<div>You are younger than 20</div>",
"richText": [
{ "type": "p", "children": [{ "text": "You are younger than 20" }] }
],
"plainText": "You are younger than 20"
],
"title": "Block #2",
"graphCoordinates": { "x": 561, "y": 295 }
},
{
"id": "fGrzjahWecA8hoNMRrLSwn",
"steps": [
{
"id": "soZqPdPUjYAht9nHmVpba1Q",
"type": "text",
"blockId": "fGrzjahWecA8hoNMRrLSwn",
"content": {
"html": "<div>You are older than 80</div>",
"richText": [
{
"type": "p",
"children": [{ "text": "You are older than 80" }]
}
],
"plainText": "You are older than 80"
}
}
}
],
"title": "Block #3",
"graphCoordinates": { "x": 936, "y": 63 }
},
"allIds": [
"1A76iZBgXG7hvkG2koCxe4",
"srwUKaUFFmehppJ2ZDqp4xG",
"sxvzuo48GHi3AcAfmiFyYC1",
"ituVWW1AvQeVdFHTwsiVao",
"5SLc4whZooZVUfr1bmTNSC",
"sxvzuo48GHi3AcAfmiFyYC1",
"sm1YcKTL9cQMCGywzo1wyBB",
"sb3o6J8Fybg6u8KuayKviJq",
"scKogEJSTq4kPeHRhwTTjit"
]
},
"choiceItems": { "byId": {}, "allIds": [] },
"variables": {
"byId": {
"dEz689uVm8AxUM8TrbQd2t": {
"id": "dEz689uVm8AxUM8TrbQd2t",
"name": "Age"
}
{
"id": "49Jv45UJi9R3U4FuWS8R2c",
"steps": [
{
"id": "svipUacs1sDk9KDxzaGhnsG",
"type": "text",
"blockId": "49Jv45UJi9R3U4FuWS8R2c",
"content": {
"html": "<div>You are older than 20</div>",
"richText": [
{
"type": "p",
"children": [{ "text": "You are older than 20" }]
}
],
"plainText": "You are older than 20"
}
}
],
"title": "Block #4",
"graphCoordinates": { "x": 950, "y": 298 }
},
"allIds": ["dEz689uVm8AxUM8TrbQd2t"]
},
"edges": {
"byId": {
"jjNy2hYgrQgPS9EBMKA7MH": {
"from": {
"blockId": "2x83WHtEBkiv7pk7KgqJwZ",
"stepId": "1A76iZBgXG7hvkG2koCxe4"
},
"to": { "blockId": "bwga7RwqQWbowdHph27DM1N" },
"id": "jjNy2hYgrQgPS9EBMKA7MH"
{
"id": "fD28kefdySKK7XA7SyTozC",
"steps": [
{
"id": "spHJ7v9bDdVrFfuF2zg3YNR",
"type": "text",
"blockId": "fD28kefdySKK7XA7SyTozC",
"content": {
"html": "<div>You are younger than 20</div>",
"richText": [
{
"type": "p",
"children": [{ "text": "You are younger than 20" }]
}
],
"plainText": "You are younger than 20"
}
}
],
"title": "Block #5",
"graphCoordinates": { "x": 985, "y": 537 }
}
],
"variables": [{ "id": "iDJzzyzAY2jrapm3NwhGMz", "name": "Age" }],
"edges": [
{
"from": {
"blockId": "eMk84KvFM53sBxchTeackR",
"stepId": "s5hz7HQki66cwELvk2738MJ",
"itemId": "56s4R9THRKeoJtBdKzEGLn"
},
"iBPsFyBsPv6Rbdfo2QdJyi": {
"from": {
"blockId": "bu8whx817bJBG37FQrtD5dD",
"stepId": "ituVWW1AvQeVdFHTwsiVao",
"conditionType": "true"
},
"to": { "blockId": "b59jwmEdwZUvJszV394x44u" },
"id": "iBPsFyBsPv6Rbdfo2QdJyi"
},
"354PJ2jD5U3J2APqLsPJrp": {
"from": {
"blockId": "bu8whx817bJBG37FQrtD5dD",
"stepId": "5SLc4whZooZVUfr1bmTNSC",
"conditionType": "true"
},
"to": { "blockId": "baVF9HqhuSnLDZqY9eRPpcp" },
"id": "354PJ2jD5U3J2APqLsPJrp"
},
"94bmeCLigEUUpWYw2xsAVB": {
"from": {
"blockId": "bu8whx817bJBG37FQrtD5dD",
"stepId": "5SLc4whZooZVUfr1bmTNSC",
"conditionType": "false"
},
"to": { "blockId": "b9aEH46RHuZWTdQwZJ6KBWR" },
"id": "94bmeCLigEUUpWYw2xsAVB"
},
"7mcWaWohM9zGtLX8ZSnqFy": {
"from": {
"blockId": "bwga7RwqQWbowdHph27DM1N",
"stepId": "sxvzuo48GHi3AcAfmiFyYC1"
},
"to": { "blockId": "bu8whx817bJBG37FQrtD5dD" },
"id": "7mcWaWohM9zGtLX8ZSnqFy"
}
"to": { "blockId": "fGrzjahWecA8hoNMRrLSwn" },
"id": "nDjMjM11xPQF7c9Be6ukdY"
},
"allIds": [
"jjNy2hYgrQgPS9EBMKA7MH",
"iBPsFyBsPv6Rbdfo2QdJyi",
"354PJ2jD5U3J2APqLsPJrp",
"94bmeCLigEUUpWYw2xsAVB",
"7mcWaWohM9zGtLX8ZSnqFy"
]
},
{
"from": {
"blockId": "eMk84KvFM53sBxchTeackR",
"stepId": "sv8uvEXgYWQNMfZWcdbfyCs",
"itemId": "ijYfW38tGhCMRrCtmR3bcr"
},
"to": { "blockId": "49Jv45UJi9R3U4FuWS8R2c" },
"id": "s1uVbzP1zMMJjsCguAfhGV"
},
{
"from": {
"blockId": "eMk84KvFM53sBxchTeackR",
"stepId": "sv8uvEXgYWQNMfZWcdbfyCs"
},
"to": { "blockId": "fD28kefdySKK7XA7SyTozC" },
"id": "hVScFHNzToiEsMfYVv5AWZ"
},
{
"from": {
"blockId": "eh2ohNATnGg6RTdjG9h5kb",
"stepId": "ssyBKZve7bihSxUASYTruZA"
},
"to": { "blockId": "eMk84KvFM53sBxchTeackR" },
"id": "r8LX7iuEXxjF5SW5dbS6qT"
},
{
"from": {
"blockId": "cN46uqNAR3ohjrS8jHJ6xT",
"stepId": "nzijwLtLTAZfNNCN7kEpn5"
},
"to": { "blockId": "eh2ohNATnGg6RTdjG9h5kb" },
"id": "7wxB76VK81JsXMX9jU9dbQ"
}
],
"theme": {
"chat": {
"inputs": {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

View File

@ -1,101 +1,82 @@
{
"id": "ckymkfh1e00562z1a3fjoua3e",
"createdAt": "2022-01-20T06:00:51.458Z",
"updatedAt": "2022-01-20T06:00:51.458Z",
"id": "ckz8hnw7m10833no1ar12eov20",
"createdAt": "2022-02-04T14:14:21.394Z",
"updatedAt": "2022-02-04T14:14:21.394Z",
"name": "My typebot",
"ownerId": "ckymkff1100362z1a85juyoa8",
"ownerId": "ckz6t9iep0006k31a22j05fwq",
"publishedTypebotId": null,
"folderId": null,
"webhooks": { "byId": {}, "allIds": [] },
"blocks": {
"byId": {
"bsVJfEW7EZrUnAi9s5ev17": {
"id": "bsVJfEW7EZrUnAi9s5ev17",
"title": "Start",
"stepIds": ["9Ck2yveNjZNHhjyc4HCJAL"],
"graphCoordinates": { "x": 0, "y": 0 }
},
"bmdnpyvzopZ8YVfqsJY7Q8K": {
"id": "bmdnpyvzopZ8YVfqsJY7Q8K",
"title": "Block #2",
"graphCoordinates": { "x": 68, "y": 229 },
"stepIds": ["sas16Qqf4TmZEXSexmYpmSd"]
},
"bnsxmer7DD2R9DogoXTsvHJ": {
"id": "bnsxmer7DD2R9DogoXTsvHJ",
"title": "Block #3",
"graphCoordinates": { "x": 491, "y": 239 },
"stepIds": ["sqNGop2aYkXRvJqb9nGtFbD"]
}
"blocks": [
{
"id": "tdN9VXcdBWpuh6Gpaz3w4u",
"steps": [
{
"id": "cVRL5EuVruTK31SAaVCvNE",
"type": "start",
"label": "Start",
"blockId": "tdN9VXcdBWpuh6Gpaz3w4u",
"outgoingEdgeId": "jqZYCYGxaL8svJbM2h1QAn"
}
],
"title": "Start",
"graphCoordinates": { "x": 0, "y": 0 }
},
"allIds": [
"bsVJfEW7EZrUnAi9s5ev17",
"bmdnpyvzopZ8YVfqsJY7Q8K",
"bnsxmer7DD2R9DogoXTsvHJ"
]
},
"steps": {
"byId": {
"9Ck2yveNjZNHhjyc4HCJAL": {
"id": "9Ck2yveNjZNHhjyc4HCJAL",
"type": "start",
"label": "Start",
"blockId": "bsVJfEW7EZrUnAi9s5ev17",
"edgeId": "totLsWG6AQfcFT39CsZwDy"
},
"sas16Qqf4TmZEXSexmYpmSd": {
"id": "sas16Qqf4TmZEXSexmYpmSd",
"blockId": "bmdnpyvzopZ8YVfqsJY7Q8K",
"type": "choice input",
"options": { "itemIds": ["mAgynXh3zmkmWzNyPGVAcf"] }
},
"sqNGop2aYkXRvJqb9nGtFbD": {
"id": "sqNGop2aYkXRvJqb9nGtFbD",
"blockId": "bnsxmer7DD2R9DogoXTsvHJ",
"type": "Redirect",
"options": { "isNewTab": false }
}
{
"id": "vymPUjL9AcWpkg9PkUXovk",
"graphCoordinates": { "x": 685, "y": 194 },
"title": "Block #1",
"steps": [
{
"id": "sa8WhnrMyMjYCBMeozfYRoi",
"blockId": "vymPUjL9AcWpkg9PkUXovk",
"type": "Redirect",
"options": { "isNewTab": false }
}
]
},
"allIds": [
"9Ck2yveNjZNHhjyc4HCJAL",
"sas16Qqf4TmZEXSexmYpmSd",
"sqNGop2aYkXRvJqb9nGtFbD"
]
},
"choiceItems": {
"byId": {
"mAgynXh3zmkmWzNyPGVAcf": {
"id": "mAgynXh3zmkmWzNyPGVAcf",
"stepId": "sas16Qqf4TmZEXSexmYpmSd",
"content": "Go to URL",
"edgeId": "7KgqWB88ufzhDwzvwHuEbN"
}
},
"allIds": ["mAgynXh3zmkmWzNyPGVAcf"]
},
"variables": { "byId": {}, "allIds": [] },
"edges": {
"byId": {
"totLsWG6AQfcFT39CsZwDy": {
"from": {
"blockId": "bsVJfEW7EZrUnAi9s5ev17",
"stepId": "9Ck2yveNjZNHhjyc4HCJAL"
},
"to": { "blockId": "bmdnpyvzopZ8YVfqsJY7Q8K" },
"id": "totLsWG6AQfcFT39CsZwDy"
{
"id": "rEJ3PhFQc7diJ23jdoF6w7",
"graphCoordinates": { "x": 294, "y": 201 },
"title": "Block #2",
"steps": [
{
"id": "s7QRApVZmVFZgS53CNruBRz",
"blockId": "rEJ3PhFQc7diJ23jdoF6w7",
"type": "choice input",
"options": { "buttonLabel": "Send", "isMultipleChoice": false },
"items": [
{
"id": "5rWR3enRg6jZyFhtmgbPYo",
"stepId": "s7QRApVZmVFZgS53CNruBRz",
"type": 0,
"content": "Go to URL",
"outgoingEdgeId": "6aVDkPMEsadze2vf4mLiYt"
}
]
}
]
}
],
"variables": [],
"edges": [
{
"from": {
"blockId": "tdN9VXcdBWpuh6Gpaz3w4u",
"stepId": "cVRL5EuVruTK31SAaVCvNE"
},
"7KgqWB88ufzhDwzvwHuEbN": {
"from": {
"blockId": "bmdnpyvzopZ8YVfqsJY7Q8K",
"stepId": "sas16Qqf4TmZEXSexmYpmSd",
"nodeId": "mAgynXh3zmkmWzNyPGVAcf"
},
"to": { "blockId": "bnsxmer7DD2R9DogoXTsvHJ" },
"id": "7KgqWB88ufzhDwzvwHuEbN"
}
"to": { "blockId": "rEJ3PhFQc7diJ23jdoF6w7" },
"id": "jqZYCYGxaL8svJbM2h1QAn"
},
"allIds": ["totLsWG6AQfcFT39CsZwDy", "7KgqWB88ufzhDwzvwHuEbN"]
},
{
"from": {
"blockId": "rEJ3PhFQc7diJ23jdoF6w7",
"stepId": "s7QRApVZmVFZgS53CNruBRz",
"itemId": "5rWR3enRg6jZyFhtmgbPYo"
},
"to": { "blockId": "vymPUjL9AcWpkg9PkUXovk" },
"id": "6aVDkPMEsadze2vf4mLiYt"
}
],
"theme": {
"chat": {
"inputs": {

View File

@ -1,152 +1,125 @@
{
"id": "ckylrr3qh0030fn1a3nszzxiu",
"createdAt": "2022-01-19T16:38:05.225Z",
"updatedAt": "2022-01-19T16:38:05.225Z",
"id": "ckz8hovd511021no1apuuyjv7b",
"createdAt": "2022-02-04T14:15:06.953Z",
"updatedAt": "2022-02-04T14:15:06.953Z",
"name": "My typebot",
"ownerId": "ckylrpsmt0006fn1ah956d0z1",
"ownerId": "ckz6t9iep0006k31a22j05fwq",
"publishedTypebotId": null,
"folderId": null,
"webhooks": { "byId": {}, "allIds": [] },
"blocks": {
"byId": {
"kmUzhRFzSKjkaipYNcku9S": {
"id": "kmUzhRFzSKjkaipYNcku9S",
"title": "Start",
"stepIds": ["6XgP3JoCh7Y4M8GCX9DKym"],
"graphCoordinates": { "x": 0, "y": 0 }
},
"bwWRAaX5m6NZyZ9jjpXmWSb": {
"id": "bwWRAaX5m6NZyZ9jjpXmWSb",
"title": "Block #2",
"graphCoordinates": { "x": -21, "y": 221 },
"stepIds": ["sqMVMXeRYp4inLcRqej2Wac", "s8n3nJajsBaYqrFeRYVvcf6"]
},
"baUyUnNBxZzPe1z5PqE4NkD": {
"id": "baUyUnNBxZzPe1z5PqE4NkD",
"title": "Block #3",
"graphCoordinates": { "x": 375, "y": 280 },
"stepIds": ["shfL5ueQDuj2RPcJPWZGArT", "sugJ6xN3jFys1CjWfsxGhiJ"]
},
"bwkKNpJmAFCCLbZSnPnnLnR": {
"id": "bwkKNpJmAFCCLbZSnPnnLnR",
"title": "Block #4",
"graphCoordinates": { "x": 421, "y": 42 },
"stepIds": ["shR7ae3iNEvB6arCSu7wVFF"]
}
"blocks": [
{
"id": "jvbBpKifJ3ssvKQxPqhBiD",
"steps": [
{
"id": "rqecLJCZT7gP2JgBhRpb3a",
"type": "start",
"label": "Start",
"blockId": "jvbBpKifJ3ssvKQxPqhBiD",
"outgoingEdgeId": "qnD38SqA7sYEh7efPZgDoR"
}
],
"title": "Start",
"graphCoordinates": { "x": 0, "y": 0 }
},
"allIds": [
"kmUzhRFzSKjkaipYNcku9S",
"bwWRAaX5m6NZyZ9jjpXmWSb",
"baUyUnNBxZzPe1z5PqE4NkD",
"bwkKNpJmAFCCLbZSnPnnLnR"
]
},
"steps": {
"byId": {
"6XgP3JoCh7Y4M8GCX9DKym": {
"id": "6XgP3JoCh7Y4M8GCX9DKym",
"type": "start",
"label": "Start",
"blockId": "kmUzhRFzSKjkaipYNcku9S",
"edgeId": "ahfJ4fUuvxX2dcBMk876tf"
},
"s8n3nJajsBaYqrFeRYVvcf6": {
"id": "s8n3nJajsBaYqrFeRYVvcf6",
"blockId": "bwWRAaX5m6NZyZ9jjpXmWSb",
"type": "number input",
"edgeId": "dcJedLC7qsLtsmm1wbiFFc",
"options": {
"labels": {
"placeholder": "Type a number..."
{
"id": "roD9feCwx6jTDuVCThgzM2",
"graphCoordinates": { "x": 200, "y": 171 },
"title": "Block #1",
"steps": [
{
"id": "souEkLukHsYU9jrN2rAP7YT",
"blockId": "roD9feCwx6jTDuVCThgzM2",
"type": "text",
"content": {
"html": "<div>How old are you?</div>",
"richText": [
{ "type": "p", "children": [{ "text": "How old are you?" }] }
],
"plainText": "How old are you?"
}
},
{
"id": "skfn5McXVrTNpi2e62RtEEY",
"blockId": "roD9feCwx6jTDuVCThgzM2",
"type": "number input",
"options": {
"labels": { "button": "Send", "placeholder": "Type a number..." }
},
"outgoingEdgeId": "5ZYDLyR1CUF6B8ESHrFXwK"
}
]
},
{
"id": "tFFeBrrWxY4tvr11C8rjTw",
"graphCoordinates": { "x": 526, "y": 283 },
"title": "Block #2",
"steps": [
{
"id": "spgqbyvunY91Ct5kVgeLLkz",
"blockId": "tFFeBrrWxY4tvr11C8rjTw",
"type": "Set variable",
"options": {}
},
{
"id": "skeKC71L8C8wpfeuV4TTLCD",
"blockId": "tFFeBrrWxY4tvr11C8rjTw",
"type": "Set variable",
"options": {},
"outgoingEdgeId": "7A4BD2vJT87grt3xFw86bn"
}
]
},
{
"id": "k6jFuKuSwy29LVwKxMWasv",
"graphCoordinates": { "x": 691, "y": 35 },
"title": "Block #3",
"steps": [
{
"id": "svpmd4uNoAXpoKyfYuuXTQe",
"blockId": "k6jFuKuSwy29LVwKxMWasv",
"type": "text",
"content": {
"html": "<div>Total: {{Total}}</div><div>Custom var: {{Custom var}}</div>",
"richText": [
{ "type": "p", "children": [{ "text": "Total: {{Total}}" }] },
{
"type": "p",
"children": [{ "text": "Custom var: {{Custom var}}" }]
}
],
"plainText": "Total: {{Total}}Custom var: {{Custom var}}"
}
}
]
}
],
"variables": [],
"edges": [
{
"from": {
"blockId": "jvbBpKifJ3ssvKQxPqhBiD",
"stepId": "rqecLJCZT7gP2JgBhRpb3a"
},
"sqMVMXeRYp4inLcRqej2Wac": {
"id": "sqMVMXeRYp4inLcRqej2Wac",
"blockId": "bwWRAaX5m6NZyZ9jjpXmWSb",
"type": "text",
"content": {
"html": "<div>How old are you?</div>",
"richText": [
{ "type": "p", "children": [{ "text": "How old are you?" }] }
],
"plainText": "How old are you?"
}
},
"shfL5ueQDuj2RPcJPWZGArT": {
"id": "shfL5ueQDuj2RPcJPWZGArT",
"blockId": "baUyUnNBxZzPe1z5PqE4NkD",
"type": "Set variable",
"options": {}
},
"sugJ6xN3jFys1CjWfsxGhiJ": {
"id": "sugJ6xN3jFys1CjWfsxGhiJ",
"blockId": "baUyUnNBxZzPe1z5PqE4NkD",
"type": "Set variable",
"edgeId": "sA5gvCVVBVYdGsdeSGF5ei",
"options": {}
},
"shR7ae3iNEvB6arCSu7wVFF": {
"id": "shR7ae3iNEvB6arCSu7wVFF",
"blockId": "bwkKNpJmAFCCLbZSnPnnLnR",
"type": "text",
"content": {
"html": "<div>Total: {{Total}}</div><div>Custom var: {{Custom var}}</div>",
"richText": [
{ "type": "p", "children": [{ "text": "Total: {{Total}}" }] },
{
"type": "p",
"children": [{ "text": "Custom var: {{Custom var}}" }]
}
],
"plainText": "Total: {{Total}}Custom var: {{Custom var}}"
}
}
"to": { "blockId": "roD9feCwx6jTDuVCThgzM2" },
"id": "qnD38SqA7sYEh7efPZgDoR"
},
"allIds": [
"6XgP3JoCh7Y4M8GCX9DKym",
"s8n3nJajsBaYqrFeRYVvcf6",
"sqMVMXeRYp4inLcRqej2Wac",
"shfL5ueQDuj2RPcJPWZGArT",
"sugJ6xN3jFys1CjWfsxGhiJ",
"shR7ae3iNEvB6arCSu7wVFF"
]
},
"choiceItems": { "byId": {}, "allIds": [] },
"variables": { "byId": {}, "allIds": [] },
"edges": {
"byId": {
"ahfJ4fUuvxX2dcBMk876tf": {
"from": {
"blockId": "kmUzhRFzSKjkaipYNcku9S",
"stepId": "6XgP3JoCh7Y4M8GCX9DKym"
},
"to": { "blockId": "bwWRAaX5m6NZyZ9jjpXmWSb" },
"id": "ahfJ4fUuvxX2dcBMk876tf"
{
"from": {
"blockId": "roD9feCwx6jTDuVCThgzM2",
"stepId": "skfn5McXVrTNpi2e62RtEEY"
},
"dcJedLC7qsLtsmm1wbiFFc": {
"from": {
"blockId": "bwWRAaX5m6NZyZ9jjpXmWSb",
"stepId": "s8n3nJajsBaYqrFeRYVvcf6"
},
"to": { "blockId": "baUyUnNBxZzPe1z5PqE4NkD" },
"id": "dcJedLC7qsLtsmm1wbiFFc"
},
"sA5gvCVVBVYdGsdeSGF5ei": {
"from": {
"blockId": "baUyUnNBxZzPe1z5PqE4NkD",
"stepId": "sugJ6xN3jFys1CjWfsxGhiJ"
},
"to": { "blockId": "bwkKNpJmAFCCLbZSnPnnLnR" },
"id": "sA5gvCVVBVYdGsdeSGF5ei"
}
"to": { "blockId": "tFFeBrrWxY4tvr11C8rjTw" },
"id": "5ZYDLyR1CUF6B8ESHrFXwK"
},
"allIds": [
"ahfJ4fUuvxX2dcBMk876tf",
"dcJedLC7qsLtsmm1wbiFFc",
"sA5gvCVVBVYdGsdeSGF5ei"
]
},
{
"from": {
"blockId": "tFFeBrrWxY4tvr11C8rjTw",
"stepId": "skeKC71L8C8wpfeuV4TTLCD"
},
"to": { "blockId": "k6jFuKuSwy29LVwKxMWasv" },
"id": "7A4BD2vJT87grt3xFw86bn"
}
],
"theme": {
"chat": {
"inputs": {

View File

@ -1,158 +1,126 @@
{
"id": "ckylsr69q0240z31afjhedyxo",
"createdAt": "2022-01-19T17:06:08.126Z",
"updatedAt": "2022-01-19T17:06:08.126Z",
"id": "ckz8hrq1i11165no1artywpjvb",
"createdAt": "2022-02-04T14:17:20.022Z",
"updatedAt": "2022-02-04T14:17:20.022Z",
"name": "My typebot",
"ownerId": "ckylsr4fi0220z31apbinpy9d",
"ownerId": "ckz6t9iep0006k31a22j05fwq",
"publishedTypebotId": null,
"folderId": null,
"webhooks": { "byId": {}, "allIds": [] },
"blocks": {
"byId": {
"weeBMMXxNKwEonMfDX8Z5k": {
"id": "weeBMMXxNKwEonMfDX8Z5k",
"title": "Start",
"stepIds": ["nEXiHesKXRQJhQbaWfbDVH"],
"graphCoordinates": { "x": 0, "y": 0 }
},
"bg2MBdkf6y7g6WsbqAP3eAT": {
"id": "bg2MBdkf6y7g6WsbqAP3eAT",
"title": "Block #2",
"graphCoordinates": { "x": 120, "y": 221 },
"stepIds": ["sqzMjp1Ba4jTL3A6iJehC6C"]
},
"bj5BE1yKPzFFhvRk6cMnmsQ": {
"id": "bj5BE1yKPzFFhvRk6cMnmsQ",
"title": "Block #3",
"graphCoordinates": { "x": 529, "y": 130 },
"stepIds": ["s8zPdEj96z8EoJG2zBqgoE8"]
},
"bdET8zLFQbwpTaAmi4wmezE": {
"id": "bdET8zLFQbwpTaAmi4wmezE",
"title": "Block #4",
"graphCoordinates": { "x": 538, "y": 386 },
"stepIds": ["sjZ28izS5e3VjNynFKT2F7E"]
}
"blocks": [
{
"id": "3EgW9xiicKuiCNycEY2huP",
"steps": [
{
"id": "bHS7nGbziYUwD27tKANQY6",
"type": "start",
"label": "Start",
"blockId": "3EgW9xiicKuiCNycEY2huP",
"outgoingEdgeId": "9LViRZxY8G6iswJrE4YLsq"
}
],
"title": "Start",
"graphCoordinates": { "x": 0, "y": 0 }
},
"allIds": [
"weeBMMXxNKwEonMfDX8Z5k",
"bg2MBdkf6y7g6WsbqAP3eAT",
"bj5BE1yKPzFFhvRk6cMnmsQ",
"bdET8zLFQbwpTaAmi4wmezE"
]
},
"steps": {
"byId": {
"nEXiHesKXRQJhQbaWfbDVH": {
"id": "nEXiHesKXRQJhQbaWfbDVH",
"type": "start",
"label": "Start",
"blockId": "weeBMMXxNKwEonMfDX8Z5k",
"edgeId": "uh95dDpiiZdYxpPFsUqZEg"
},
"sqzMjp1Ba4jTL3A6iJehC6C": {
"id": "sqzMjp1Ba4jTL3A6iJehC6C",
"blockId": "bg2MBdkf6y7g6WsbqAP3eAT",
"type": "choice input",
"options": {
"itemIds": [
"bWrsg18ucP9cdtFKhzgHbF",
"p7Z57shv7p79KiwAtdi8Y3",
"wjMRa2GBBnME9bEiNi6XgP"
]
},
"edgeId": "asT5shwJqDQ67qPuydR4gy"
},
"s8zPdEj96z8EoJG2zBqgoE8": {
"id": "s8zPdEj96z8EoJG2zBqgoE8",
"blockId": "bj5BE1yKPzFFhvRk6cMnmsQ",
"type": "text",
"content": {
"html": "<div>I love burgers!</div>",
"richText": [
{ "type": "p", "children": [{ "text": "I love burgers!" }] }
{
"id": "bs9JCJfixRTv8W2imPAoyX",
"graphCoordinates": { "x": 392, "y": 180 },
"title": "Block #1",
"steps": [
{
"id": "sqcez9cUVbPvaFL4rQsUwUk",
"blockId": "bs9JCJfixRTv8W2imPAoyX",
"type": "choice input",
"options": { "buttonLabel": "Send", "isMultipleChoice": false },
"items": [
{
"id": "2jCerpszvvbmhUS8FXkKG9",
"stepId": "sqcez9cUVbPvaFL4rQsUwUk",
"type": 0,
"content": "Burgers",
"outgoingEdgeId": "aTS7nwxhRdFN8NwAXE2oSq"
},
{
"stepId": "sqcez9cUVbPvaFL4rQsUwUk",
"type": 0,
"id": "vP4HWCYkeRL6egk3yjCCmg",
"content": "Hot dogs"
},
{
"stepId": "sqcez9cUVbPvaFL4rQsUwUk",
"type": 0,
"id": "hhveB5JSxJ8X9N66LFaUfe",
"content": "Carpaccio"
}
],
"plainText": "I love burgers!"
"outgoingEdgeId": "8FaF38WfM7PiLJLS5z6vQe"
}
},
"sjZ28izS5e3VjNynFKT2F7E": {
"id": "sjZ28izS5e3VjNynFKT2F7E",
"blockId": "bdET8zLFQbwpTaAmi4wmezE",
"type": "text",
"content": {
"html": "<div>Cool!</div>",
"richText": [{ "type": "p", "children": [{ "text": "Cool!" }] }],
"plainText": "Cool!"
]
},
{
"id": "ih574JsgYCSSt3t77DH9gp",
"graphCoordinates": { "x": 770, "y": 105 },
"title": "Block #2",
"steps": [
{
"id": "s9hdG689cjRzmTdb5hMN83q",
"blockId": "ih574JsgYCSSt3t77DH9gp",
"type": "text",
"content": {
"html": "<div>I love burgers!</div>",
"richText": [
{ "type": "p", "children": [{ "text": "I love burgers!" }] }
],
"plainText": "I love burgers!"
}
}
}
]
},
"allIds": [
"nEXiHesKXRQJhQbaWfbDVH",
"sqzMjp1Ba4jTL3A6iJehC6C",
"s8zPdEj96z8EoJG2zBqgoE8",
"sjZ28izS5e3VjNynFKT2F7E"
]
},
"choiceItems": {
"byId": {
"bWrsg18ucP9cdtFKhzgHbF": {
"id": "bWrsg18ucP9cdtFKhzgHbF",
"stepId": "sqzMjp1Ba4jTL3A6iJehC6C",
"content": "Burgers",
"edgeId": "jfR6AUWt9b4dhjnUHXB179"
{
"id": "5bMwu6Wv79avgdz3TKjVXr",
"graphCoordinates": { "x": 766, "y": 311 },
"title": "Block #3",
"steps": [
{
"id": "s3Zwr8m3Nm2BwGxNNCu4n7N",
"blockId": "5bMwu6Wv79avgdz3TKjVXr",
"type": "text",
"content": {
"html": "<div>Cool!</div>",
"richText": [{ "type": "p", "children": [{ "text": "Cool!" }] }],
"plainText": "Cool!"
}
}
]
}
],
"variables": [],
"edges": [
{
"from": {
"blockId": "3EgW9xiicKuiCNycEY2huP",
"stepId": "bHS7nGbziYUwD27tKANQY6"
},
"p7Z57shv7p79KiwAtdi8Y3": {
"id": "p7Z57shv7p79KiwAtdi8Y3",
"stepId": "sqzMjp1Ba4jTL3A6iJehC6C",
"content": "Hot dogs"
},
"wjMRa2GBBnME9bEiNi6XgP": {
"id": "wjMRa2GBBnME9bEiNi6XgP",
"stepId": "sqzMjp1Ba4jTL3A6iJehC6C",
"content": "Carpaccio"
}
"to": { "blockId": "bs9JCJfixRTv8W2imPAoyX" },
"id": "9LViRZxY8G6iswJrE4YLsq"
},
"allIds": [
"bWrsg18ucP9cdtFKhzgHbF",
"p7Z57shv7p79KiwAtdi8Y3",
"wjMRa2GBBnME9bEiNi6XgP"
]
},
"variables": { "byId": {}, "allIds": [] },
"edges": {
"byId": {
"uh95dDpiiZdYxpPFsUqZEg": {
"from": {
"blockId": "weeBMMXxNKwEonMfDX8Z5k",
"stepId": "nEXiHesKXRQJhQbaWfbDVH"
},
"to": { "blockId": "bg2MBdkf6y7g6WsbqAP3eAT" },
"id": "uh95dDpiiZdYxpPFsUqZEg"
{
"from": {
"blockId": "bs9JCJfixRTv8W2imPAoyX",
"stepId": "sqcez9cUVbPvaFL4rQsUwUk",
"itemId": "2jCerpszvvbmhUS8FXkKG9"
},
"jfR6AUWt9b4dhjnUHXB179": {
"from": {
"blockId": "bg2MBdkf6y7g6WsbqAP3eAT",
"stepId": "sqzMjp1Ba4jTL3A6iJehC6C",
"nodeId": "bWrsg18ucP9cdtFKhzgHbF"
},
"to": { "blockId": "bj5BE1yKPzFFhvRk6cMnmsQ" },
"id": "jfR6AUWt9b4dhjnUHXB179"
},
"asT5shwJqDQ67qPuydR4gy": {
"from": {
"blockId": "bg2MBdkf6y7g6WsbqAP3eAT",
"stepId": "sqzMjp1Ba4jTL3A6iJehC6C"
},
"to": { "blockId": "bdET8zLFQbwpTaAmi4wmezE" },
"id": "asT5shwJqDQ67qPuydR4gy"
}
"to": { "blockId": "ih574JsgYCSSt3t77DH9gp" },
"id": "aTS7nwxhRdFN8NwAXE2oSq"
},
"allIds": [
"uh95dDpiiZdYxpPFsUqZEg",
"jfR6AUWt9b4dhjnUHXB179",
"asT5shwJqDQ67qPuydR4gy"
]
},
{
"from": {
"blockId": "bs9JCJfixRTv8W2imPAoyX",
"stepId": "sqcez9cUVbPvaFL4rQsUwUk"
},
"to": { "blockId": "5bMwu6Wv79avgdz3TKjVXr" },
"id": "8FaF38WfM7PiLJLS5z6vQe"
}
],
"theme": {
"chat": {
"inputs": {

View File

@ -1,140 +1,94 @@
{
"id": "bdFW2HHjMoEFmqHtFre9Xi8",
"createdAt": "2022-01-21T07:55:14.727Z",
"updatedAt": "2022-01-21T07:55:14.727Z",
"id": "ckz8huhvo11297no1a7b4zf3ce",
"createdAt": "2022-02-04T14:19:29.412Z",
"updatedAt": "2022-02-04T14:19:29.412Z",
"name": "My typebot",
"ownerId": "user2",
"ownerId": "ckz6t9iep0006k31a22j05fwq",
"publishedTypebotId": null,
"folderId": null,
"blocks": {
"byId": {
"3kH2sUjVThQDWmqdoKnGk5": {
"id": "3kH2sUjVThQDWmqdoKnGk5",
"title": "Start",
"stepIds": ["oxTsU2C1RX5QHuyY8qjHAM"],
"graphCoordinates": { "x": 42, "y": 13 }
},
"bdFW2HHjMoEFmqHtFre9Xi8": {
"id": "bdFW2HHjMoEFmqHtFre9Xi8",
"title": "Block #2",
"stepIds": ["sgkADMK25y9P9V3vjwjBaac", "ssEiEECKSFkA44dGDceHxKw"],
"graphCoordinates": { "x": 121, "y": 227 }
},
"bhKHKi1SQb5woZEy1y4fNsJ": {
"id": "bhKHKi1SQb5woZEy1y4fNsJ",
"title": "Block #3",
"graphCoordinates": { "x": 605, "y": 454 },
"stepIds": ["sseUQEWCMdiZquk8EbxHYtk"]
}
},
"allIds": [
"3kH2sUjVThQDWmqdoKnGk5",
"bdFW2HHjMoEFmqHtFre9Xi8",
"bhKHKi1SQb5woZEy1y4fNsJ"
]
},
"steps": {
"byId": {
"oxTsU2C1RX5QHuyY8qjHAM": {
"id": "oxTsU2C1RX5QHuyY8qjHAM",
"type": "start",
"label": "Start",
"edgeId": "25yX9DnQgdafpdAjfAu5Fp",
"blockId": "3kH2sUjVThQDWmqdoKnGk5"
},
"sgkADMK25y9P9V3vjwjBaac": {
"id": "sgkADMK25y9P9V3vjwjBaac",
"type": "text",
"blockId": "bdFW2HHjMoEFmqHtFre9Xi8",
"content": {
"html": "<div>Ready?</div>",
"richText": [{ "type": "p", "children": [{ "text": "Ready?" }] }],
"plainText": "Ready?"
"blocks": [
{
"id": "teepNancm8TLj1qYhaTYAf",
"steps": [
{
"id": "8fG3wDsExSSkq5ekUMzWVY",
"type": "start",
"label": "Start",
"blockId": "teepNancm8TLj1qYhaTYAf",
"outgoingEdgeId": "pj6fgTAjarwBq2jVgMgYoK"
}
},
"ssEiEECKSFkA44dGDceHxKw": {
"id": "ssEiEECKSFkA44dGDceHxKw",
"type": "choice input",
"edgeId": "6e4Sbp8pGTvBQYtCk2qXbN",
"blockId": "bdFW2HHjMoEFmqHtFre9Xi8",
"options": { "itemIds": ["q69Ex7LacPrH9QUMeosRnB"] }
},
"sseUQEWCMdiZquk8EbxHYtk": {
"id": "sseUQEWCMdiZquk8EbxHYtk",
"blockId": "bhKHKi1SQb5woZEy1y4fNsJ",
"type": "text input"
}
],
"title": "Start",
"graphCoordinates": { "x": 0, "y": 0 }
},
"allIds": [
"oxTsU2C1RX5QHuyY8qjHAM",
"sgkADMK25y9P9V3vjwjBaac",
"ssEiEECKSFkA44dGDceHxKw",
"sseUQEWCMdiZquk8EbxHYtk"
]
},
"choiceItems": {
"byId": {
"q69Ex7LacPrH9QUMeosRnB": {
"id": "q69Ex7LacPrH9QUMeosRnB",
"stepId": "ssEiEECKSFkA44dGDceHxKw",
"content": "Go"
}
},
"allIds": ["q69Ex7LacPrH9QUMeosRnB"]
},
"variables": {
"byId": {
"4tvkRmf32wiTsXrYoqyhfr": {
"id": "4tvkRmf32wiTsXrYoqyhfr",
"name": "secret 2"
},
"jEg1FvkCU5S5owNAxXFsHL": {
"id": "jEg1FvkCU5S5owNAxXFsHL",
"name": "secret 3"
},
"oASkBtoLqkYNqeakcjZH4L": {
"id": "oASkBtoLqkYNqeakcjZH4L",
"name": "secret 1"
},
"rEoE1ehHzgx8X3d3UPGDHg": {
"id": "rEoE1ehHzgx8X3d3UPGDHg",
"name": "secret 4"
}
},
"allIds": [
"oASkBtoLqkYNqeakcjZH4L",
"4tvkRmf32wiTsXrYoqyhfr",
"jEg1FvkCU5S5owNAxXFsHL",
"rEoE1ehHzgx8X3d3UPGDHg"
]
},
"webhooks": {
"byId": {
"4h4Kk3Q1qGy7gFzpZtWVpU": { "id": "4h4Kk3Q1qGy7gFzpZtWVpU", "url": "" }
},
"allIds": ["4h4Kk3Q1qGy7gFzpZtWVpU"]
},
"edges": {
"byId": {
"25yX9DnQgdafpdAjfAu5Fp": {
"id": "25yX9DnQgdafpdAjfAu5Fp",
"to": { "blockId": "bdFW2HHjMoEFmqHtFre9Xi8" },
"from": {
"stepId": "oxTsU2C1RX5QHuyY8qjHAM",
"blockId": "3kH2sUjVThQDWmqdoKnGk5"
}
},
"6e4Sbp8pGTvBQYtCk2qXbN": {
"from": {
"blockId": "bdFW2HHjMoEFmqHtFre9Xi8",
"stepId": "ssEiEECKSFkA44dGDceHxKw"
{
"id": "6Dj1i7LeM3qXg5SKMhMyo1",
"graphCoordinates": { "x": 315, "y": 137 },
"title": "Block #1",
"steps": [
{
"id": "swUB2pSmvcv3NC7ySzskRpL",
"blockId": "6Dj1i7LeM3qXg5SKMhMyo1",
"type": "text",
"content": {
"html": "<div>Ready?</div>",
"richText": [{ "type": "p", "children": [{ "text": "Ready?" }] }],
"plainText": "Ready?"
}
},
"to": { "blockId": "bhKHKi1SQb5woZEy1y4fNsJ" },
"id": "6e4Sbp8pGTvBQYtCk2qXbN"
}
{
"id": "sc7ZYFtHVegJUA8c5K3gghi",
"blockId": "6Dj1i7LeM3qXg5SKMhMyo1",
"type": "choice input",
"options": { "buttonLabel": "Send", "isMultipleChoice": false },
"items": [
{
"id": "nTjur4kxyL473XTbAb4Fak",
"stepId": "sc7ZYFtHVegJUA8c5K3gghi",
"type": 0,
"content": "Go"
}
],
"outgoingEdgeId": "uAsACqSmud99zmyCABWDwr"
}
]
},
"allIds": ["25yX9DnQgdafpdAjfAu5Fp", "6e4Sbp8pGTvBQYtCk2qXbN"]
},
{
"id": "2TR5xAQobKAg8hbArfh5br",
"graphCoordinates": { "x": 760, "y": 299 },
"title": "Block #2",
"steps": [
{
"id": "s4xokHybra1jmZsWGVmza1K",
"blockId": "2TR5xAQobKAg8hbArfh5br",
"type": "text input",
"options": {
"isLong": false,
"labels": { "button": "Send", "placeholder": "Type your answer..." }
}
}
]
}
],
"variables": [],
"edges": [
{
"from": {
"blockId": "teepNancm8TLj1qYhaTYAf",
"stepId": "8fG3wDsExSSkq5ekUMzWVY"
},
"to": { "blockId": "6Dj1i7LeM3qXg5SKMhMyo1" },
"id": "pj6fgTAjarwBq2jVgMgYoK"
},
{
"from": {
"blockId": "6Dj1i7LeM3qXg5SKMhMyo1",
"stepId": "sc7ZYFtHVegJUA8c5K3gghi"
},
"to": { "blockId": "2TR5xAQobKAg8hbArfh5br" },
"id": "uAsACqSmud99zmyCABWDwr"
}
],
"theme": {
"chat": {
"inputs": {

View File

@ -1,6 +1,10 @@
import { chromium, FullConfig, Page } from '@playwright/test'
import { existsSync } from 'fs'
import { setupDatabase, teardownDatabase } from './services/database'
import {
getSignedInUser,
setupDatabase,
teardownDatabase,
} from './services/database'
// eslint-disable-next-line @typescript-eslint/no-var-requires
require('dotenv').config({ path: '.env' })
@ -8,10 +12,15 @@ require('dotenv').config({ path: '.env' })
async function globalSetup(config: FullConfig) {
const { baseURL } = config.projects[0].use
if (!baseURL) throw new Error('baseURL is missing')
if (!process.env.GITHUB_EMAIL || !process.env.GITHUB_PASSWORD)
throw new Error(
'GITHUB_EMAIL or GITHUB_PASSWORD are missing in the environment. They are required to log in.'
)
await teardownDatabase()
if (!existsSync('./playwright/authenticatedState.json')) {
const signedInUser = await getSignedInUser(process.env.GITHUB_EMAIL as string)
if (!signedInUser || !existsSync('./playwright/authenticatedState.json')) {
const browser = await chromium.launch()
const page = await browser.newPage()
await signIn(page)
@ -24,14 +33,13 @@ async function globalSetup(config: FullConfig) {
}
const signIn = async (page: Page) => {
if (!process.env.GITHUB_EMAIL || !process.env.GITHUB_PASSWORD)
throw new Error(
'GITHUB_EMAIL or GITHUB_PASSWORD are missing in the environment. They are required to log in.'
)
await page.goto(`${process.env.PLAYWRIGHT_BUILDER_TEST_BASE_URL}/signin`)
await page.click('text=Continue with GitHub')
await page.fill('input[name="login"]', process.env.GITHUB_EMAIL)
await page.fill('input[name="password"]', process.env.GITHUB_PASSWORD)
await page.fill('input[name="login"]', process.env.GITHUB_EMAIL as string)
await page.fill(
'input[name="password"]',
process.env.GITHUB_PASSWORD as string
)
await page.press('input[name="password"]', 'Enter')
try {
await page.locator('text=Authorize baptisteArno').click({ timeout: 3000 })

View File

@ -1,6 +1,8 @@
import {
Block,
defaultSettings,
defaultTheme,
PublicBlock,
PublicTypebot,
Step,
Typebot,
@ -23,7 +25,7 @@ export const setupDatabase = async (userEmail: string) => {
return createCredentials()
}
const getSignedInUser = (email: string) =>
export const getSignedInUser = (email: string) =>
prisma.user.findFirst({ where: { email } })
export const createTypebots = async (partialTypebots: Partial<Typebot>[]) => {
@ -108,18 +110,24 @@ const parseTypebotToPublicTypebot = (
typebot: Typebot
): PublicTypebot => ({
id,
blocks: typebot.blocks,
steps: typebot.steps,
name: typebot.name,
blocks: parseBlocksToPublicBlocks(typebot.blocks),
typebotId: typebot.id,
theme: typebot.theme,
settings: typebot.settings,
publicId: typebot.publicId,
choiceItems: typebot.choiceItems,
variables: typebot.variables,
edges: typebot.edges,
})
const parseBlocksToPublicBlocks = (blocks: Block[]): PublicBlock[] =>
blocks.map((b) => ({
...b,
steps: b.steps.map((s) =>
'webhook' in s ? { ...s, webhook: s.webhook.id } : s
),
}))
const parseTestTypebot = (partialTypebot: Partial<Typebot>): Typebot => ({
id: partialTypebot.id ?? 'typebot',
folderId: null,
@ -128,82 +136,54 @@ const parseTestTypebot = (partialTypebot: Partial<Typebot>): Typebot => ({
theme: defaultTheme,
settings: defaultSettings,
createdAt: new Date(),
choiceItems: partialTypebot.choiceItems ?? {
byId: {
choice1: {
id: 'choice1',
stepId: 'step1',
},
},
allIds: ['choice1'],
},
publicId: null,
publishedTypebotId: null,
updatedAt: new Date(),
variables: { byId: {}, allIds: [] },
webhooks: { byId: {}, allIds: [] },
edges: {
byId: {
edge1: {
id: 'edge1',
from: { blockId: 'block0', stepId: 'step0' },
to: { blockId: 'block1' },
},
},
allIds: ['edge1'],
},
variables: [],
...partialTypebot,
blocks: {
byId: {
block0: {
id: 'block0',
title: 'Block #0',
stepIds: ['step0'],
graphCoordinates: { x: 0, y: 0 },
},
...partialTypebot.blocks?.byId,
edges: [
{
id: 'edge1',
from: { blockId: 'block0', stepId: 'step0' },
to: { blockId: 'block1' },
},
allIds: ['block0', ...(partialTypebot.blocks?.allIds ?? [])],
},
steps: {
byId: {
step0: {
id: 'step0',
type: 'start',
blockId: 'block0',
label: 'Start',
edgeId: 'edge1',
},
...partialTypebot.steps?.byId,
],
blocks: [
{
id: 'block0',
title: 'Block #0',
steps: [
{
id: 'step0',
type: 'start',
blockId: 'block0',
label: 'Start',
outgoingEdgeId: 'edge1',
},
],
graphCoordinates: { x: 0, y: 0 },
},
allIds: ['step0', ...(partialTypebot.steps?.allIds ?? [])],
},
...(partialTypebot.blocks ?? []),
],
})
export const parseDefaultBlockWithStep = (
step: Partial<Step>
): Pick<Typebot, 'blocks' | 'steps'> => ({
blocks: {
byId: {
block1: {
graphCoordinates: { x: 200, y: 200 },
id: 'block1',
stepIds: ['step1'],
title: 'Block #1',
},
): Pick<Typebot, 'blocks'> => ({
blocks: [
{
graphCoordinates: { x: 200, y: 200 },
id: 'block1',
steps: [
{
id: 'step1',
blockId: 'block1',
...step,
} as Step,
],
title: 'Block #1',
},
allIds: ['block1'],
},
steps: {
byId: {
step1: {
id: 'step1',
blockId: 'block1',
...step,
} as Step,
},
allIds: ['step1'],
},
],
})
export const importTypebotInDatabase = (

View File

@ -6,7 +6,11 @@ import { updateUser } from '../services/database'
test.describe('Account page', () => {
test('should edit user info properly', async ({ page }) => {
await updateUser({ name: 'Default Name' })
await updateUser({
name: 'Default Name',
image:
'https://images.unsplash.com/photo-1521119989659-a83eee488004?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1323&q=80',
})
await page.goto('/account')
const saveButton = page.locator('button:has-text("Save")')
await expect(saveButton).toBeHidden()

View File

@ -24,22 +24,22 @@ test.describe('Text bubble step', () => {
await page.click('[data-testid="bold-button"]')
await page.type('div[role="textbox"]', 'Bold text')
await page.press('div[role="textbox"]', 'Enter')
await page.press('div[role="textbox"]', 'Shift+Enter')
await page.click('[data-testid="bold-button"]')
await page.click('[data-testid="italic-button"]')
await page.type('div[role="textbox"]', 'Italic text')
await page.press('div[role="textbox"]', 'Enter')
await page.press('div[role="textbox"]', 'Shift+Enter')
await page.click('[data-testid="underline-button"]')
await page.click('[data-testid="italic-button"]')
await page.type('div[role="textbox"]', 'Underlined text')
await page.press('div[role="textbox"]', 'Enter')
await page.press('div[role="textbox"]', 'Shift+Enter')
await page.click('[data-testid="bold-button"]')
await page.click('[data-testid="italic-button"]')
await page.type('div[role="textbox"]', 'Everything text')
await page.press('div[role="textbox"]', 'Enter')
await page.press('div[role="textbox"]', 'Shift+Enter')
await page.click('text=Preview')
await expect(

View File

@ -1,9 +1,97 @@
import test, { expect } from '@playwright/test'
import { createTypebots, parseDefaultBlockWithStep } from '../services/database'
import test, { expect, Page } from '@playwright/test'
import {
createTypebots,
importTypebotInDatabase,
parseDefaultBlockWithStep,
} from '../services/database'
import { defaultTextInputOptions, InputStepType } from 'models'
import { generate } from 'short-uuid'
import path from 'path'
test.describe('Editor', () => {
test.describe.parallel('Editor', () => {
test('Edges connection should work', async ({ page }) => {
const typebotId = generate()
await createTypebots([
{
id: typebotId,
},
])
await page.goto(`/typebots/${typebotId}/edit`)
await page.dragAndDrop('text=Button', '#editor-container', {
targetPosition: { x: 800, y: 400 },
})
await page.dragAndDrop(
'text=Text >> nth=0',
'[data-testid="block"] >> nth=1',
{
targetPosition: { x: 100, y: 50 },
}
)
await page.dragAndDrop(
'[data-testid="endpoint"]',
'[data-testid="block"] >> nth=1',
{ targetPosition: { x: 100, y: 10 } }
)
await expect(page.locator('[data-testid="edge"]')).toBeVisible()
await page.dragAndDrop(
'[data-testid="endpoint"]',
'[data-testid="step"] >> nth=1'
)
await expect(page.locator('[data-testid="edge"]')).toBeVisible()
await page.dragAndDrop('text=Date', '#editor-container', {
targetPosition: { x: 1000, y: 800 },
})
await page.dragAndDrop(
'[data-testid="endpoint"] >> nth=2',
'[data-testid="block"] >> nth=2',
{
targetPosition: { x: 100, y: 10 },
}
)
await expect(page.locator('[data-testid="edge"] >> nth=0')).toBeVisible()
await expect(page.locator('[data-testid="edge"] >> nth=1')).toBeVisible()
})
test('Drag and drop steps and items should work', async ({ page }) => {
const typebotId = generate()
await importTypebotInDatabase(
path.join(__dirname, '../fixtures/typebots/editor/buttonsDnd.json'),
{
id: typebotId,
}
)
// Steps dnd
await page.goto(`/typebots/${typebotId}/edit`)
await expect(page.locator('[data-testid="step"] >> nth=1')).toHaveText(
'Hello!'
)
await page.dragAndDrop('text=Hello', 'text=Item 1')
await expect(page.locator('[data-testid="step"] >> nth=2')).toHaveText(
'Hello!'
)
await page.dragAndDrop('text=Hello', '[data-testid="step"] >> text=Start')
await expect(page.locator('text=Block #4')).toBeVisible()
await page.dragAndDrop('text=Hello', 'text=Block #2')
await expect(page.locator('[data-testid="step"] >> nth=3')).toHaveText(
'Hello!'
)
// Items dnd
await expect(page.locator('[data-testid="item"] >> nth=0')).toHaveText(
'Item 1'
)
await page.dragAndDrop('text=Item 1', 'text=Item 3')
await expect(page.locator('[data-testid="item"] >> nth=2')).toHaveText(
'Item 1'
)
await expect(page.locator('[data-testid="item"] >> nth=1')).toHaveText(
'Item 3'
)
await page.dragAndDrop('text=Item 3', 'text=Item 2-3')
await expect(page.locator('[data-testid="item"] >> nth=6')).toHaveText(
'Item 3'
)
})
test('Undo / Redo buttons should work', async ({ page }) => {
const typebotId = generate()
await createTypebots([

View File

@ -3,7 +3,7 @@ import {
createTypebots,
parseDefaultBlockWithStep,
} from '../../services/database'
import { defaultChoiceInputOptions, InputStepType } from 'models'
import { defaultChoiceInputOptions, InputStepType, ItemType } from 'models'
import { typebotViewer } from '../../services/selectorUtils'
import { generate } from 'short-uuid'
@ -15,7 +15,14 @@ test.describe.parallel('Buttons input step', () => {
id: typebotId,
...parseDefaultBlockWithStep({
type: InputStepType.CHOICE,
options: { ...defaultChoiceInputOptions, itemIds: ['choice1'] },
items: [
{
id: 'choice1',
stepId: 'step1',
type: ItemType.BUTTON,
},
],
options: { ...defaultChoiceInputOptions },
}),
},
])
@ -23,14 +30,11 @@ test.describe.parallel('Buttons input step', () => {
await page.goto(`/typebots/${typebotId}/edit`)
await page.fill('input[value="Click to edit"]', 'Item 1')
await page.press('input[value="Item 1"]', 'Enter')
await page.locator('text=Item 1').hover()
await page.click('[aria-label="Add item"]')
await page.fill('input[value="Click to edit"]', 'Item 2')
await page.press('input[value="Item 2"]', 'Enter')
await page.locator('text=Item 2').hover()
await page.click('[aria-label="Add item"]')
await page.fill('input[value="Click to edit"]', 'Item 3')
await page.press('input[value="Item 3"]', 'Enter')
await page.press('input[value="Click to edit"]', 'Escape')
await page.click('text=Item 2', { button: 'right' })
await page.click('text=Delete')
await expect(page.locator('text=Item 2')).toBeHidden()

View File

@ -145,7 +145,7 @@ test.describe.parallel('Google sheets integration', () => {
.press('Enter')
await expect(
typebotViewer(page).locator('text=Your name is: John Smith')
).toBeVisible()
).toBeVisible({ timeout: 30000 })
})
})

View File

@ -16,8 +16,7 @@ test.describe('Condition step', () => {
)
await page.goto(`/typebots/${typebotId}/edit`)
await page.click('text=Configure...')
await page.click('button:has-text("Add a comparison")')
await page.click('text=Configure... >> nth=0', { force: true })
await page.fill(
'input[placeholder="Search for a variable"] >> nth=-1',
'Age'
@ -41,8 +40,7 @@ test.describe('Condition step', () => {
'100'
)
await page.click('text=Configure...')
await page.click('button:has-text("Add a comparison")')
await page.click('text=Configure...', { force: true })
await page.fill(
'input[placeholder="Search for a variable"] >> nth=-1',
'Age'
@ -54,7 +52,7 @@ test.describe('Condition step', () => {
await page.click('text=Preview')
await typebotViewer(page)
.locator('input[placeholder="Type your answer..."]')
.locator('input[placeholder="Type a number..."]')
.fill('15')
await typebotViewer(page).locator('text=Send').click()
await expect(
@ -63,7 +61,7 @@ test.describe('Condition step', () => {
await page.click('text=Restart')
await typebotViewer(page)
.locator('input[placeholder="Type your answer..."]')
.locator('input[placeholder="Type a number..."]')
.fill('45')
await typebotViewer(page).locator('text=Send').click()
await expect(
@ -72,7 +70,7 @@ test.describe('Condition step', () => {
await page.click('text=Restart')
await typebotViewer(page)
.locator('input[placeholder="Type your answer..."]')
.locator('input[placeholder="Type a number..."]')
.fill('90')
await typebotViewer(page).locator('text=Send').click()
await expect(

View File

@ -31,7 +31,7 @@ test.describe.parallel('Theme page', () => {
)
await page.click('text=Color')
await page.click('[aria-label="Pick a color"]')
await page.fill('[aria-label="Color value"]', '#2a9d8f')
await page.fill('[aria-label="Color value"] >> nth=-1', '#2a9d8f')
await expect(chatContainer).toHaveCSS(
'background-color',
'rgb(42, 157, 143)'
@ -56,10 +56,14 @@ test.describe.parallel('Theme page', () => {
await page.waitForTimeout(300)
// Host bubbles
await page.click(':nth-match([aria-label="Pick a color"], 1)')
await page.fill('[aria-label="Color value"]', '#2a9d8f')
await page.click(':nth-match([aria-label="Pick a color"], 2)')
await page.fill('[aria-label="Color value"]', '#ffffff')
await page.click(
'[data-testid="host-bubbles-theme"] >> [aria-label="Pick a color"] >> nth=0'
)
await page.fill('input[value="#F7F8FF"]', '#2a9d8f')
await page.click(
'[data-testid="host-bubbles-theme"] >> [aria-label="Pick a color"] >> nth=1'
)
await page.fill('input[value="#303235"]', '#ffffff')
const hostBubble = typebotViewer(page).locator(
'[data-testid="host-bubble"]'
)
@ -70,19 +74,27 @@ test.describe.parallel('Theme page', () => {
await expect(hostBubble).toHaveCSS('color', 'rgb(255, 255, 255)')
// Buttons
await page.click(':nth-match([aria-label="Pick a color"], 5)')
await page.fill('[aria-label="Color value"]', '#7209b7')
await page.click(':nth-match([aria-label="Pick a color"], 6)')
await page.fill('[aria-label="Color value"]', '#e9c46a')
await page.click(
'[data-testid="buttons-theme"] >> [aria-label="Pick a color"] >> nth=0'
)
await page.fill('input[value="#0042DA"]', '#7209b7')
await page.click(
'[data-testid="buttons-theme"] >> [aria-label="Pick a color"] >> nth=1'
)
await page.fill('input[value="#FFFFFF"]', '#e9c46a')
const button = typebotViewer(page).locator('[data-testid="button"]')
await expect(button).toHaveCSS('background-color', 'rgb(114, 9, 183)')
await expect(button).toHaveCSS('color', 'rgb(233, 196, 106)')
// Guest bubbles
await page.click(':nth-match([aria-label="Pick a color"], 3)')
await page.fill('[aria-label="Color value"]', '#d8f3dc')
await page.click(':nth-match([aria-label="Pick a color"], 4)')
await page.fill('[aria-label="Color value"]', '#264653')
await page.click(
'[data-testid="guest-bubbles-theme"] >> [aria-label="Pick a color"] >> nth=0'
)
await page.fill('input[value="#FF8E21"]', '#d8f3dc')
await page.click(
'[data-testid="guest-bubbles-theme"] >> [aria-label="Pick a color"] >> nth=1'
)
await page.fill('input[value="#FFFFFF"]', '#264653')
await typebotViewer(page).locator('text=Go').click()
const guestBubble = typebotViewer(page).locator(
'[data-testid="guest-bubble"]'
@ -94,10 +106,14 @@ test.describe.parallel('Theme page', () => {
await expect(guestBubble).toHaveCSS('color', 'rgb(38, 70, 83)')
// Input
await page.click(':nth-match([aria-label="Pick a color"], 7)')
await page.fill('[aria-label="Color value"]', '#ffe8d6')
await page.click(':nth-match([aria-label="Pick a color"], 8)')
await page.fill('[aria-label="Color value"]', '#023e8a')
await page.click(
'[data-testid="inputs-theme"] >> [aria-label="Pick a color"] >> nth=0'
)
await page.fill('input[value="#FFFFFF"]', '#ffe8d6')
await page.click(
'[data-testid="inputs-theme"] >> [aria-label="Pick a color"] >> nth=1'
)
await page.fill('input[value="#303235"]', '#023e8a')
await typebotViewer(page).locator('text=Go').click()
const input = typebotViewer(page).locator('.typebot-input')
await expect(input).toHaveCSS('background-color', 'rgb(255, 232, 214)')