2
0

♻️ Simplify text bubble content shape

Remove html and plainText field because it was redundant

Closes #386
This commit is contained in:
Baptiste Arnaud
2023-04-13 17:04:21 +02:00
parent 2cbf8348c3
commit e0a9824913
70 changed files with 545 additions and 1030 deletions

View File

@ -50,11 +50,9 @@
"id": "cl1267q2c000e2e6dynjeg83n", "id": "cl1267q2c000e2e6dynjeg83n",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Welcome 👋</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Welcome 👋" }] } { "type": "p", "children": [{ "text": "Welcome 👋" }] }
], ]
"plainText": "Welcome 👋"
}, },
"groupId": "clcueadzi00063b6sch7b1f32" "groupId": "clcueadzi00063b6sch7b1f32"
}, },
@ -62,11 +60,9 @@
"id": "cl1267y1u000f2e6d4rlglv6g", "id": "cl1267y1u000f2e6d4rlglv6g",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What&#x27;s your name?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What's your name?" }] } { "type": "p", "children": [{ "text": "What's your name?" }] }
], ]
"plainText": "What's your name?"
}, },
"groupId": "clcueadzi00063b6sch7b1f32" "groupId": "clcueadzi00063b6sch7b1f32"
}, },
@ -95,11 +91,9 @@
"id": "cl1266v6f000a2e6db7wj3ux7", "id": "cl1266v6f000a2e6db7wj3ux7",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Welcome {{Name}} 👋</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Welcome {{Name}} 👋" }] } { "type": "p", "children": [{ "text": "Welcome {{Name}} 👋" }] }
], ]
"plainText": "Welcome {{Name}} 👋"
}, },
"groupId": "clcueadzi00073b6sqz8n5vxp" "groupId": "clcueadzi00073b6sqz8n5vxp"
}, },
@ -107,7 +101,6 @@
"id": "cl126hb9m000l2e6d5qk3mohn", "id": "cl126hb9m000l2e6d5qk3mohn",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>I&#x27;m super pumped that you&#x27;ve decided to try out Typebot 😍</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -117,8 +110,7 @@
} }
] ]
} }
], ]
"plainText": "I'm super pumped that you've decided to try out Typebot 😍"
}, },
"groupId": "clcueadzi00073b6sqz8n5vxp" "groupId": "clcueadzi00073b6sqz8n5vxp"
}, },
@ -126,7 +118,6 @@
"id": "cl126hpw1000m2e6dneousygl", "id": "cl126hpw1000m2e6dneousygl",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>You are small steps away from meaningful, hyper-personalized experience for your users</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -136,8 +127,7 @@
} }
] ]
} }
], ]
"plainText": "You are small steps away from meaningful, hyper-personalized experience for your users"
}, },
"groupId": "clcueadzi00073b6sqz8n5vxp" "groupId": "clcueadzi00073b6sqz8n5vxp"
}, },
@ -145,7 +135,6 @@
"id": "cl126guhd000k2e6d6ypkex9z", "id": "cl126guhd000k2e6d6ypkex9z",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Let&#x27;s get you set up for your Typebot journey.</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -153,8 +142,7 @@
{ "text": "Let's get you set up for your Typebot journey." } { "text": "Let's get you set up for your Typebot journey." }
] ]
} }
], ]
"plainText": "Let's get you set up for your Typebot journey."
}, },
"groupId": "clcueadzi00073b6sqz8n5vxp" "groupId": "clcueadzi00073b6sqz8n5vxp"
}, },
@ -162,14 +150,12 @@
"id": "cl126ixp9000q2e6dslh0zypi", "id": "cl126ixp9000q2e6dslh0zypi",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Do you work for a specific company?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Do you work for a specific company?" }] "children": [{ "text": "Do you work for a specific company?" }]
} }
], ]
"plainText": "Do you work for a specific company?"
}, },
"groupId": "clcueadzi00073b6sqz8n5vxp" "groupId": "clcueadzi00073b6sqz8n5vxp"
}, },
@ -219,7 +205,6 @@
"id": "cl126krck00112e6d1m6ctxpn", "id": "cl126krck00112e6d1m6ctxpn",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What type of bots are you planning to build with Typebot?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -229,8 +214,7 @@
} }
] ]
} }
], ]
"plainText": "What type of bots are you planning to build with Typebot?"
}, },
"groupId": "clcueadzi00093b6s82ivles8" "groupId": "clcueadzi00093b6s82ivles8"
}, },
@ -330,7 +314,6 @@
"id": "cl126p76d001k2e6dbhnf2ysq", "id": "cl126p76d001k2e6dbhnf2ysq",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Thank you for answering those questions!</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -338,8 +321,7 @@
{ "text": "Thank you for answering those questions!" } { "text": "Thank you for answering those questions!" }
] ]
} }
], ]
"plainText": "Thank you for answering those questions!"
}, },
"groupId": "clcueadzi000a3b6spk404zpz" "groupId": "clcueadzi000a3b6spk404zpz"
}, },
@ -355,7 +337,6 @@
"id": "cl126txta001y2e6dtxrbsnek", "id": "cl126txta001y2e6dtxrbsnek",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>You can reach out to me using the contact bubble on the bottom right corner 🤓</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -365,8 +346,7 @@
} }
] ]
} }
], ]
"plainText": "You can reach out to me using the contact bubble on the bottom right corner 🤓"
}, },
"groupId": "clcueadzi000a3b6spk404zpz" "groupId": "clcueadzi000a3b6spk404zpz"
}, },
@ -374,14 +354,12 @@
"id": "cl12buyly00172e6991bz38ch", "id": "cl12buyly00172e6991bz38ch",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Let&#x27;s create your first typebot...</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Let's create your first typebot..." }] "children": [{ "text": "Let's create your first typebot..." }]
} }
], ]
"plainText": "Let's create your first typebot..."
}, },
"groupId": "clcueadzi000a3b6spk404zpz" "groupId": "clcueadzi000a3b6spk404zpz"
} }
@ -396,11 +374,9 @@
"id": "cl127yxym000b2e6d9hksxo6h", "id": "cl127yxym000b2e6d9hksxo6h",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What else?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What else?" }] } { "type": "p", "children": [{ "text": "What else?" }] }
], ]
"plainText": "What else?"
}, },
"groupId": "clcueadzi000b3b6sv6936vs4" "groupId": "clcueadzi000b3b6sv6936vs4"
}, },

View File

@ -50,11 +50,9 @@
"id": "cl1267q2c000e2e6dynjeg83n", "id": "cl1267q2c000e2e6dynjeg83n",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Welcome 👋</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Welcome 👋" }] } { "type": "p", "children": [{ "text": "Welcome 👋" }] }
], ]
"plainText": "Welcome 👋"
}, },
"groupId": "clcueadzi00063b6sch7b1f32" "groupId": "clcueadzi00063b6sch7b1f32"
}, },
@ -62,11 +60,9 @@
"id": "cl1267y1u000f2e6d4rlglv6g", "id": "cl1267y1u000f2e6d4rlglv6g",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What&#x27;s your name?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What's your name?" }] } { "type": "p", "children": [{ "text": "What's your name?" }] }
], ]
"plainText": "What's your name?"
}, },
"groupId": "clcueadzi00063b6sch7b1f32" "groupId": "clcueadzi00063b6sch7b1f32"
}, },
@ -95,11 +91,9 @@
"id": "cl1266v6f000a2e6db7wj3ux7", "id": "cl1266v6f000a2e6db7wj3ux7",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Welcome {{Name}} 👋</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Welcome {{Name}} 👋" }] } { "type": "p", "children": [{ "text": "Welcome {{Name}} 👋" }] }
], ]
"plainText": "Welcome {{Name}} 👋"
}, },
"groupId": "clcueadzi00073b6sqz8n5vxp" "groupId": "clcueadzi00073b6sqz8n5vxp"
}, },
@ -107,7 +101,6 @@
"id": "cl126hb9m000l2e6d5qk3mohn", "id": "cl126hb9m000l2e6d5qk3mohn",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>I&#x27;m super pumped that you&#x27;ve decided to try out Typebot 😍</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -117,8 +110,7 @@
} }
] ]
} }
], ]
"plainText": "I'm super pumped that you've decided to try out Typebot 😍"
}, },
"groupId": "clcueadzi00073b6sqz8n5vxp" "groupId": "clcueadzi00073b6sqz8n5vxp"
}, },
@ -126,7 +118,6 @@
"id": "cl126hpw1000m2e6dneousygl", "id": "cl126hpw1000m2e6dneousygl",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>You are small steps away from meaningful, hyper-personalized experience for your users</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -136,8 +127,7 @@
} }
] ]
} }
], ]
"plainText": "You are small steps away from meaningful, hyper-personalized experience for your users"
}, },
"groupId": "clcueadzi00073b6sqz8n5vxp" "groupId": "clcueadzi00073b6sqz8n5vxp"
}, },
@ -145,7 +135,6 @@
"id": "cl126guhd000k2e6d6ypkex9z", "id": "cl126guhd000k2e6d6ypkex9z",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Let&#x27;s get you set up for your Typebot journey.</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -153,8 +142,7 @@
{ "text": "Let's get you set up for your Typebot journey." } { "text": "Let's get you set up for your Typebot journey." }
] ]
} }
], ]
"plainText": "Let's get you set up for your Typebot journey."
}, },
"groupId": "clcueadzi00073b6sqz8n5vxp" "groupId": "clcueadzi00073b6sqz8n5vxp"
}, },
@ -162,14 +150,12 @@
"id": "cl126ixp9000q2e6dslh0zypi", "id": "cl126ixp9000q2e6dslh0zypi",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Do you work for a specific company?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Do you work for a specific company?" }] "children": [{ "text": "Do you work for a specific company?" }]
} }
], ]
"plainText": "Do you work for a specific company?"
}, },
"groupId": "clcueadzi00073b6sqz8n5vxp" "groupId": "clcueadzi00073b6sqz8n5vxp"
}, },
@ -219,7 +205,6 @@
"id": "cl126krck00112e6d1m6ctxpn", "id": "cl126krck00112e6d1m6ctxpn",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What type of bots are you planning to build with Typebot?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -229,8 +214,7 @@
} }
] ]
} }
], ]
"plainText": "What type of bots are you planning to build with Typebot?"
}, },
"groupId": "clcueadzi00093b6s82ivles8" "groupId": "clcueadzi00093b6s82ivles8"
}, },
@ -330,7 +314,6 @@
"id": "cl126p76d001k2e6dbhnf2ysq", "id": "cl126p76d001k2e6dbhnf2ysq",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Thank you for answering those questions!</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -338,8 +321,7 @@
{ "text": "Thank you for answering those questions!" } { "text": "Thank you for answering those questions!" }
] ]
} }
], ]
"plainText": "Thank you for answering those questions!"
}, },
"groupId": "clcueadzi000a3b6spk404zpz" "groupId": "clcueadzi000a3b6spk404zpz"
}, },
@ -355,7 +337,6 @@
"id": "cl126txta001y2e6dtxrbsnek", "id": "cl126txta001y2e6dtxrbsnek",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>You can reach out to me using the contact bubble on the bottom right corner 🤓</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -365,8 +346,7 @@
} }
] ]
} }
], ]
"plainText": "You can reach out to me using the contact bubble on the bottom right corner 🤓"
}, },
"groupId": "clcueadzi000a3b6spk404zpz" "groupId": "clcueadzi000a3b6spk404zpz"
}, },
@ -374,14 +354,12 @@
"id": "cl12buyly00172e6991bz38ch", "id": "cl12buyly00172e6991bz38ch",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Let&#x27;s create your first typebot...</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Let's create your first typebot..." }] "children": [{ "text": "Let's create your first typebot..." }]
} }
], ]
"plainText": "Let's create your first typebot..."
}, },
"groupId": "clcueadzi000a3b6spk404zpz" "groupId": "clcueadzi000a3b6spk404zpz"
} }
@ -396,11 +374,9 @@
"id": "cl127yxym000b2e6d9hksxo6h", "id": "cl127yxym000b2e6d9hksxo6h",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What else?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What else?" }] } { "type": "p", "children": [{ "text": "What else?" }] }
], ]
"plainText": "What else?"
}, },
"groupId": "clcueadzi000b3b6sv6936vs4" "groupId": "clcueadzi000b3b6sv6936vs4"
}, },

View File

@ -82,14 +82,12 @@
"id": "myldn1l1nfdwwm8qvza71rwv", "id": "myldn1l1nfdwwm8qvza71rwv",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>{{Assistant Messages}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "{{Assistant Messages}}" }] "children": [{ "text": "{{Assistant Messages}}" }]
} }
], ]
"plainText": "{{Assistant Messages}}"
}, },
"groupId": "a6ymhjwtkqwp8t127plz8qmk", "groupId": "a6ymhjwtkqwp8t127plz8qmk",
"outgoingEdgeId": "y8ml9ljnsydol9b42fd9zdve" "outgoingEdgeId": "y8ml9ljnsydol9b42fd9zdve"
@ -105,11 +103,9 @@
"id": "vzcrfk4vl9gy8igu0ysja5nc", "id": "vzcrfk4vl9gy8igu0ysja5nc",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Hi there 👋</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Hi there 👋" }] } { "type": "p", "children": [{ "text": "Hi there 👋" }] }
], ]
"plainText": "Hi there 👋"
}, },
"groupId": "c5f00f3oclwi1srcz10jjt9u" "groupId": "c5f00f3oclwi1srcz10jjt9u"
}, },
@ -117,11 +113,9 @@
"id": "gphm5wy1md9cunwkdtbzg6nq", "id": "gphm5wy1md9cunwkdtbzg6nq",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>How can I help?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "How can I help?" }] } { "type": "p", "children": [{ "text": "How can I help?" }] }
], ]
"plainText": "How can I help?"
}, },
"groupId": "c5f00f3oclwi1srcz10jjt9u", "groupId": "c5f00f3oclwi1srcz10jjt9u",
"outgoingEdgeId": "h5sk58j0ryrxmfv4gmw7r4dw" "outgoingEdgeId": "h5sk58j0ryrxmfv4gmw7r4dw"
@ -137,7 +131,6 @@
"id": "s6eky7dd3md9hto9y4wsuj7h", "id": "s6eky7dd3md9hto9y4wsuj7h",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>You need to add your OpenAI credentials to make this bot work. 🪄</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -147,8 +140,7 @@
} }
] ]
} }
], ]
"plainText": "You need to add your OpenAI credentials to make this bot work. 🪄"
}, },
"groupId": "t3tv4dm3khwmiotjle5jb65g" "groupId": "t3tv4dm3khwmiotjle5jb65g"
}, },
@ -156,7 +148,6 @@
"id": "nqsu9f13q5j8tt56bcbuto62", "id": "nqsu9f13q5j8tt56bcbuto62",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Once it&apos;s done, delete this group and connect the <span class=\"slate-bold\">Start</span> block with <span class=\"slate-bold\">Intro</span> 🚀</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -170,8 +161,7 @@
{ "text": " 🚀" } { "text": " 🚀" }
] ]
} }
], ]
"plainText": "Once it's done, delete this group and connect the Start block with Intro 🚀"
}, },
"groupId": "t3tv4dm3khwmiotjle5jb65g" "groupId": "t3tv4dm3khwmiotjle5jb65g"
} }

View File

@ -29,7 +29,6 @@
"id": "s6eky7dd3md9hto9y4wsuj7h", "id": "s6eky7dd3md9hto9y4wsuj7h",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>You need to add your OpenAI credentials to make this bot work. 🪄</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -39,8 +38,7 @@
} }
] ]
} }
], ]
"plainText": "You need to add your OpenAI credentials to make this bot work. 🪄"
}, },
"groupId": "bofjp88arodr4k0btv2esyqy" "groupId": "bofjp88arodr4k0btv2esyqy"
}, },
@ -48,7 +46,6 @@
"id": "nqsu9f13q5j8tt56bcbuto62", "id": "nqsu9f13q5j8tt56bcbuto62",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Once it&apos;s done, delete this group and connect the <span class=\"slate-bold\">Start</span> block with <span class=\"slate-bold\">Intro</span> 🚀</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -62,8 +59,7 @@
{ "text": " 🚀" } { "text": " 🚀" }
] ]
} }
], ]
"plainText": "Once it's done, delete this group and connect the Start block with Intro 🚀"
}, },
"groupId": "bofjp88arodr4k0btv2esyqy" "groupId": "bofjp88arodr4k0btv2esyqy"
} }
@ -109,14 +105,12 @@
"id": "myldn1l1nfdwwm8qvza71rwv", "id": "myldn1l1nfdwwm8qvza71rwv",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>{{Assistant Messages}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "{{Assistant Messages}}" }] "children": [{ "text": "{{Assistant Messages}}" }]
} }
], ]
"plainText": "{{Assistant Messages}}"
}, },
"groupId": "dmg57mgick51p8l5pnyqtyf9" "groupId": "dmg57mgick51p8l5pnyqtyf9"
}, },
@ -184,14 +178,12 @@
"id": "sei88rrjcmpgm3vhxjvkofyt", "id": "sei88rrjcmpgm3vhxjvkofyt",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>{{Assistant Messages}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "{{Assistant Messages}}" }] "children": [{ "text": "{{Assistant Messages}}" }]
} }
], ]
"plainText": "{{Assistant Messages}}"
}, },
"groupId": "fj5z2nx488htv0843kq6qeyk" "groupId": "fj5z2nx488htv0843kq6qeyk"
}, },
@ -259,14 +251,12 @@
"id": "h96lile0evtqa0jx24gmfo25", "id": "h96lile0evtqa0jx24gmfo25",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>{{Assistant Messages}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "{{Assistant Messages}}" }] "children": [{ "text": "{{Assistant Messages}}" }]
} }
], ]
"plainText": "{{Assistant Messages}}"
}, },
"groupId": "csbysu8dr08zxr4i6hzvzjdf" "groupId": "csbysu8dr08zxr4i6hzvzjdf"
}, },
@ -303,14 +293,12 @@
"id": "gphm5wy1md9cunwkdtbzg6nq", "id": "gphm5wy1md9cunwkdtbzg6nq",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Who would you want to talk to?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Who would you want to talk to?" }] "children": [{ "text": "Who would you want to talk to?" }]
} }
], ]
"plainText": "Who would you want to talk to?"
}, },
"groupId": "u6nm47oyneidmsebszp60t0m" "groupId": "u6nm47oyneidmsebszp60t0m"
}, },
@ -427,9 +415,7 @@
"id": "qm3v36qb93ijnghdjgy9mcwf", "id": "qm3v36qb93ijnghdjgy9mcwf",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Hi 👋</div>", "richText": [{ "type": "p", "children": [{ "text": "Hi 👋" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Hi 👋" }] }],
"plainText": "Hi 👋"
}, },
"groupId": "py719ungczkgz5f40zkw3tr2" "groupId": "py719ungczkgz5f40zkw3tr2"
}, },
@ -437,7 +423,6 @@
"id": "ln8d3vdq4shclzrxcy9rmxfg", "id": "ln8d3vdq4shclzrxcy9rmxfg",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>I can help you translate things and perfect your English.</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -447,8 +432,7 @@
} }
] ]
} }
], ]
"plainText": "I can help you translate things and perfect your English."
}, },
"groupId": "py719ungczkgz5f40zkw3tr2" "groupId": "py719ungczkgz5f40zkw3tr2"
}, },
@ -456,11 +440,9 @@
"id": "r7yu488ugfif8hxy3e4sospb", "id": "r7yu488ugfif8hxy3e4sospb",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>How can I help?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "How can I help?" }] } { "type": "p", "children": [{ "text": "How can I help?" }] }
], ]
"plainText": "How can I help?"
}, },
"groupId": "py719ungczkgz5f40zkw3tr2", "groupId": "py719ungczkgz5f40zkw3tr2",
"outgoingEdgeId": "ripf74t9yicdze8xr2yrklyx" "outgoingEdgeId": "ripf74t9yicdze8xr2yrklyx"
@ -476,9 +458,7 @@
"id": "bbeedootn9m8eass0mqu3w4t", "id": "bbeedootn9m8eass0mqu3w4t",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Hi 👋</div>", "richText": [{ "type": "p", "children": [{ "text": "Hi 👋" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Hi 👋" }] }],
"plainText": "Hi 👋"
}, },
"groupId": "uyry49c9bm1pvk6t8i471l2d" "groupId": "uyry49c9bm1pvk6t8i471l2d"
}, },
@ -486,14 +466,12 @@
"id": "chdghb0k27c4okwu9yky4ox4", "id": "chdghb0k27c4okwu9yky4ox4",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>I&apos;m an expert in copywriting.</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "I'm an expert in copywriting." }] "children": [{ "text": "I'm an expert in copywriting." }]
} }
], ]
"plainText": "I'm an expert in copywriting."
}, },
"groupId": "uyry49c9bm1pvk6t8i471l2d" "groupId": "uyry49c9bm1pvk6t8i471l2d"
}, },
@ -501,11 +479,9 @@
"id": "idp7w8c8zbkvl95oa1vquiml", "id": "idp7w8c8zbkvl95oa1vquiml",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>How can I help?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "How can I help?" }] } { "type": "p", "children": [{ "text": "How can I help?" }] }
], ]
"plainText": "How can I help?"
}, },
"groupId": "uyry49c9bm1pvk6t8i471l2d", "groupId": "uyry49c9bm1pvk6t8i471l2d",
"outgoingEdgeId": "v0tfmbt8tpwwrieftvzg8lti" "outgoingEdgeId": "v0tfmbt8tpwwrieftvzg8lti"
@ -521,9 +497,7 @@
"id": "n96j3pf3m87aufcapx2ulr2n", "id": "n96j3pf3m87aufcapx2ulr2n",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Hi 👋</div>", "richText": [{ "type": "p", "children": [{ "text": "Hi 👋" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Hi 👋" }] }],
"plainText": "Hi 👋"
}, },
"groupId": "zfa8oj0a0tnlho9a67llulst" "groupId": "zfa8oj0a0tnlho9a67llulst"
}, },
@ -531,7 +505,6 @@
"id": "wxk5z9yyiojkk9u3b5m6shax", "id": "wxk5z9yyiojkk9u3b5m6shax",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>I can explain concept with very simple terms.</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -539,8 +512,7 @@
{ "text": "I can explain concept with very simple terms." } { "text": "I can explain concept with very simple terms." }
] ]
} }
], ]
"plainText": "I can explain concept with very simple terms."
}, },
"groupId": "zfa8oj0a0tnlho9a67llulst" "groupId": "zfa8oj0a0tnlho9a67llulst"
}, },
@ -548,7 +520,6 @@
"id": "ileqgg2r2kyh2zovpivr775s", "id": "ileqgg2r2kyh2zovpivr775s",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What concept would you like me to explain?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -556,8 +527,7 @@
{ "text": "What concept would you like me to explain?" } { "text": "What concept would you like me to explain?" }
] ]
} }
], ]
"plainText": "What concept would you like me to explain?"
}, },
"groupId": "zfa8oj0a0tnlho9a67llulst", "groupId": "zfa8oj0a0tnlho9a67llulst",
"outgoingEdgeId": "v5bki4h7m1lnryhgzudnvvpx" "outgoingEdgeId": "v5bki4h7m1lnryhgzudnvvpx"

View File

@ -28,12 +28,10 @@
"type": "text", "type": "text",
"groupId": "vLUAPaxKwPF49iZhg4XZYa", "groupId": "vLUAPaxKwPF49iZhg4XZYa",
"content": { "content": {
"html": "<div>Hey friend 👋</div><div>How can I help you?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Hey friend 👋" }] }, { "type": "p", "children": [{ "text": "Hey friend 👋" }] },
{ "type": "p", "children": [{ "text": "How can I help you?" }] } { "type": "p", "children": [{ "text": "How can I help you?" }] }
], ]
"plainText": "Hey friend 👋How can I help you?"
} }
}, },
{ {
@ -77,11 +75,7 @@
"type": "text", "type": "text",
"groupId": "7MuqF6nen1ZTwGB53Mz8VY", "groupId": "7MuqF6nen1ZTwGB53Mz8VY",
"content": { "content": {
"html": "<div>Shoot! 🤪</div>", "richText": [{ "type": "p", "children": [{ "text": "Shoot! 🤪" }] }]
"richText": [
{ "type": "p", "children": [{ "text": "Shoot! 🤪" }] }
],
"plainText": "Shoot! 🤪"
} }
}, },
{ {
@ -89,7 +83,6 @@
"type": "text", "type": "text",
"groupId": "7MuqF6nen1ZTwGB53Mz8VY", "groupId": "7MuqF6nen1ZTwGB53Mz8VY",
"content": { "content": {
"html": "<div>Can you describe the bug with as many details as possible?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -99,8 +92,7 @@
} }
] ]
} }
], ]
"plainText": "Can you describe the bug with as many details as possible?"
} }
}, },
{ {
@ -129,9 +121,7 @@
"type": "text", "type": "text",
"groupId": "kyK8JQ77NodUYaz3JLS88A", "groupId": "kyK8JQ77NodUYaz3JLS88A",
"content": { "content": {
"html": "<div>Awesome!</div>", "richText": [{ "type": "p", "children": [{ "text": "Awesome!" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Awesome!" }] }],
"plainText": "Awesome!"
} }
}, },
{ {
@ -139,7 +129,6 @@
"type": "text", "type": "text",
"groupId": "kyK8JQ77NodUYaz3JLS88A", "groupId": "kyK8JQ77NodUYaz3JLS88A",
"content": { "content": {
"html": "<div>Head up to the feedback board.</div><div></div><div>👉 <a href=\"https://app.typebot.io/feedback\" target=\"_blank\" rel=\"noreferrer\" class=\"slate-a\">https://app.typebot.io/feedback</a></div><div></div><div>There, you&#x27;ll be able to check existing feature requests and submit yours if it&#x27;s missing 💪</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -167,8 +156,7 @@
} }
] ]
} }
], ]
"plainText": "Head up to the feedback board.👉 https://app.typebot.io/feedbackThere, you'll be able to check existing feature requests and submit yours if it's missing 💪"
} }
}, },
{ {
@ -206,7 +194,6 @@
"type": "text", "type": "text",
"groupId": "puWCBhGWSQRbqTkVH89RCf", "groupId": "puWCBhGWSQRbqTkVH89RCf",
"content": { "content": {
"html": "<div>First, don&#x27;t forget to check out the <a href=\"https://docs.typebot.io/\" target=\"_blank\" rel=\"noreferrer\" class=\"slate-a\">Documentation 🙏</a></div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -220,8 +207,7 @@
{ "text": "" } { "text": "" }
] ]
} }
], ]
"plainText": "First, don't forget to check out the Documentation 🙏"
} }
}, },
{ {
@ -229,14 +215,12 @@
"type": "text", "type": "text",
"groupId": "puWCBhGWSQRbqTkVH89RCf", "groupId": "puWCBhGWSQRbqTkVH89RCf",
"content": { "content": {
"html": "<div>Otherwise, I&#x27;m all ears!</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Otherwise, I'm all ears!" }] "children": [{ "text": "Otherwise, I'm all ears!" }]
} }
], ]
"plainText": "Otherwise, I'm all ears!"
} }
}, },
{ {
@ -273,7 +257,6 @@
"type": "text", "type": "text",
"groupId": "1GvxCAAEysxJMxrVngud3X", "groupId": "1GvxCAAEysxJMxrVngud3X",
"content": { "content": {
"html": "<div>Thank you so much for your submission 💙</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -281,8 +264,7 @@
{ "text": "Thank you so much for your submission 💙" } { "text": "Thank you so much for your submission 💙" }
] ]
} }
], ]
"plainText": "Thank you so much for your submission 💙"
} }
}, },
{ {
@ -290,7 +272,6 @@
"type": "text", "type": "text",
"groupId": "1GvxCAAEysxJMxrVngud3X", "groupId": "1GvxCAAEysxJMxrVngud3X",
"content": { "content": {
"html": "<div>I&#x27;ll get back to you ASAP (usually within 24 hours)</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -300,8 +281,7 @@
} }
] ]
} }
], ]
"plainText": "I'll get back to you ASAP (usually within 24 hours)"
} }
}, },
{ {
@ -339,14 +319,12 @@
"type": "text", "type": "text",
"groupId": "wncvzVDFJDvhh1M3CXJ6aL", "groupId": "wncvzVDFJDvhh1M3CXJ6aL",
"content": { "content": {
"html": "<div>On which email can I contact you?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "On which email can I contact you?" }] "children": [{ "text": "On which email can I contact you?" }]
} }
], ]
"plainText": "On which email can I contact you?"
} }
}, },
{ {

View File

@ -30,11 +30,9 @@
"groupId": "cl3u4431400042e6go5nd0euq", "groupId": "cl3u4431400042e6go5nd0euq",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Hi there 👋</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Hi there 👋" }] } { "type": "p", "children": [{ "text": "Hi there 👋" }] }
], ]
"plainText": "Hi there 👋"
} }
}, },
{ {
@ -42,11 +40,9 @@
"groupId": "cl3u4431400042e6go5nd0euq", "groupId": "cl3u4431400042e6go5nd0euq",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What&#x27;s your name?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What's your name?" }] } { "type": "p", "children": [{ "text": "What's your name?" }] }
], ]
"plainText": "What's your name?"
} }
}, },
{ {
@ -75,14 +71,12 @@
"groupId": "cl3u45dib00092e6g4q2tdkpu", "groupId": "cl3u45dib00092e6g4q2tdkpu",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Cool, nice to meet you {{Name}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Cool, nice to meet you {{Name}}" }] "children": [{ "text": "Cool, nice to meet you {{Name}}" }]
} }
], ]
"plainText": "Cool, nice to meet you {{Name}}"
} }
}, },
{ {
@ -90,7 +84,6 @@
"groupId": "cl3u45dib00092e6g4q2tdkpu", "groupId": "cl3u45dib00092e6g4q2tdkpu",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>I&#x27;ve been working on a Notion template for the last 3 months to help you Grow your business.</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -100,8 +93,7 @@
} }
] ]
} }
], ]
"plainText": "I've been working on a Notion template for the last 3 months to help you Grow your business."
} }
}, },
{ {
@ -109,7 +101,6 @@
"groupId": "cl3u45dib00092e6g4q2tdkpu", "groupId": "cl3u45dib00092e6g4q2tdkpu",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>It is based on the Bullseye Growth Framework</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -117,8 +108,7 @@
{ "text": "It is based on the Bullseye Growth Framework" } { "text": "It is based on the Bullseye Growth Framework" }
] ]
} }
], ]
"plainText": "It is based on the Bullseye Growth Framework"
} }
}, },
{ {
@ -135,7 +125,6 @@
"groupId": "cl3u45dib00092e6g4q2tdkpu", "groupId": "cl3u45dib00092e6g4q2tdkpu",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>It's yours for $9</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -145,8 +134,7 @@
} }
] ]
} }
], ]
"plainText": "It's yours for $9"
} }
}, },
{ {
@ -154,7 +142,6 @@
"groupId": "cl3u45dib00092e6g4q2tdkpu", "groupId": "cl3u45dib00092e6g4q2tdkpu",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Are you interested in receiving a copy of this template?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -164,8 +151,7 @@
} }
] ]
} }
], ]
"plainText": "Are you interested in receive a copy of this template?"
} }
}, },
{ {
@ -202,7 +188,6 @@
"groupId": "cl3u4iw28000s2e6gdmukl6qb", "groupId": "cl3u4iw28000s2e6gdmukl6qb",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Oh ok, feel free to come back when you feel ready {{Name}}!</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -212,8 +197,7 @@
} }
] ]
} }
], ]
"plainText": "Oh ok, feel free to come back when you feel ready {{Name}}!"
} }
}, },
{ {
@ -236,11 +220,9 @@
"groupId": "cl3u4kblb000w2e6gfflsq56p", "groupId": "cl3u4kblb000w2e6gfflsq56p",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>That&#x27;s awesome!</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "That's awesome!" }] } { "type": "p", "children": [{ "text": "That's awesome!" }] }
], ]
"plainText": "That's awesome!"
} }
}, },
{ {
@ -248,7 +230,6 @@
"groupId": "cl3u4kblb000w2e6gfflsq56p", "groupId": "cl3u4kblb000w2e6gfflsq56p",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What&#x27;s the email address where you want to receive the link?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -258,8 +239,7 @@
} }
] ]
} }
], ]
"plainText": "What's the email address where you want to receive the link?"
} }
}, },
{ {
@ -285,11 +265,9 @@
"groupId": "cl3u4leig00112e6gxbk65r7y", "groupId": "cl3u4leig00112e6gxbk65r7y",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Sounds good.</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Sounds good." }] } { "type": "p", "children": [{ "text": "Sounds good." }] }
], ]
"plainText": "Sounds good."
} }
}, },
{ {
@ -297,7 +275,6 @@
"groupId": "cl3u4leig00112e6gxbk65r7y", "groupId": "cl3u4leig00112e6gxbk65r7y",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>You&#x27;re a step away from implementing proven growth systems to your business 🚀</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -307,8 +284,7 @@
} }
] ]
} }
], ]
"plainText": "You're a step away from implementing proven growth systems to your business 🚀"
} }
}, },
{ {
@ -358,7 +334,6 @@
"groupId": "cl3u4vnth00182e6g2hh0gewl", "groupId": "cl3u4vnth00182e6g2hh0gewl",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>It&#x27;s all good, you should have received the email!</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -368,8 +343,7 @@
} }
] ]
} }
], ]
"plainText": "It's all good, you should have received the email!"
} }
}, },
{ {
@ -377,14 +351,12 @@
"groupId": "cl3u4vnth00182e6g2hh0gewl", "groupId": "cl3u4vnth00182e6g2hh0gewl",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Thanks again for your visit.</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Thanks again for your visit." }] "children": [{ "text": "Thanks again for your visit." }]
} }
], ]
"plainText": "Thanks again for your visit."
} }
}, },
{ {
@ -392,9 +364,7 @@
"groupId": "cl3u4vnth00182e6g2hh0gewl", "groupId": "cl3u4vnth00182e6g2hh0gewl",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Bye 👋</div>", "richText": [{ "type": "p", "children": [{ "text": "Bye 👋" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Bye 👋" }] }],
"plainText": "Bye 👋"
} }
} }
] ]

View File

@ -30,7 +30,6 @@
"groupId": "cl96ns9qr00043b6ii07bo25o", "groupId": "cl96ns9qr00043b6ii07bo25o",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>If you have a question about our product, you&apos;re in the right place 😊</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -40,8 +39,7 @@
} }
] ]
} }
], ]
"plainText": "If you have a question about our product, you're in the right place 😊"
} }
}, },
{ {
@ -92,11 +90,9 @@
"groupId": "cl96nt9ob00063b6ii2pktlxq", "groupId": "cl96nt9ob00063b6ii2pktlxq",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Hey there 👋</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Hey there 👋" }] } { "type": "p", "children": [{ "text": "Hey there 👋" }] }
], ]
"plainText": "Hey there 👋"
} }
}, },
{ {
@ -104,7 +100,6 @@
"groupId": "cl96nt9ob00063b6ii2pktlxq", "groupId": "cl96nt9ob00063b6ii2pktlxq",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>I&apos;m John, head of the customer success Team at Analyzr</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -114,8 +109,7 @@
} }
] ]
} }
], ]
"plainText": "I'm John, head of the customer success Team at Analyzr"
}, },
"outgoingEdgeId": "cl96nv51s000a3b6i3wmlcmdt" "outgoingEdgeId": "cl96nv51s000a3b6i3wmlcmdt"
} }
@ -131,7 +125,6 @@
"groupId": "cl96o2cgi000r3b6iljr1iwdl", "groupId": "cl96o2cgi000r3b6iljr1iwdl",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Analyzr is a simple and privacy-friendly analytics tool for your website</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -141,8 +134,7 @@
} }
] ]
} }
], ]
"plainText": "Analyzr is a simple and privacy-friendly analytics tool for your website"
} }
}, },
{ {
@ -150,7 +142,6 @@
"groupId": "cl96o2cgi000r3b6iljr1iwdl", "groupId": "cl96o2cgi000r3b6iljr1iwdl",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>It is:</div><div>✅ Lightweight</div><div>✅ Open-source</div><div>✅ Fully compliant with GDPR</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "It is:" }] }, { "type": "p", "children": [{ "text": "It is:" }] },
{ "type": "p", "children": [{ "text": "✅ Lightweight" }] }, { "type": "p", "children": [{ "text": "✅ Lightweight" }] },
@ -159,8 +150,7 @@
"type": "p", "type": "p",
"children": [{ "text": "✅ Fully compliant with GDPR" }] "children": [{ "text": "✅ Fully compliant with GDPR" }]
} }
], ]
"plainText": "It is:✅ Lightweight✅ Open-source✅ Fully compliant with GDPR"
} }
}, },
{ {
@ -190,9 +180,7 @@
"groupId": "cl96o6a2700123b6ie4efb6bb", "groupId": "cl96o6a2700123b6ie4efb6bb",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>You can!</div>", "richText": [{ "type": "p", "children": [{ "text": "You can!" }] }]
"richText": [{ "type": "p", "children": [{ "text": "You can!" }] }],
"plainText": "You can!"
} }
}, },
{ {
@ -200,7 +188,6 @@
"groupId": "cl96o6a2700123b6ie4efb6bb", "groupId": "cl96o6a2700123b6ie4efb6bb",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Analyzr has a generous free plan that allows you to store 1,000,000 events/mo 🚀</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -210,8 +197,7 @@
} }
] ]
} }
], ]
"plainText": "Analyzr has a generous free plan that allows you to store 1,000,000 events/mo 🚀"
} }
}, },
{ {
@ -248,7 +234,6 @@
"groupId": "cl96o8eym001a3b6i3lxh7kw0", "groupId": "cl96o8eym001a3b6i3lxh7kw0",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>An event is a user event on your website.</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -256,8 +241,7 @@
{ "text": "An event is a user event on your website." } { "text": "An event is a user event on your website." }
] ]
} }
], ]
"plainText": "An event is a user event on your website."
} }
}, },
{ {
@ -265,7 +249,6 @@
"groupId": "cl96o8eym001a3b6i3lxh7kw0", "groupId": "cl96o8eym001a3b6i3lxh7kw0",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>It can be &quot;User visited this URL&quot; or &quot;User clicked on this button&quot;</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -275,8 +258,7 @@
} }
] ]
} }
], ]
"plainText": "It can be \"User visited this URL\" or \"User clicked on this button\""
} }
}, },
{ {
@ -314,7 +296,6 @@
"groupId": "cl96oc274001m3b6ig3beli9v", "groupId": "cl96oc274001m3b6ig3beli9v",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>The company was founded in 2020 by Josh Corn</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -322,8 +303,7 @@
{ "text": "The company was founded in 2020 by Josh Corn" } { "text": "The company was founded in 2020 by Josh Corn" }
] ]
} }
], ]
"plainText": "The company was founded in 2020 by Josh Corn"
} }
}, },
{ {
@ -331,14 +311,12 @@
"groupId": "cl96oc274001m3b6ig3beli9v", "groupId": "cl96oc274001m3b6ig3beli9v",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>We are now a team of 15</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "We are now a team of 15" }] "children": [{ "text": "We are now a team of 15" }]
} }
], ]
"plainText": "We are now a team of 15"
} }
}, },
{ {
@ -346,7 +324,6 @@
"groupId": "cl96oc274001m3b6ig3beli9v", "groupId": "cl96oc274001m3b6ig3beli9v",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Our core values are:</div><div></div><div>🔍 Transparency</div><div>⚡ Ship fast</div><div>💙 Awesome customer support</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Our core values are:" }] }, { "type": "p", "children": [{ "text": "Our core values are:" }] },
{ "type": "p", "children": [{ "text": "" }] }, { "type": "p", "children": [{ "text": "" }] },
@ -356,8 +333,7 @@
"type": "p", "type": "p",
"children": [{ "text": "💙 Awesome customer support" }] "children": [{ "text": "💙 Awesome customer support" }]
} }
], ]
"plainText": "Our core values are:🔍 Transparency⚡ Ship fast💙 Awesome customer support"
} }
}, },
{ {
@ -387,11 +363,9 @@
"groupId": "cl96og2yr001v3b6ivhzb1x34", "groupId": "cl96og2yr001v3b6ivhzb1x34",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Sure, no problem!</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Sure, no problem!" }] } { "type": "p", "children": [{ "text": "Sure, no problem!" }] }
], ]
"plainText": "Sure, no problem!"
} }
}, },
{ {
@ -419,7 +393,6 @@
"groupId": "cl96oh3mn001z3b6i2b0no81w", "groupId": "cl96oh3mn001z3b6i2b0no81w",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Alright, we&apos;ll reach out to you very soon. Thank you so much 💙</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -429,8 +402,7 @@
} }
] ]
} }
], ]
"plainText": "Alright, we'll reach out to you very soon. Thank you so much 💙"
} }
} }
] ]

View File

@ -28,7 +28,6 @@
"type": "text", "type": "text",
"groupId": "kinRXxYop2X4d7F9qt8WNB", "groupId": "kinRXxYop2X4d7F9qt8WNB",
"content": { "content": {
"html": "<div>Welcome to <span class=\"slate-bold\">AA</span> (Awesome Agency)</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -38,8 +37,7 @@
{ "text": " (Awesome Agency)" } { "text": " (Awesome Agency)" }
] ]
} }
], ]
"plainText": "Welcome to AA (Awesome Agency)"
} }
}, },
{ {
@ -77,14 +75,12 @@
"type": "text", "type": "text",
"groupId": "o4SH1UtKANnW5N5D67oZUz", "groupId": "o4SH1UtKANnW5N5D67oZUz",
"content": { "content": {
"html": "<div>Great! Nice to meet you {{Name}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Great! Nice to meet you {{Name}}" }] "children": [{ "text": "Great! Nice to meet you {{Name}}" }]
} }
], ]
"plainText": "Great! Nice to meet you {{Name}}"
} }
}, },
{ {
@ -92,7 +88,6 @@
"type": "text", "type": "text",
"groupId": "o4SH1UtKANnW5N5D67oZUz", "groupId": "o4SH1UtKANnW5N5D67oZUz",
"content": { "content": {
"html": "<div>What&#x27;s the best email we can reach you at?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -100,8 +95,7 @@
{ "text": "What's the best email we can reach you at?" } { "text": "What's the best email we can reach you at?" }
] ]
} }
], ]
"plainText": "What's the best email we can reach you at?"
} }
}, },
{ {
@ -127,11 +121,9 @@
"type": "text", "type": "text",
"groupId": "q5dAhqSTCaNdiGSJm9B9Rw", "groupId": "q5dAhqSTCaNdiGSJm9B9Rw",
"content": { "content": {
"html": "<div>What&#x27;s your name?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What's your name?" }] } { "type": "p", "children": [{ "text": "What's your name?" }] }
], ]
"plainText": "What's your name?"
} }
}, },
{ {
@ -160,14 +152,12 @@
"type": "text", "type": "text",
"groupId": "fKqRz7iswk7ULaj5PJocZL", "groupId": "fKqRz7iswk7ULaj5PJocZL",
"content": { "content": {
"html": "<div>What services are you interested in?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "What services are you interested in?" }] "children": [{ "text": "What services are you interested in?" }]
} }
], ]
"plainText": "What services are you interested in?"
} }
}, },
{ {
@ -215,7 +205,6 @@
"type": "text", "type": "text",
"groupId": "7qHBEyCMvKEJryBHzPmHjV", "groupId": "7qHBEyCMvKEJryBHzPmHjV",
"content": { "content": {
"html": "<div>Can you tell me a bit more about your needs?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -223,8 +212,7 @@
{ "text": "Can you tell me a bit more about your needs?" } { "text": "Can you tell me a bit more about your needs?" }
] ]
} }
], ]
"plainText": "Can you tell me a bit more about your needs?"
} }
}, },
{ {
@ -249,9 +237,7 @@
"type": "text", "type": "text",
"groupId": "vF7AD7zSAj7SNvN3gr9N94", "groupId": "vF7AD7zSAj7SNvN3gr9N94",
"content": { "content": {
"html": "<div>Perfect!</div>", "richText": [{ "type": "p", "children": [{ "text": "Perfect!" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Perfect!" }] }],
"plainText": "Perfect!"
} }
}, },
{ {
@ -259,14 +245,12 @@
"type": "text", "type": "text",
"groupId": "vF7AD7zSAj7SNvN3gr9N94", "groupId": "vF7AD7zSAj7SNvN3gr9N94",
"content": { "content": {
"html": "<div>We&#x27;ll get back to you at {{Email}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "We'll get back to you at {{Email}}" }] "children": [{ "text": "We'll get back to you at {{Email}}" }]
} }
], ]
"plainText": "We'll get back to you at {{Email}}"
} }
} }
], ],

View File

@ -29,11 +29,9 @@
"id": "uaks8b01ec3fln8g5iq9gnv7", "id": "uaks8b01ec3fln8g5iq9gnv7",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Hi there! 👋</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Hi there! 👋" }] } { "type": "p", "children": [{ "text": "Hi there! 👋" }] }
], ]
"plainText": "Hi there! 👋"
}, },
"groupId": "gr9wedxcqxie11ki9yss1h5o" "groupId": "gr9wedxcqxie11ki9yss1h5o"
}, },
@ -41,7 +39,6 @@
"id": "iy9brewiabfhv7ctsvdd5fg6", "id": "iy9brewiabfhv7ctsvdd5fg6",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Sign up for the newsletter and <span class=\"slate-bold\">get free access to our exclusive &apos;Community Bundle&apos;.</span></div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -53,8 +50,7 @@
} }
] ]
} }
], ]
"plainText": "Sign up for the newsletter and get free access to our exclusive 'Community Bundle'."
}, },
"groupId": "gr9wedxcqxie11ki9yss1h5o" "groupId": "gr9wedxcqxie11ki9yss1h5o"
}, },
@ -62,7 +58,6 @@
"id": "immlrmjc0tnvc0rd1552c0ey", "id": "immlrmjc0tnvc0rd1552c0ey",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>This bundle helps you create the best Community possible for your project.</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -72,8 +67,7 @@
} }
] ]
} }
], ]
"plainText": "This bundle helps you create the best Community possible for your project."
}, },
"groupId": "gr9wedxcqxie11ki9yss1h5o" "groupId": "gr9wedxcqxie11ki9yss1h5o"
}, },
@ -81,11 +75,9 @@
"id": "i1pv6t8sj9wdzoheplwj1cnr", "id": "i1pv6t8sj9wdzoheplwj1cnr",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What&apos;s your name?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What's your name?" }] } { "type": "p", "children": [{ "text": "What's your name?" }] }
], ]
"plainText": "What's your name?"
}, },
"groupId": "gr9wedxcqxie11ki9yss1h5o" "groupId": "gr9wedxcqxie11ki9yss1h5o"
}, },
@ -111,7 +103,6 @@
"id": "pcx0bo7egsq3il16707mkuzc", "id": "pcx0bo7egsq3il16707mkuzc",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Ok, {{Name}}. What email would you like to sign up with?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -121,8 +112,7 @@
} }
] ]
} }
], ]
"plainText": "Ok, {{Name}}. What email would you like to sign up with?"
}, },
"groupId": "xaloto3qrrbtcdcrob013xcx" "groupId": "xaloto3qrrbtcdcrob013xcx"
}, },
@ -148,14 +138,12 @@
"id": "o6helbp9c682dur5e8bt9yov", "id": "o6helbp9c682dur5e8bt9yov",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What&apos;s your goal with the community?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "What's your goal with the community?" }] "children": [{ "text": "What's your goal with the community?" }]
} }
], ]
"plainText": "What's your goal with the community?"
}, },
"groupId": "tp9r95ay5vm9zlgzw8twtxn3" "groupId": "tp9r95ay5vm9zlgzw8twtxn3"
}, },
@ -207,7 +195,6 @@
"id": "tfqqveo72xt7i7ii9imztcd4", "id": "tfqqveo72xt7i7ii9imztcd4",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Perfect, your bundle will be emailed to you right away 🚀</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -217,8 +204,7 @@
} }
] ]
} }
], ]
"plainText": "Perfect, your bundle will be emailed to you right away 🚀"
}, },
"groupId": "cszciavjonb2qp0ga0pladoj" "groupId": "cszciavjonb2qp0ga0pladoj"
}, },
@ -226,14 +212,12 @@
"id": "xxujz94e696scfz0jjw5zyvw", "id": "xxujz94e696scfz0jjw5zyvw",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What&apos;s your goal with the community?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "What's your goal with the community?" }] "children": [{ "text": "What's your goal with the community?" }]
} }
], ]
"plainText": "What's your goal with the community?"
}, },
"groupId": "cszciavjonb2qp0ga0pladoj" "groupId": "cszciavjonb2qp0ga0pladoj"
}, },
@ -344,14 +328,12 @@
"id": "dzcw0vwo23vhp2nwyxl99va8", "id": "dzcw0vwo23vhp2nwyxl99va8",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Want to know how to win loyal fans?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Want to know how to win loyal fans?" }] "children": [{ "text": "Want to know how to win loyal fans?" }]
} }
], ]
"plainText": "Want to know how to win loyal fans?"
}, },
"groupId": "k2sbuizycrpuyf44v9eebebr" "groupId": "k2sbuizycrpuyf44v9eebebr"
}, },
@ -359,11 +341,9 @@
"id": "yh8ueuio717ceybrcsqa1ekq", "id": "yh8ueuio717ceybrcsqa1ekq",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Check out this video:</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Check out this video:" }] } { "type": "p", "children": [{ "text": "Check out this video:" }] }
], ]
"plainText": "Check out this video:"
}, },
"groupId": "k2sbuizycrpuyf44v9eebebr" "groupId": "k2sbuizycrpuyf44v9eebebr"
}, },
@ -388,7 +368,6 @@
"id": "anu87wo53n3ihq4xl8smprwg", "id": "anu87wo53n3ihq4xl8smprwg",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Want to know how to have a great competitive advantage with your community?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -398,8 +377,7 @@
} }
] ]
} }
], ]
"plainText": "Want to know how to have a great competitive advantage with your community?"
}, },
"groupId": "v6s5yza7kgretdmbke7lg5u7" "groupId": "v6s5yza7kgretdmbke7lg5u7"
}, },
@ -407,11 +385,9 @@
"id": "ku2scubf21eqnip3ig3rc7n9", "id": "ku2scubf21eqnip3ig3rc7n9",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Check out this video:</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Check out this video:" }] } { "type": "p", "children": [{ "text": "Check out this video:" }] }
], ]
"plainText": "Check out this video:"
}, },
"groupId": "v6s5yza7kgretdmbke7lg5u7" "groupId": "v6s5yza7kgretdmbke7lg5u7"
}, },
@ -436,7 +412,6 @@
"id": "ysedrtj5q17usk5ezpa5g88e", "id": "ysedrtj5q17usk5ezpa5g88e",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Want to know how to improve your product by leveraging a community?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -446,8 +421,7 @@
} }
] ]
} }
], ]
"plainText": "Want to know how to improve your product by leveraging a community?"
}, },
"groupId": "l3pc0992zp0hw8ea83b7aky3" "groupId": "l3pc0992zp0hw8ea83b7aky3"
}, },
@ -455,11 +429,9 @@
"id": "xy08sticb76u82sgcfaeqpe2", "id": "xy08sticb76u82sgcfaeqpe2",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Check out this video:</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Check out this video:" }] } { "type": "p", "children": [{ "text": "Check out this video:" }] }
], ]
"plainText": "Check out this video:"
}, },
"groupId": "l3pc0992zp0hw8ea83b7aky3" "groupId": "l3pc0992zp0hw8ea83b7aky3"
}, },
@ -484,7 +456,6 @@
"id": "lu0bevnjfkor1ugbnbkev7t3", "id": "lu0bevnjfkor1ugbnbkev7t3",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Want to offer better support with a community?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -492,8 +463,7 @@
{ "text": "Want to offer better support with a community?" } { "text": "Want to offer better support with a community?" }
] ]
} }
], ]
"plainText": "Want to offer better support with a community?"
}, },
"groupId": "f4hlh2oq8viwxrpl9ppq5d42" "groupId": "f4hlh2oq8viwxrpl9ppq5d42"
}, },
@ -501,11 +471,9 @@
"id": "jrhdfrdn4gdstpktq1q0gk1q", "id": "jrhdfrdn4gdstpktq1q0gk1q",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Check out this video:</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Check out this video:" }] } { "type": "p", "children": [{ "text": "Check out this video:" }] }
], ]
"plainText": "Check out this video:"
}, },
"groupId": "f4hlh2oq8viwxrpl9ppq5d42" "groupId": "f4hlh2oq8viwxrpl9ppq5d42"
}, },

View File

@ -30,9 +30,7 @@
"groupId": "cl1sep1c5001w2e6e77bb1uwb", "groupId": "cl1sep1c5001w2e6e77bb1uwb",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Hi! 👋</div>", "richText": [{ "type": "p", "children": [{ "text": "Hi! 👋" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Hi! 👋" }] }],
"plainText": "Hi! 👋"
} }
}, },
{ {
@ -40,7 +38,6 @@
"groupId": "cl1sep1c5001w2e6e77bb1uwb", "groupId": "cl1sep1c5001w2e6e77bb1uwb",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>I&#x27;m glad you are intersted in our services.</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -48,8 +45,7 @@
{ "text": "I'm glad you are intersted in our services." } { "text": "I'm glad you are intersted in our services." }
] ]
} }
], ]
"plainText": "I'm glad you are intersted in our services."
} }
}, },
{ {
@ -57,7 +53,6 @@
"groupId": "cl1sep1c5001w2e6e77bb1uwb", "groupId": "cl1sep1c5001w2e6e77bb1uwb",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>I&#x27;ll need to know a little more about you</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -65,8 +60,7 @@
{ "text": "I'll need to know a little more about you" } { "text": "I'll need to know a little more about you" }
] ]
} }
], ]
"plainText": "I'll need to know a little more about you"
} }
}, },
{ {
@ -91,14 +85,12 @@
"groupId": "cl1sern8w00202e6ez69l190j", "groupId": "cl1sern8w00202e6ez69l190j",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Do you work with a specific company?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Do you work with a specific company?" }] "children": [{ "text": "Do you work with a specific company?" }]
} }
], ]
"plainText": "Do you work with a specific company?"
} }
}, },
{ {
@ -144,11 +136,9 @@
"groupId": "cl1sez6zd00262e6ebh59k1bs", "groupId": "cl1sez6zd00262e6ebh59k1bs",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Which company?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Which company?" }] } { "type": "p", "children": [{ "text": "Which company?" }] }
], ]
"plainText": "Which company?"
} }
}, },
{ {
@ -177,7 +167,6 @@
"groupId": "cl1sf0ogu002d2e6edyhcuu6f", "groupId": "cl1sf0ogu002d2e6edyhcuu6f",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>How many employees is your team composed of?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -185,8 +174,7 @@
{ "text": "How many employees is your team composed of?" } { "text": "How many employees is your team composed of?" }
] ]
} }
], ]
"plainText": "How many employees is your team composed of?"
} }
}, },
{ {
@ -292,11 +280,9 @@
"groupId": "cl1sf4qk500332e6e8gs5mn3t", "groupId": "cl1sf4qk500332e6e8gs5mn3t",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Where are you based?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Where are you based?" }] } { "type": "p", "children": [{ "text": "Where are you based?" }] }
], ]
"plainText": "Where are you based?"
} }
}, },
{ {
@ -366,7 +352,6 @@
"groupId": "cl1sf85am003i2e6e1yq8eoa7", "groupId": "cl1sf85am003i2e6e1yq8eoa7",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Thank you for answering these questions</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -374,8 +359,7 @@
{ "text": "Thank you for answering these questions" } { "text": "Thank you for answering these questions" }
] ]
} }
], ]
"plainText": "Thank you for answering these questions"
} }
}, },
{ {
@ -415,11 +399,9 @@
"groupId": "cl1sfbbv0003s2e6eheyhv7ke", "groupId": "cl1sfbbv0003s2e6eheyhv7ke",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What&#x27;s your job role?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What's your job role?" }] } { "type": "p", "children": [{ "text": "What's your job role?" }] }
], ]
"plainText": "What's your job role?"
} }
}, },
{ {
@ -506,7 +488,6 @@
"groupId": "cl1sffxet004j2e6ec6gfbffh", "groupId": "cl1sffxet004j2e6ec6gfbffh",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Our service is specifically designed for your situation.</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -516,8 +497,7 @@
} }
] ]
} }
], ]
"plainText": "Our service is specifically designed for your situation."
} }
}, },
{ {
@ -525,14 +505,12 @@
"groupId": "cl1sffxet004j2e6ec6gfbffh", "groupId": "cl1sffxet004j2e6ec6gfbffh",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>We&#x27;ll get back to you ASAP. 👋</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "We'll get back to you ASAP. 👋" }] "children": [{ "text": "We'll get back to you ASAP. 👋" }]
} }
], ]
"plainText": "We'll get back to you ASAP. 👋"
} }
} }
] ]
@ -547,7 +525,6 @@
"groupId": "cl1sfgjlr004l2e6erykli1ud", "groupId": "cl1sfgjlr004l2e6erykli1ud",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Our service doesn&#x27;t seem to suit your need.</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -555,8 +532,7 @@
{ "text": "Our service doesn't seem to suit your need." } { "text": "Our service doesn't seem to suit your need." }
] ]
} }
], ]
"plainText": "Our service doesn't seem to suit your need."
} }
}, },
{ {
@ -564,7 +540,6 @@
"groupId": "cl1sfgjlr004l2e6erykli1ud", "groupId": "cl1sfgjlr004l2e6erykli1ud",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>We&#x27;ll still send you valuable content by email.</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -572,8 +547,7 @@
{ "text": "We'll still send you valuable content by email." } { "text": "We'll still send you valuable content by email." }
] ]
} }
], ]
"plainText": "We'll still send you valuable content by email."
} }
}, },
{ {
@ -581,11 +555,9 @@
"groupId": "cl1sfgjlr004l2e6erykli1ud", "groupId": "cl1sfgjlr004l2e6erykli1ud",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Bye bye 👋</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Bye bye 👋" }] } { "type": "p", "children": [{ "text": "Bye bye 👋" }] }
], ]
"plainText": "Bye bye 👋"
} }
} }
] ]

View File

@ -38,7 +38,6 @@
"id": "pd22jxxptmw66xhwddj8toos", "id": "pd22jxxptmw66xhwddj8toos",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Welcome to our film recommendation bot 👋</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -46,8 +45,7 @@
{ "text": "Welcome to our film recommendation bot 👋" } { "text": "Welcome to our film recommendation bot 👋" }
] ]
} }
], ]
"plainText": "Welcome to our film recommendation bot 👋"
}, },
"groupId": "vpsi7kfd4hiu38fd0txt3ndn" "groupId": "vpsi7kfd4hiu38fd0txt3ndn"
}, },
@ -63,14 +61,12 @@
"id": "gr8qlv926y817febq85zl0y0", "id": "gr8qlv926y817febq85zl0y0",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>It is powered by The Movie DB API 🚀</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "It is powered by The Movie DB API 🚀" }] "children": [{ "text": "It is powered by The Movie DB API 🚀" }]
} }
], ]
"plainText": "It is powered by The Movie DB API 🚀"
}, },
"groupId": "vpsi7kfd4hiu38fd0txt3ndn" "groupId": "vpsi7kfd4hiu38fd0txt3ndn"
}, },
@ -86,11 +82,9 @@
"id": "qllnzuo1zxr5ef8bq9kjdjel", "id": "qllnzuo1zxr5ef8bq9kjdjel",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>How can I we help?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "How can I we help?" }] } { "type": "p", "children": [{ "text": "How can I we help?" }] }
], ]
"plainText": "How can I we help?"
}, },
"groupId": "vpsi7kfd4hiu38fd0txt3ndn" "groupId": "vpsi7kfd4hiu38fd0txt3ndn"
}, },
@ -127,9 +121,7 @@
"id": "vqrsszjis5qtbalo8d0fwb1j", "id": "vqrsszjis5qtbalo8d0fwb1j",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Sure!</div>", "richText": [{ "type": "p", "children": [{ "text": "Sure!" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Sure!" }] }],
"plainText": "Sure!"
}, },
"groupId": "xjwiuplgl79ezx460xfuplgr" "groupId": "xjwiuplgl79ezx460xfuplgr"
}, },
@ -166,14 +158,12 @@
"id": "v2516de17eigf6mbccy2t6dr", "id": "v2516de17eigf6mbccy2t6dr",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Select your desired genre 👇</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Select your desired genre 👇" }] "children": [{ "text": "Select your desired genre 👇" }]
} }
], ]
"plainText": "Select your desired genre 👇"
}, },
"groupId": "xjwiuplgl79ezx460xfuplgr" "groupId": "xjwiuplgl79ezx460xfuplgr"
}, },
@ -218,9 +208,7 @@
"id": "yqci070mkxfjjdok5yztj1nx", "id": "yqci070mkxfjjdok5yztj1nx",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Sure!</div>", "richText": [{ "type": "p", "children": [{ "text": "Sure!" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Sure!" }] }],
"plainText": "Sure!"
}, },
"groupId": "dewz832l9kse7xx1vhkihbk6" "groupId": "dewz832l9kse7xx1vhkihbk6"
}, },
@ -257,14 +245,12 @@
"id": "u6q1nvxowaszfdu4g42nqz38", "id": "u6q1nvxowaszfdu4g42nqz38",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Here are popular movies this week 👇</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Here are popular movies this week 👇" }] "children": [{ "text": "Here are popular movies this week 👇" }]
} }
], ]
"plainText": "Here are popular movies this week 👇"
}, },
"groupId": "dewz832l9kse7xx1vhkihbk6" "groupId": "dewz832l9kse7xx1vhkihbk6"
}, },
@ -309,7 +295,6 @@
"id": "dbp1cdzqy7txabinmm5osi1a", "id": "dbp1cdzqy7txabinmm5osi1a",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Here are trending movies for the {{Selected genre}} genre</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -319,8 +304,7 @@
} }
] ]
} }
], ]
"plainText": "Here are trending movies for the {{Selected genre}} genre"
}, },
"groupId": "a1c99wep8eqambqjw8g8yeo8" "groupId": "a1c99wep8eqambqjw8g8yeo8"
}, },
@ -399,11 +383,9 @@
"id": "tsferop3f80u2jq9p8ip964h", "id": "tsferop3f80u2jq9p8ip964h",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Excellent choice 🔥</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Excellent choice 🔥" }] } { "type": "p", "children": [{ "text": "Excellent choice 🔥" }] }
], ]
"plainText": "Excellent choice 🔥"
}, },
"groupId": "xutzzlxo0f5hs9q8ga1e8tl9" "groupId": "xutzzlxo0f5hs9q8ga1e8tl9"
}, },
@ -466,11 +448,9 @@
"id": "t21xt4nr48hyu2qk2ij0d2oe", "id": "t21xt4nr48hyu2qk2ij0d2oe",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>{{Movie Overview}}</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "{{Movie Overview}}" }] } { "type": "p", "children": [{ "text": "{{Movie Overview}}" }] }
], ]
"plainText": "{{Movie Overview}}"
}, },
"groupId": "xutzzlxo0f5hs9q8ga1e8tl9" "groupId": "xutzzlxo0f5hs9q8ga1e8tl9"
}, },

View File

@ -29,9 +29,7 @@
"id": "vep990mmfbe64nqczp66xebw", "id": "vep990mmfbe64nqczp66xebw",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Hey! 👋</div>", "richText": [{ "type": "p", "children": [{ "text": "Hey! 👋" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Hey! 👋" }] }],
"plainText": "Hey! 👋"
}, },
"groupId": "g7l1tc86ty1r6x0yn0r2g1xo" "groupId": "g7l1tc86ty1r6x0yn0r2g1xo"
}, },
@ -39,7 +37,6 @@
"id": "u1oeokc5j8bzwi4lwqyf7c8q", "id": "u1oeokc5j8bzwi4lwqyf7c8q",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Since you are part of our daily users, can I ask you <span class=\"slate-bold\">2 questions</span>?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -51,8 +48,7 @@
{ "text": "?" } { "text": "?" }
] ]
} }
], ]
"plainText": "Since you are part of our daily users, can I ask you 2 questions?"
}, },
"groupId": "g7l1tc86ty1r6x0yn0r2g1xo" "groupId": "g7l1tc86ty1r6x0yn0r2g1xo"
}, },
@ -82,7 +78,6 @@
"id": "jcp3qhpb4wf95g0ylrp4e8zb", "id": "jcp3qhpb4wf95g0ylrp4e8zb",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>How likely will you recommend our product<span class=\"slate-bold\"> </span>to a friend or colleague?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -92,8 +87,7 @@
{ "text": "to a friend or colleague?" } { "text": "to a friend or colleague?" }
] ]
} }
], ]
"plainText": "How likely will you recommend our product to a friend or colleague?"
}, },
"groupId": "xgqei015z6d58gefpviz8053" "groupId": "xgqei015z6d58gefpviz8053"
}, },
@ -167,14 +161,12 @@
"id": "izehojk23xug74tylpm0wbib", "id": "izehojk23xug74tylpm0wbib",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>I&apos;m glad to hear that 😍</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "I'm glad to hear that 😍" }] "children": [{ "text": "I'm glad to hear that 😍" }]
} }
], ]
"plainText": "I'm glad to hear that 😍"
}, },
"groupId": "rp2r31gn1w5t1aeej96bhjj3" "groupId": "rp2r31gn1w5t1aeej96bhjj3"
}, },
@ -182,14 +174,12 @@
"id": "qj3e1cxwjub800r6g3lfa4ei", "id": "qj3e1cxwjub800r6g3lfa4ei",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Could you tell us why?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Could you tell us why?" }] "children": [{ "text": "Could you tell us why?" }]
} }
], ]
"plainText": "Could you tell us why?"
}, },
"groupId": "rp2r31gn1w5t1aeej96bhjj3", "groupId": "rp2r31gn1w5t1aeej96bhjj3",
"outgoingEdgeId": "hycn6wx0j9ug4wf5vzz9aytx" "outgoingEdgeId": "hycn6wx0j9ug4wf5vzz9aytx"
@ -222,14 +212,12 @@
"id": "ou7airondk1mxm4inzzyyr1x", "id": "ou7airondk1mxm4inzzyyr1x",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Could you tell us what went wrong?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Could you tell us what went wrong?" }] "children": [{ "text": "Could you tell us what went wrong?" }]
} }
], ]
"plainText": "Could you tell us what went wrong?"
}, },
"groupId": "qj9qgsbfv6u1f5oe1bjnwnu9", "groupId": "qj9qgsbfv6u1f5oe1bjnwnu9",
"outgoingEdgeId": "glj5ishgke8i6s6eyjnmbel1" "outgoingEdgeId": "glj5ishgke8i6s6eyjnmbel1"
@ -361,11 +349,9 @@
"id": "eixinwxcgsng6v8blw6jdgwy", "id": "eixinwxcgsng6v8blw6jdgwy",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Thank you! 🙏</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Thank you! 🙏" }] } { "type": "p", "children": [{ "text": "Thank you! 🙏" }] }
], ]
"plainText": "Thank you! 🙏"
}, },
"groupId": "pp1ncsdaki07pfq5pjl53v6r" "groupId": "pp1ncsdaki07pfq5pjl53v6r"
}, },
@ -373,7 +359,6 @@
"id": "cjqu4wje2zr8i5ehivxv5567", "id": "cjqu4wje2zr8i5ehivxv5567",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Would you be ok to leave a review on Capterra?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -381,8 +366,7 @@
{ "text": "Would you be ok to leave a review on Capterra?" } { "text": "Would you be ok to leave a review on Capterra?" }
] ]
} }
], ]
"plainText": "Would you be ok to leave a review on Capterra?"
}, },
"groupId": "pp1ncsdaki07pfq5pjl53v6r" "groupId": "pp1ncsdaki07pfq5pjl53v6r"
}, },
@ -419,7 +403,6 @@
"id": "m1my2b6gqq2hgfecw1vs2vcm", "id": "m1my2b6gqq2hgfecw1vs2vcm",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Thank you for taking the time to answer!</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -427,8 +410,7 @@
{ "text": "Thank you for taking the time to answer!" } { "text": "Thank you for taking the time to answer!" }
] ]
} }
], ]
"plainText": "Thank you for taking the time to answer!"
}, },
"groupId": "znljx8q0q2ggih0ipu28ryby" "groupId": "znljx8q0q2ggih0ipu28ryby"
}, },
@ -436,11 +418,9 @@
"id": "fyl3k7qc6jdmc8t38b9wkcrh", "id": "fyl3k7qc6jdmc8t38b9wkcrh",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Have a beautiful day!</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Have a beautiful day!" }] } { "type": "p", "children": [{ "text": "Have a beautiful day!" }] }
], ]
"plainText": "Have a beautiful day!"
}, },
"groupId": "znljx8q0q2ggih0ipu28ryby" "groupId": "znljx8q0q2ggih0ipu28ryby"
}, },
@ -463,7 +443,6 @@
"id": "dfisk4xq8csn0t2aute6hbsd", "id": "dfisk4xq8csn0t2aute6hbsd",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Sorry that your experience hasn&apos;t been amazing 🙁</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -473,8 +452,7 @@
} }
] ]
} }
], ]
"plainText": "Sorry that your experience hasn't been amazing 🙁"
}, },
"groupId": "vvbtgh5ptk49shyjn3zn6d71" "groupId": "vvbtgh5ptk49shyjn3zn6d71"
}, },
@ -482,7 +460,6 @@
"id": "u6vs0akagfjg63zq8z1rcc14", "id": "u6vs0akagfjg63zq8z1rcc14",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Here is a promo code if you&apos;d like to give our product another chance: <span class=\"slate-bold\">PROMO123</span></div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -493,8 +470,7 @@
{ "bold": true, "text": "PROMO123" } { "bold": true, "text": "PROMO123" }
] ]
} }
], ]
"plainText": "Here is a promo code if you'd like to give our product another chance: PROMO123"
}, },
"groupId": "vvbtgh5ptk49shyjn3zn6d71" "groupId": "vvbtgh5ptk49shyjn3zn6d71"
}, },
@ -517,11 +493,9 @@
"id": "cd8ftyg6tkjggncxuo242u3j", "id": "cd8ftyg6tkjggncxuo242u3j",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Amazing 🤩</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Amazing 🤩" }] } { "type": "p", "children": [{ "text": "Amazing 🤩" }] }
], ]
"plainText": "Amazing 🤩"
}, },
"groupId": "mwfu8ot0z37zfq2fbo5rcyrl" "groupId": "mwfu8ot0z37zfq2fbo5rcyrl"
}, },
@ -529,14 +503,12 @@
"id": "nigypz7fhnt07440o0829o81", "id": "nigypz7fhnt07440o0829o81",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Let me take you there...</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Let me take you there..." }] "children": [{ "text": "Let me take you there..." }]
} }
], ]
"plainText": "Let me take you there..."
}, },
"groupId": "mwfu8ot0z37zfq2fbo5rcyrl" "groupId": "mwfu8ot0z37zfq2fbo5rcyrl"
}, },

View File

@ -29,11 +29,9 @@
"id": "cl1267q2c000e2e6dynjeg83n", "id": "cl1267q2c000e2e6dynjeg83n",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Welcome 👋</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Welcome 👋" }] } { "type": "p", "children": [{ "text": "Welcome 👋" }] }
], ]
"plainText": "Welcome 👋"
}, },
"groupId": "az9nafw4tu9b6dyh3cvutlek" "groupId": "az9nafw4tu9b6dyh3cvutlek"
}, },
@ -41,11 +39,9 @@
"id": "cl1267y1u000f2e6d4rlglv6g", "id": "cl1267y1u000f2e6d4rlglv6g",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What&#x27;s your name?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What's your name?" }] } { "type": "p", "children": [{ "text": "What's your name?" }] }
], ]
"plainText": "What's your name?"
}, },
"groupId": "az9nafw4tu9b6dyh3cvutlek" "groupId": "az9nafw4tu9b6dyh3cvutlek"
}, },
@ -74,11 +70,9 @@
"id": "cl1266v6f000a2e6db7wj3ux7", "id": "cl1266v6f000a2e6db7wj3ux7",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Welcome {{Name}} 👋</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Welcome {{Name}} 👋" }] } { "type": "p", "children": [{ "text": "Welcome {{Name}} 👋" }] }
], ]
"plainText": "Welcome {{Name}} 👋"
}, },
"groupId": "s3hgjtmb1bzq6ip2bm9w1r53" "groupId": "s3hgjtmb1bzq6ip2bm9w1r53"
}, },
@ -86,7 +80,6 @@
"id": "cl126hb9m000l2e6d5qk3mohn", "id": "cl126hb9m000l2e6d5qk3mohn",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>I&#x27;m super pumped that you&#x27;ve decided to try out Typebot 😍</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -96,8 +89,7 @@
} }
] ]
} }
], ]
"plainText": "I'm super pumped that you've decided to try out Typebot 😍"
}, },
"groupId": "s3hgjtmb1bzq6ip2bm9w1r53" "groupId": "s3hgjtmb1bzq6ip2bm9w1r53"
}, },
@ -105,7 +97,6 @@
"id": "cl126hpw1000m2e6dneousygl", "id": "cl126hpw1000m2e6dneousygl",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>You are small steps away from meaningful, hyper-personalized experience for your users</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -115,8 +106,7 @@
} }
] ]
} }
], ]
"plainText": "You are small steps away from meaningful, hyper-personalized experience for your users"
}, },
"groupId": "s3hgjtmb1bzq6ip2bm9w1r53" "groupId": "s3hgjtmb1bzq6ip2bm9w1r53"
}, },
@ -124,7 +114,6 @@
"id": "cl126guhd000k2e6d6ypkex9z", "id": "cl126guhd000k2e6d6ypkex9z",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Let&#x27;s get you set up for your Typebot journey.</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -132,8 +121,7 @@
{ "text": "Let's get you set up for your Typebot journey." } { "text": "Let's get you set up for your Typebot journey." }
] ]
} }
], ]
"plainText": "Let's get you set up for your Typebot journey."
}, },
"groupId": "s3hgjtmb1bzq6ip2bm9w1r53" "groupId": "s3hgjtmb1bzq6ip2bm9w1r53"
}, },
@ -141,14 +129,12 @@
"id": "cl126ixp9000q2e6dslh0zypi", "id": "cl126ixp9000q2e6dslh0zypi",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Do you work for a specific company?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Do you work for a specific company?" }] "children": [{ "text": "Do you work for a specific company?" }]
} }
], ]
"plainText": "Do you work for a specific company?"
}, },
"groupId": "s3hgjtmb1bzq6ip2bm9w1r53" "groupId": "s3hgjtmb1bzq6ip2bm9w1r53"
}, },
@ -198,7 +184,6 @@
"id": "cl126krck00112e6d1m6ctxpn", "id": "cl126krck00112e6d1m6ctxpn",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What type of bots are you planning to build with Typebot?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -208,8 +193,7 @@
} }
] ]
} }
], ]
"plainText": "What type of bots are you planning to build with Typebot?"
}, },
"groupId": "m8k3pv1rjckh3arxgitwo43i" "groupId": "m8k3pv1rjckh3arxgitwo43i"
}, },
@ -309,7 +293,6 @@
"id": "cl126p76d001k2e6dbhnf2ysq", "id": "cl126p76d001k2e6dbhnf2ysq",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Thank you for answering those questions!</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -317,8 +300,7 @@
{ "text": "Thank you for answering those questions!" } { "text": "Thank you for answering those questions!" }
] ]
} }
], ]
"plainText": "Thank you for answering those questions!"
}, },
"groupId": "cnf2ljrlt875d005783ju7hc" "groupId": "cnf2ljrlt875d005783ju7hc"
}, },
@ -335,11 +317,9 @@
"groupId": "cnf2ljrlt875d005783ju7hc", "groupId": "cnf2ljrlt875d005783ju7hc",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>See you soon 🚀</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "See you soon 🚀" }] } { "type": "p", "children": [{ "text": "See you soon 🚀" }] }
], ]
"plainText": "See you soon 🚀"
} }
} }
], ],
@ -353,11 +333,9 @@
"id": "cl127yxym000b2e6d9hksxo6h", "id": "cl127yxym000b2e6d9hksxo6h",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What else?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What else?" }] } { "type": "p", "children": [{ "text": "What else?" }] }
], ]
"plainText": "What else?"
}, },
"groupId": "hduy797g246pj8qnhsxy5kt5" "groupId": "hduy797g246pj8qnhsxy5kt5"
}, },

View File

@ -37,14 +37,12 @@
"type": "text", "type": "text",
"groupId": "cl1r09bc6000h2e6dqml18p4p", "groupId": "cl1r09bc6000h2e6dqml18p4p",
"content": { "content": {
"html": "<div>What does SEO stand for?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "What does SEO stand for?" }] "children": [{ "text": "What does SEO stand for?" }]
} }
], ]
"plainText": "What does SEO stand for?"
} }
}, },
{ {
@ -102,11 +100,9 @@
"type": "text", "type": "text",
"groupId": "cl1r0b3ww000q2e6d4aihat41", "groupId": "cl1r0b3ww000q2e6d4aihat41",
"content": { "content": {
"html": "<div>Well done!</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Well done!" }] } { "type": "p", "children": [{ "text": "Well done!" }] }
], ]
"plainText": "Well done!"
} }
}, },
{ {
@ -114,11 +110,9 @@
"type": "text", "type": "text",
"groupId": "cl1r0b3ww000q2e6d4aihat41", "groupId": "cl1r0b3ww000q2e6d4aihat41",
"content": { "content": {
"html": "<div>What is anchor text?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What is anchor text?" }] } { "type": "p", "children": [{ "text": "What is anchor text?" }] }
], ]
"plainText": "What is anchor text?"
} }
}, },
{ {
@ -176,11 +170,9 @@
"type": "text", "type": "text",
"groupId": "cl1r0erik00182e6dfzezujj0", "groupId": "cl1r0erik00182e6dfzezujj0",
"content": { "content": {
"html": "<div>Well done!</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Well done!" }] } { "type": "p", "children": [{ "text": "Well done!" }] }
], ]
"plainText": "Well done!"
} }
}, },
{ {
@ -188,11 +180,9 @@
"type": "text", "type": "text",
"groupId": "cl1r0erik00182e6dfzezujj0", "groupId": "cl1r0erik00182e6dfzezujj0",
"content": { "content": {
"html": "<div>What is a persona ?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What is a persona ?" }] } { "type": "p", "children": [{ "text": "What is a persona ?" }] }
], ]
"plainText": "What is a persona ?"
} }
}, },
{ {
@ -250,11 +240,9 @@
"type": "text", "type": "text",
"groupId": "cl1r0j8u1001t2e6d42mjfcqo", "groupId": "cl1r0j8u1001t2e6d42mjfcqo",
"content": { "content": {
"html": "<div>Well done!</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Well done!" }] } { "type": "p", "children": [{ "text": "Well done!" }] }
], ]
"plainText": "Well done!"
} }
}, },
{ {
@ -262,14 +250,12 @@
"type": "text", "type": "text",
"groupId": "cl1r0j8u1001t2e6d42mjfcqo", "groupId": "cl1r0j8u1001t2e6d42mjfcqo",
"content": { "content": {
"html": "<div>What does CTA stand for?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "What does CTA stand for?" }] "children": [{ "text": "What does CTA stand for?" }]
} }
], ]
"plainText": "What does CTA stand for?"
} }
}, },
{ {
@ -318,9 +304,7 @@
"type": "text", "type": "text",
"groupId": "cl1r0c85100102e6d7uohf0cu", "groupId": "cl1r0c85100102e6d7uohf0cu",
"content": { "content": {
"html": "<div>WRONG!</div>", "richText": [{ "type": "p", "children": [{ "text": "WRONG!" }] }]
"richText": [{ "type": "p", "children": [{ "text": "WRONG!" }] }],
"plainText": "WRONG!"
} }
}, },
{ {
@ -328,7 +312,6 @@
"type": "text", "type": "text",
"groupId": "cl1r0c85100102e6d7uohf0cu", "groupId": "cl1r0c85100102e6d7uohf0cu",
"content": { "content": {
"html": "<div>SEO stands for Search Engine Optimization</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -336,8 +319,7 @@
{ "text": "SEO stands for Search Engine Optimization" } { "text": "SEO stands for Search Engine Optimization" }
] ]
} }
], ]
"plainText": "SEO stands for Search Engine Optimization"
}, },
"outgoingEdgeId": "cl1r0dibf00162e6dwuvli71j" "outgoingEdgeId": "cl1r0dibf00162e6dwuvli71j"
} }
@ -353,9 +335,7 @@
"type": "text", "type": "text",
"groupId": "cl1r0exdi001l2e6drdwj3u96", "groupId": "cl1r0exdi001l2e6drdwj3u96",
"content": { "content": {
"html": "<div>WRONG!</div>", "richText": [{ "type": "p", "children": [{ "text": "WRONG!" }] }]
"richText": [{ "type": "p", "children": [{ "text": "WRONG!" }] }],
"plainText": "WRONG!"
} }
}, },
{ {
@ -363,7 +343,6 @@
"type": "text", "type": "text",
"groupId": "cl1r0exdi001l2e6drdwj3u96", "groupId": "cl1r0exdi001l2e6drdwj3u96",
"content": { "content": {
"html": "<div>Anchor text is the visible text that is hyperlinked to another page</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -373,8 +352,7 @@
} }
] ]
} }
], ]
"plainText": "Anchor text is the visible text that is hyperlinked to another page"
}, },
"outgoingEdgeId": "cl1r0ic5f001s2e6dw777scrq" "outgoingEdgeId": "cl1r0ic5f001s2e6dw777scrq"
} }
@ -390,9 +368,7 @@
"type": "text", "type": "text",
"groupId": "cl1r0k3tq00272e6d1fwyajjx", "groupId": "cl1r0k3tq00272e6d1fwyajjx",
"content": { "content": {
"html": "<div>WRONG!</div>", "richText": [{ "type": "p", "children": [{ "text": "WRONG!" }] }]
"richText": [{ "type": "p", "children": [{ "text": "WRONG!" }] }],
"plainText": "WRONG!"
} }
}, },
{ {
@ -400,7 +376,6 @@
"type": "text", "type": "text",
"groupId": "cl1r0k3tq00272e6d1fwyajjx", "groupId": "cl1r0k3tq00272e6d1fwyajjx",
"content": { "content": {
"html": "<div>A persona is a fictional representation of a group of customers</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -410,8 +385,7 @@
} }
] ]
} }
], ]
"plainText": "A persona is a fictional representation of a group of customers"
}, },
"outgoingEdgeId": "cl1r0l7oa002j2e6dgtx0y1gh" "outgoingEdgeId": "cl1r0l7oa002j2e6dgtx0y1gh"
} }
@ -427,9 +401,7 @@
"type": "text", "type": "text",
"groupId": "cl1r0kqof002d2e6doqhpnuqy", "groupId": "cl1r0kqof002d2e6doqhpnuqy",
"content": { "content": {
"html": "<div>WRONG!</div>", "richText": [{ "type": "p", "children": [{ "text": "WRONG!" }] }]
"richText": [{ "type": "p", "children": [{ "text": "WRONG!" }] }],
"plainText": "WRONG!"
} }
}, },
{ {
@ -437,7 +409,6 @@
"type": "text", "type": "text",
"groupId": "cl1r0kqof002d2e6doqhpnuqy", "groupId": "cl1r0kqof002d2e6doqhpnuqy",
"content": { "content": {
"html": "<div>Anchor text is the visible text that is hyperlinked to another page</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -447,8 +418,7 @@
} }
] ]
} }
], ]
"plainText": "Anchor text is the visible text that is hyperlinked to another page"
}, },
"outgoingEdgeId": "cl1r0p4my00312e6d1wsgwohi" "outgoingEdgeId": "cl1r0p4my00312e6d1wsgwohi"
} }
@ -529,14 +499,12 @@
"type": "text", "type": "text",
"groupId": "cl1r0mn2p002p2e6dijqbjzlh", "groupId": "cl1r0mn2p002p2e6dijqbjzlh",
"content": { "content": {
"html": "<div>Your score is {{Score}}/20.</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Your score is {{Score}}/20." }] "children": [{ "text": "Your score is {{Score}}/20." }]
} }
], ]
"plainText": "Your score is {{Score}}/20."
} }
}, },
{ {
@ -544,11 +512,9 @@
"type": "text", "type": "text",
"groupId": "cl1r0mn2p002p2e6dijqbjzlh", "groupId": "cl1r0mn2p002p2e6dijqbjzlh",
"content": { "content": {
"html": "<div>Try again?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Try again?" }] } { "type": "p", "children": [{ "text": "Try again?" }] }
], ]
"plainText": "Try again?"
} }
}, },
{ {
@ -584,11 +550,9 @@
"type": "text", "type": "text",
"groupId": "cl1r0rgex00382e6dkayjbys6", "groupId": "cl1r0rgex00382e6dkayjbys6",
"content": { "content": {
"html": "<div>Well done 👏</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Well done 👏" }] } { "type": "p", "children": [{ "text": "Well done 👏" }] }
], ]
"plainText": "Well done 👏"
}, },
"outgoingEdgeId": "cl1r0s9g8003e2e6d5if2ywz9" "outgoingEdgeId": "cl1r0s9g8003e2e6d5if2ywz9"
} }
@ -604,7 +568,6 @@
"type": "text", "type": "text",
"groupId": "cl1r0rvak003b2e6dejcdrooq", "groupId": "cl1r0rvak003b2e6dejcdrooq",
"content": { "content": {
"html": "<div>You could do better but that&#x27;s alright!</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -612,8 +575,7 @@
{ "text": "You could do better but that's alright!" } { "text": "You could do better but that's alright!" }
] ]
} }
], ]
"plainText": "You could do better but that's alright!"
}, },
"outgoingEdgeId": "cl1r0sarx003f2e6dbzmed9te" "outgoingEdgeId": "cl1r0sarx003f2e6dbzmed9te"
} }
@ -629,7 +591,6 @@
"type": "text", "type": "text",
"groupId": "cl1r0seuj003h2e6dandwc43r", "groupId": "cl1r0seuj003h2e6dandwc43r",
"content": { "content": {
"html": "<div>Aouch, you need to improve your Digital Marketing game.</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -639,8 +600,7 @@
} }
] ]
} }
], ]
"plainText": "Aouch, you need to improve your Digital Marketing game."
}, },
"outgoingEdgeId": "cl1r0sbzh003g2e6dsqs48aoz" "outgoingEdgeId": "cl1r0sbzh003g2e6dsqs48aoz"
} }
@ -672,11 +632,7 @@
"type": "text", "type": "text",
"groupId": "cl1r15w3o005s2e6dr5l7csao", "groupId": "cl1r15w3o005s2e6dr5l7csao",
"content": { "content": {
"html": "<div>Hi there!</div>", "richText": [{ "type": "p", "children": [{ "text": "Hi there!" }] }]
"richText": [
{ "type": "p", "children": [{ "text": "Hi there!" }] }
],
"plainText": "Hi there!"
} }
}, },
{ {
@ -684,7 +640,6 @@
"type": "text", "type": "text",
"groupId": "cl1r15w3o005s2e6dr5l7csao", "groupId": "cl1r15w3o005s2e6dr5l7csao",
"content": { "content": {
"html": "<div>You&#x27;re about to answer a Quiz about Digital Marketing</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -694,8 +649,7 @@
} }
] ]
} }
], ]
"plainText": "You're about to answer a Quiz about Digital Marketing"
} }
}, },
{ {
@ -703,14 +657,12 @@
"type": "text", "type": "text",
"groupId": "cl1r15w3o005s2e6dr5l7csao", "groupId": "cl1r15w3o005s2e6dr5l7csao",
"content": { "content": {
"html": "<div>It is composed of only 4 questions.</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "It is composed of only 4 questions." }] "children": [{ "text": "It is composed of only 4 questions." }]
} }
], ]
"plainText": "It is composed of only 4 questions."
} }
}, },
{ {
@ -718,11 +670,9 @@
"type": "text", "type": "text",
"groupId": "cl1r15w3o005s2e6dr5l7csao", "groupId": "cl1r15w3o005s2e6dr5l7csao",
"content": { "content": {
"html": "<div><span class=\"slate-bold\">Ready?</span></div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "bold": true, "text": "Ready?" }] } { "type": "p", "children": [{ "bold": true, "text": "Ready?" }] }
], ]
"plainText": "Ready?"
} }
}, },
{ {

View File

@ -1,3 +1,10 @@
.slate-variable {
background-color: #ff8b1a;
color: #ffffff;
padding: 0.125rem 0.25rem;
border-radius: 0.35rem;
}
.slate-bold { .slate-bold {
font-weight: bold; font-weight: bold;
} }

View File

@ -1,28 +1,25 @@
import { Flex } from '@chakra-ui/react' import { Flex } from '@chakra-ui/react'
import { useTypebot } from '@/features/editor/providers/TypebotProvider'
import { TextBubbleBlock } from '@typebot.io/schemas' import { TextBubbleBlock } from '@typebot.io/schemas'
import React from 'react' import React from 'react'
import { isEmpty } from '@typebot.io/lib' import { PlateBlock } from './plate/PlateBlock'
import { parseVariableHtmlTags } from '@/features/variables/helpers/parseVariableHtmlTags'
type Props = { type Props = {
block: TextBubbleBlock block: TextBubbleBlock
} }
export const TextBubbleContent = ({ block }: Props) => { export const TextBubbleContent = ({ block }: Props) => {
const { typebot } = useTypebot() const isEmpty = block.content.richText.length === 0
return ( return (
<Flex <Flex
w="90%" w="90%"
flexDir={'column'} flexDir={'column'}
opacity={block.content.html === '' ? '0.5' : '1'} opacity={isEmpty ? '0.5' : '1'}
className="slate-html-container" className="slate-html-container"
color={isEmpty(block.content.plainText) ? 'gray.500' : 'inherit'} color={isEmpty ? 'gray.500' : 'inherit'}
dangerouslySetInnerHTML={{ >
__html: isEmpty(block.content.plainText) {block.content.richText.map((element, idx) => (
? `<p>Click to edit...</p>` <PlateBlock key={idx} element={element} />
: parseVariableHtmlTags(block.content.html, typebot?.variables ?? []), ))}
}} </Flex>
/>
) )
} }

View File

@ -3,14 +3,8 @@ import React, { useEffect, useRef, useState } from 'react'
import { Plate, PlateProvider, usePlateEditorRef } from '@udecode/plate-core' import { Plate, PlateProvider, usePlateEditorRef } from '@udecode/plate-core'
import { editorStyle, platePlugins } from '@/lib/plate' import { editorStyle, platePlugins } from '@/lib/plate'
import { BaseEditor, BaseSelection, Transforms } from 'slate' import { BaseEditor, BaseSelection, Transforms } from 'slate'
import { import { Variable } from '@typebot.io/schemas'
defaultTextBubbleContent,
TextBubbleContent,
Variable,
} from '@typebot.io/schemas'
import { ReactEditor } from 'slate-react' import { ReactEditor } from 'slate-react'
import { serializeHtml } from '@udecode/plate-serializer-html'
import { parseHtmlStringToPlainText } from '../utils'
import { VariableSearchInput } from '@/components/inputs/VariableSearchInput' import { VariableSearchInput } from '@/components/inputs/VariableSearchInput'
import { colors } from '@/lib/theme' import { colors } from '@/lib/theme'
import { useOutsideClick } from '@/hooks/useOutsideClick' import { useOutsideClick } from '@/hooks/useOutsideClick'
@ -20,7 +14,7 @@ import { TextEditorToolBar } from './TextEditorToolBar'
type TextBubbleEditorContentProps = { type TextBubbleEditorContentProps = {
id: string id: string
textEditorValue: TElement[] textEditorValue: TElement[]
onClose: (newContent: TextBubbleContent) => void onClose: (newContent: TElement[]) => void
} }
const TextBubbleEditorContent = ({ const TextBubbleEditorContent = ({
@ -37,7 +31,7 @@ const TextBubbleEditorContent = ({
const textEditorRef = useRef<HTMLDivElement>(null) const textEditorRef = useRef<HTMLDivElement>(null)
const closeEditor = () => onClose(convertValueToBlockContent(textEditorValue)) const closeEditor = () => onClose(textEditorValue)
useOutsideClick({ useOutsideClick({
ref: textEditorRef, ref: textEditorRef,
@ -67,18 +61,6 @@ const TextBubbleEditorContent = ({
} }
} }
const convertValueToBlockContent = (value: TElement[]): TextBubbleContent => {
if (value.length === 0) defaultTextBubbleContent
const html = serializeHtml(editor, {
nodes: value,
})
return {
html,
richText: value,
plainText: parseHtmlStringToPlainText(html),
}
}
const handleVariableSelected = (variable?: Variable) => { const handleVariableSelected = (variable?: Variable) => {
setIsVariableDropdownOpen(false) setIsVariableDropdownOpen(false)
if (!rememberedSelection.current || !variable) return if (!rememberedSelection.current || !variable) return
@ -170,7 +152,7 @@ const TextBubbleEditorContent = ({
type TextBubbleEditorProps = { type TextBubbleEditorProps = {
id: string id: string
initialValue: TElement[] initialValue: TElement[]
onClose: (newContent: TextBubbleContent) => void onClose: (newContent: TElement[]) => void
} }
export const TextBubbleEditor = ({ export const TextBubbleEditor = ({

View File

@ -0,0 +1,27 @@
import { TElement, TText, TDescendant } from '@udecode/plate-common'
import { PlateText } from './PlateText'
export const PlateBlock = ({ element }: { element: TElement | TText }) => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
if (element.text) return <PlateText {...(element as any)} />
switch (element.type) {
case 'a': {
return (
<a href={element.url as string} target="_blank" className="slate-a">
{(element.children as TDescendant[])?.map((child, idx) => (
<PlateBlock key={idx} element={child} />
))}
</a>
)
}
default: {
return (
<div>
{(element.children as TDescendant[])?.map((child, idx) => (
<PlateBlock key={idx} element={child} />
))}
</div>
)
}
}
}

View File

@ -0,0 +1,38 @@
export const PlateText = ({
text,
bold,
italic,
underline,
}: {
text: string
bold?: boolean
italic?: boolean
underline?: boolean
}) => {
let className = ''
if (bold) className += 'slate-bold'
if (italic) className += ' slate-italic'
if (underline) className += ' slate-underline'
if (className)
return (
<span className={className}>
<PlateTextContent text={text} />
</span>
)
return <PlateTextContent text={text} />
}
const PlateTextContent = ({ text }: { text: string }) => (
<>
{text.split(/\{\{(.*?\}\})/g).map((str, idx) => {
if (str.endsWith('}}')) {
return (
<span className="slate-variable" key={idx}>
{str.trim().slice(0, -2)}
</span>
)
}
return str
})}
</>
)

View File

@ -1,17 +0,0 @@
import { Parser } from 'htmlparser2'
import { isNotEmpty } from '@typebot.io/lib'
export const parseHtmlStringToPlainText = (html: string): string => {
let plainText = ''
const parser = new Parser({
onopentag(name) {
if (name === 'div' && isNotEmpty(plainText)) plainText += '\n'
},
ontext(text) {
plainText += `${text}`
},
})
parser.write(html)
parser.end()
return plainText
}

View File

@ -120,12 +120,12 @@ test.describe.parallel('Google sheets integration', () => {
await page.getByPlaceholder('Type a value...').nth(-1).fill('test@test.com') await page.getByPlaceholder('Type a value...').nth(-1).fill('test@test.com')
await page.click('text=Select a column') await page.click('text=Select a column')
await page.click('text="First name"') await page.getByRole('menuitem', { name: 'First name' }).click()
await createNewVar(page, 'First name') await createNewVar(page, 'First name')
await page.click('text=Add a value') await page.click('text=Add a value')
await page.click('text=Select a column') await page.click('text=Select a column')
await page.click('text="Last name"') await page.getByRole('menuitem', { name: 'Last name' }).click()
await createNewVar(page, 'Last name') await createNewVar(page, 'Last name')
await page.click('text=Preview') await page.click('text=Preview')

View File

@ -13,7 +13,6 @@ import {
DraggableBlock, DraggableBlock,
Block, Block,
BlockWithOptions, BlockWithOptions,
TextBubbleContent,
TextBubbleBlock, TextBubbleBlock,
LogicBlockType, LogicBlockType,
} from '@typebot.io/schemas' } from '@typebot.io/schemas'
@ -39,6 +38,7 @@ import { hasDefaultConnector } from '@/features/typebot/helpers/hasDefaultConnec
import { setMultipleRefs } from '@/helpers/setMultipleRefs' import { setMultipleRefs } from '@/helpers/setMultipleRefs'
import { TargetEndpoint } from '../../endpoints/TargetEndpoint' import { TargetEndpoint } from '../../endpoints/TargetEndpoint'
import { SettingsModal } from './SettingsModal' import { SettingsModal } from './SettingsModal'
import { TElement } from '@udecode/plate-common'
export const BlockNode = ({ export const BlockNode = ({
block, block,
@ -72,7 +72,7 @@ export const BlockNode = ({
openedBlockId === block.id openedBlockId === block.id
) )
const [isEditing, setIsEditing] = useState<boolean>( const [isEditing, setIsEditing] = useState<boolean>(
isTextBubbleBlock(block) && block.content.plainText === '' isTextBubbleBlock(block) && block.content.richText.length === 0
) )
const blockRef = useRef<HTMLDivElement | null>(null) const blockRef = useRef<HTMLDivElement | null>(null)
@ -134,8 +134,8 @@ export const BlockNode = ({
}) })
} }
const handleCloseEditor = (content: TextBubbleContent) => { const handleCloseEditor = (content: TElement[]) => {
const updatedBlock = { ...block, content } as Block const updatedBlock = { ...block, content: { richText: content } }
updateBlock(indices, updatedBlock) updateBlock(indices, updatedBlock)
setIsEditing(false) setIsEditing(false)
} }

View File

@ -1,18 +0,0 @@
import { Variable } from '@typebot.io/schemas'
export const parseVariableHtmlTags = (
content: string,
variables: Variable[]
) => {
const varNames = variables.map((variable) => variable.name)
return content.replace(/\{\{(.*?)\}\}/g, (fullMatch, foundVar) => {
if (content.includes(`href="{{${foundVar}}}"`)) return fullMatch
if (varNames.some((val) => foundVar === val)) {
return `<span style="background-color:#ff8b1a; color:#ffffff; padding: 0.125rem 0.25rem; border-radius: 0.35rem">${fullMatch.replace(
/{{|}}/g,
''
)}</span>`
}
return fullMatch
})
}

View File

@ -27,7 +27,6 @@
"type": "text", "type": "text",
"groupId": "kinRXxYop2X4d7F9qt8WNB", "groupId": "kinRXxYop2X4d7F9qt8WNB",
"content": { "content": {
"html": "<div>Welcome to <span class=\"slate-bold\">AA</span> (Awesome Agency)</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -37,8 +36,7 @@
{ "text": " (Awesome Agency)" } { "text": " (Awesome Agency)" }
] ]
} }
], ]
"plainText": "Welcome to AA (Awesome Agency)"
} }
}, },
{ {
@ -76,14 +74,12 @@
"type": "text", "type": "text",
"groupId": "o4SH1UtKANnW5N5D67oZUz", "groupId": "o4SH1UtKANnW5N5D67oZUz",
"content": { "content": {
"html": "<div>Great! Nice to meet you {{Name}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Great! Nice to meet you {{Name}}" }] "children": [{ "text": "Great! Nice to meet you {{Name}}" }]
} }
], ]
"plainText": "Great! Nice to meet you {{Name}}"
} }
}, },
{ {
@ -91,7 +87,6 @@
"type": "text", "type": "text",
"groupId": "o4SH1UtKANnW5N5D67oZUz", "groupId": "o4SH1UtKANnW5N5D67oZUz",
"content": { "content": {
"html": "<div>What&#x27;s the best email we can reach you at?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -99,8 +94,7 @@
{ "text": "What's the best email we can reach you at?" } { "text": "What's the best email we can reach you at?" }
] ]
} }
], ]
"plainText": "What's the best email we can reach you at?"
} }
}, },
{ {
@ -125,11 +119,9 @@
"type": "text", "type": "text",
"groupId": "q5dAhqSTCaNdiGSJm9B9Rw", "groupId": "q5dAhqSTCaNdiGSJm9B9Rw",
"content": { "content": {
"html": "<div>What&#x27;s your name?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What's your name?" }] } { "type": "p", "children": [{ "text": "What's your name?" }] }
], ]
"plainText": "What's your name?"
} }
}, },
{ {
@ -158,14 +150,12 @@
"type": "text", "type": "text",
"groupId": "fKqRz7iswk7ULaj5PJocZL", "groupId": "fKqRz7iswk7ULaj5PJocZL",
"content": { "content": {
"html": "<div>What services are you interested in?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "What services are you interested in?" }] "children": [{ "text": "What services are you interested in?" }]
} }
], ]
"plainText": "What services are you interested in?"
} }
}, },
{ {
@ -213,7 +203,6 @@
"type": "text", "type": "text",
"groupId": "7qHBEyCMvKEJryBHzPmHjV", "groupId": "7qHBEyCMvKEJryBHzPmHjV",
"content": { "content": {
"html": "<div>Can you tell me a bit more about your needs?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -221,8 +210,7 @@
{ "text": "Can you tell me a bit more about your needs?" } { "text": "Can you tell me a bit more about your needs?" }
] ]
} }
], ]
"plainText": "Can you tell me a bit more about your needs?"
} }
}, },
{ {
@ -247,9 +235,7 @@
"type": "text", "type": "text",
"groupId": "vF7AD7zSAj7SNvN3gr9N94", "groupId": "vF7AD7zSAj7SNvN3gr9N94",
"content": { "content": {
"html": "<div>Perfect!</div>", "richText": [{ "type": "p", "children": [{ "text": "Perfect!" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Perfect!" }] }],
"plainText": "Perfect!"
} }
}, },
{ {
@ -257,14 +243,12 @@
"type": "text", "type": "text",
"groupId": "vF7AD7zSAj7SNvN3gr9N94", "groupId": "vF7AD7zSAj7SNvN3gr9N94",
"content": { "content": {
"html": "<div>We&#x27;ll get back to you at {{Email}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "We'll get back to you at {{Email}}" }] "children": [{ "text": "We'll get back to you at {{Email}}" }]
} }
], ]
"plainText": "We'll get back to you at {{Email}}"
}, },
"outgoingEdgeId": "fTVo43AG97eKcaTrZf9KyV" "outgoingEdgeId": "fTVo43AG97eKcaTrZf9KyV"
} }

View File

@ -28,9 +28,7 @@
"id": "sqUp2x8SXx8JBC8a9XuKGL9", "id": "sqUp2x8SXx8JBC8a9XuKGL9",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Hello!</div>", "richText": [{ "type": "p", "children": [{ "text": "Hello!" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Hello!" }] }],
"plainText": "Hello!"
}, },
"groupId": "clc0ad9ah000n3b6sw5w6h1mp" "groupId": "clc0ad9ah000n3b6sw5w6h1mp"
}, },
@ -38,11 +36,9 @@
"id": "suRXuWyuJ7kpsdLUYKA6VqM", "id": "suRXuWyuJ7kpsdLUYKA6VqM",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>How are you?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "How are you?" }] } { "type": "p", "children": [{ "text": "How are you?" }] }
], ]
"plainText": "How are you?"
}, },
"groupId": "clc0ad9ah000n3b6sw5w6h1mp" "groupId": "clc0ad9ah000n3b6sw5w6h1mp"
}, },

View File

@ -30,11 +30,9 @@
"groupId": "cl3wo7ucc000g2e6gdus80qeb", "groupId": "cl3wo7ucc000g2e6gdus80qeb",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Hello this is group 1</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Hello this is group 1" }] } { "type": "p", "children": [{ "text": "Hello this is group 1" }] }
], ]
"plainText": "Hello this is group 1"
} }
}, },
{ {
@ -42,11 +40,9 @@
"groupId": "cl3wo7ucc000g2e6gdus80qeb", "groupId": "cl3wo7ucc000g2e6gdus80qeb",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What&#x27;s your name?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What's your name?" }] } { "type": "p", "children": [{ "text": "What's your name?" }] }
], ]
"plainText": "What's your name?"
} }
}, },
{ {
@ -70,11 +66,9 @@
"groupId": "cl3wo87et000l2e6ga64ipat6", "groupId": "cl3wo87et000l2e6ga64ipat6",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Hello this is group 2</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Hello this is group 2" }] } { "type": "p", "children": [{ "text": "Hello this is group 2" }] }
], ]
"plainText": "Hello this is group 2"
} }
}, },
{ {
@ -82,11 +76,9 @@
"groupId": "cl3wo87et000l2e6ga64ipat6", "groupId": "cl3wo87et000l2e6ga64ipat6",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What&#x27;s your name?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What's your name?" }] } { "type": "p", "children": [{ "text": "What's your name?" }] }
], ]
"plainText": "What's your name?"
} }
}, },
{ {
@ -110,11 +102,9 @@
"groupId": "cl3wo8kfl000p2e6gszlvkub0", "groupId": "cl3wo8kfl000p2e6gszlvkub0",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Hello this is group 3</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Hello this is group 3" }] } { "type": "p", "children": [{ "text": "Hello this is group 3" }] }
], ]
"plainText": "Hello this is group 3"
} }
}, },
{ {
@ -122,11 +112,9 @@
"groupId": "cl3wo8kfl000p2e6gszlvkub0", "groupId": "cl3wo8kfl000p2e6gszlvkub0",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What&#x27;s your name?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What's your name?" }] } { "type": "p", "children": [{ "text": "What's your name?" }] }
], ]
"plainText": "What's your name?"
} }
}, },
{ {

View File

@ -71,11 +71,7 @@
"id": "cl4fr7wsv0008396mf9oi9lvi", "id": "cl4fr7wsv0008396mf9oi9lvi",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Ok great!</div>", "richText": [{ "type": "p", "children": [{ "text": "Ok great!" }] }]
"richText": [
{ "type": "p", "children": [{ "text": "Ok great!" }] }
],
"plainText": "Ok great!"
}, },
"groupId": "cl4fr7wsv0007396m7xgbeymx" "groupId": "cl4fr7wsv0007396m7xgbeymx"
} }

View File

@ -29,11 +29,9 @@
"groupId": "cl10u68pw00032e6depze2oiy", "groupId": "cl10u68pw00032e6depze2oiy",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Hi how are you?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Hi how are you?" }] } { "type": "p", "children": [{ "text": "Hi how are you?" }] }
], ]
"plainText": "Hi how are you?"
} }
}, },
{ {
@ -58,11 +56,9 @@
"groupId": "cl10u6jzd00072e6dvo0zwy0s", "groupId": "cl10u6jzd00072e6dvo0zwy0s",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>How old are you?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "How old are you?" }] } { "type": "p", "children": [{ "text": "How old are you?" }] }
], ]
"plainText": "How old are you?"
} }
}, },
{ {
@ -78,11 +74,9 @@
"groupId": "cl10u6jzd00072e6dvo0zwy0s", "groupId": "cl10u6jzd00072e6dvo0zwy0s",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Do you like cookies?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Do you like cookies?" }] } { "type": "p", "children": [{ "text": "Do you like cookies?" }] }
], ]
"plainText": "Do you like cookies?"
} }
}, },
{ {
@ -110,11 +104,9 @@
"groupId": "cl10u6jzd00072e6dvo0zwy0s", "groupId": "cl10u6jzd00072e6dvo0zwy0s",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Alright, cheers!</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Alright, cheers!" }] } { "type": "p", "children": [{ "text": "Alright, cheers!" }] }
], ]
"plainText": "Alright, cheers!"
} }
}, },
{ {

View File

@ -61,7 +61,6 @@
"groupId": "pd3PECJqHB9xHMfc52SbrZ", "groupId": "pd3PECJqHB9xHMfc52SbrZ",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Your name is: {{First name}} {{Last name}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -69,8 +68,7 @@
{ "text": "Your name is: {{First name}} {{Last name}}" } { "text": "Your name is: {{First name}} {{Last name}}" }
] ]
} }
], ]
"plainText": "Your name is: {{First name}} {{Last name}}"
} }
} }
] ]

View File

@ -29,11 +29,9 @@
"groupId": "b5r2MMyftV1nv9vyr6VkZh", "groupId": "b5r2MMyftV1nv9vyr6VkZh",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Send email</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Send email" }] } { "type": "p", "children": [{ "text": "Send email" }] }
], ]
"plainText": "Send email"
} }
}, },
{ {

View File

@ -29,9 +29,7 @@
"groupId": "kBneEpKdMYrF65XxUQ5GS7", "groupId": "kBneEpKdMYrF65XxUQ5GS7",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Ready?</div>", "richText": [{ "type": "p", "children": [{ "text": "Ready?" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Ready?" }] }],
"plainText": "Ready?"
} }
}, },
{ {

View File

@ -27,11 +27,9 @@
"type": "text", "type": "text",
"groupId": "eh2ohNATnGg6RTdjG9h5kb", "groupId": "eh2ohNATnGg6RTdjG9h5kb",
"content": { "content": {
"html": "<div>How old are you?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "How old are you?" }] } { "type": "p", "children": [{ "text": "How old are you?" }] }
], ]
"plainText": "How old are you?"
} }
}, },
{ {
@ -99,14 +97,12 @@
"type": "text", "type": "text",
"groupId": "fGrzjahWecA8hoNMRrLSwn", "groupId": "fGrzjahWecA8hoNMRrLSwn",
"content": { "content": {
"html": "<div>You are older than 80</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "You are older than 80" }] "children": [{ "text": "You are older than 80" }]
} }
], ]
"plainText": "You are older than 80"
} }
} }
], ],
@ -121,14 +117,12 @@
"type": "text", "type": "text",
"groupId": "49Jv45UJi9R3U4FuWS8R2c", "groupId": "49Jv45UJi9R3U4FuWS8R2c",
"content": { "content": {
"html": "<div>You are older than 20</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "You are older than 20" }] "children": [{ "text": "You are older than 20" }]
} }
], ]
"plainText": "You are older than 20"
} }
} }
], ],
@ -143,14 +137,12 @@
"type": "text", "type": "text",
"groupId": "fD28kefdySKK7XA7SyTozC", "groupId": "fD28kefdySKK7XA7SyTozC",
"content": { "content": {
"html": "<div>You are younger than 20</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "You are younger than 20" }] "children": [{ "text": "You are younger than 20" }]
} }
], ]
"plainText": "You are younger than 20"
} }
} }
], ],

View File

@ -42,11 +42,9 @@
"groupId": "jMbvgRQfXUaXg37LRNqRaJ", "groupId": "jMbvgRQfXUaXg37LRNqRaJ",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Hello world</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Hello world" }] } { "type": "p", "children": [{ "text": "Hello world" }] }
], ]
"plainText": "Hello world"
} }
}, },
{ {

View File

@ -44,11 +44,9 @@
"type": "text", "type": "text",
"groupId": "uhqCZSNbsYVFxop7Gc8xvn", "groupId": "uhqCZSNbsYVFxop7Gc8xvn",
"content": { "content": {
"html": "<div>Second block</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Second block" }] } { "type": "p", "children": [{ "text": "Second block" }] }
], ]
"plainText": "Second block"
} }
} }
], ],

View File

@ -28,11 +28,9 @@
"id": "souEkLukHsYU9jrN2rAP7YT", "id": "souEkLukHsYU9jrN2rAP7YT",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>How old are you?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "How old are you?" }] } { "type": "p", "children": [{ "text": "How old are you?" }] }
], ]
"plainText": "How old are you?"
}, },
"groupId": "cl9d7ruqe00033b6oe5nzpeub" "groupId": "cl9d7ruqe00033b6oe5nzpeub"
}, },
@ -82,7 +80,6 @@
"id": "svpmd4uNoAXpoKyfYuuXTQe", "id": "svpmd4uNoAXpoKyfYuuXTQe",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Multiplication: {{Total}}</div><div>Custom var: {{Custom var}}</div><div>Addition: {{Addition}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -96,8 +93,7 @@
"type": "p", "type": "p",
"children": [{ "text": "Addition: {{Addition}}" }] "children": [{ "text": "Addition: {{Addition}}" }]
} }
], ]
"plainText": "Multiplication: {{Total}}Custom var: {{Custom var}}Addition: {{Addition}}"
}, },
"groupId": "cl9d7ruqe00053b6o8l0h608t" "groupId": "cl9d7ruqe00053b6o8l0h608t"
} }

View File

@ -56,11 +56,7 @@
"id": "clddbpwh9000j3b6srnzdpbcx", "id": "clddbpwh9000j3b6srnzdpbcx",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Hi there!</div>", "richText": [{ "type": "p", "children": [{ "text": "Hi there!" }] }]
"richText": [
{ "type": "p", "children": [{ "text": "Hi there!" }] }
],
"plainText": "Hi there!"
}, },
"groupId": "clddbpwh9000i3b6s9e1vdjrd" "groupId": "clddbpwh9000i3b6s9e1vdjrd"
} }

View File

@ -27,7 +27,6 @@
"type": "text", "type": "text",
"groupId": "kinRXxYop2X4d7F9qt8WNB", "groupId": "kinRXxYop2X4d7F9qt8WNB",
"content": { "content": {
"html": "<div>Welcome to <span class=\"slate-bold\">AA</span> (Awesome Agency)</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -37,8 +36,7 @@
{ "text": " (Awesome Agency)" } { "text": " (Awesome Agency)" }
] ]
} }
], ]
"plainText": "Welcome to AA (Awesome Agency)"
} }
}, },
{ {
@ -76,14 +74,12 @@
"type": "text", "type": "text",
"groupId": "o4SH1UtKANnW5N5D67oZUz", "groupId": "o4SH1UtKANnW5N5D67oZUz",
"content": { "content": {
"html": "<div>Great! Nice to meet you {{Name}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Great! Nice to meet you {{Name}}" }] "children": [{ "text": "Great! Nice to meet you {{Name}}" }]
} }
], ]
"plainText": "Great! Nice to meet you {{Name}}"
} }
}, },
{ {
@ -91,7 +87,6 @@
"type": "text", "type": "text",
"groupId": "o4SH1UtKANnW5N5D67oZUz", "groupId": "o4SH1UtKANnW5N5D67oZUz",
"content": { "content": {
"html": "<div>What&#x27;s the best email we can reach you at?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -99,8 +94,7 @@
{ "text": "What's the best email we can reach you at?" } { "text": "What's the best email we can reach you at?" }
] ]
} }
], ]
"plainText": "What's the best email we can reach you at?"
} }
}, },
{ {
@ -125,11 +119,9 @@
"type": "text", "type": "text",
"groupId": "group1", "groupId": "group1",
"content": { "content": {
"html": "<div>What&#x27;s your name?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What's your name?" }] } { "type": "p", "children": [{ "text": "What's your name?" }] }
], ]
"plainText": "What's your name?"
} }
}, },
{ {
@ -158,14 +150,12 @@
"type": "text", "type": "text",
"groupId": "fKqRz7iswk7ULaj5PJocZL", "groupId": "fKqRz7iswk7ULaj5PJocZL",
"content": { "content": {
"html": "<div>What services are you interested in?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "What services are you interested in?" }] "children": [{ "text": "What services are you interested in?" }]
} }
], ]
"plainText": "What services are you interested in?"
} }
}, },
{ {
@ -213,7 +203,6 @@
"type": "text", "type": "text",
"groupId": "7qHBEyCMvKEJryBHzPmHjV", "groupId": "7qHBEyCMvKEJryBHzPmHjV",
"content": { "content": {
"html": "<div>Can you tell me a bit more about your needs?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -221,8 +210,7 @@
{ "text": "Can you tell me a bit more about your needs?" } { "text": "Can you tell me a bit more about your needs?" }
] ]
} }
], ]
"plainText": "Can you tell me a bit more about your needs?"
} }
}, },
{ {
@ -247,9 +235,7 @@
"type": "text", "type": "text",
"groupId": "vF7AD7zSAj7SNvN3gr9N94", "groupId": "vF7AD7zSAj7SNvN3gr9N94",
"content": { "content": {
"html": "<div>Perfect!</div>", "richText": [{ "type": "p", "children": [{ "text": "Perfect!" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Perfect!" }] }],
"plainText": "Perfect!"
} }
}, },
{ {
@ -257,14 +243,12 @@
"type": "text", "type": "text",
"groupId": "vF7AD7zSAj7SNvN3gr9N94", "groupId": "vF7AD7zSAj7SNvN3gr9N94",
"content": { "content": {
"html": "<div>We&#x27;ll get back to you at {{Email}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "We'll get back to you at {{Email}}" }] "children": [{ "text": "We'll get back to you at {{Email}}" }]
} }
], ]
"plainText": "We'll get back to you at {{Email}}"
}, },
"outgoingEdgeId": "r2zwZYe33EdggUeG9Lmi3R" "outgoingEdgeId": "r2zwZYe33EdggUeG9Lmi3R"
} }

View File

@ -46,11 +46,9 @@
"groupId": "4H8ucvLjTiQ7sAyB23Huka", "groupId": "4H8ucvLjTiQ7sAyB23Huka",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What&#x27;s your name?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What's your name?" }] } { "type": "p", "children": [{ "text": "What's your name?" }] }
], ]
"plainText": "What's your name?"
} }
}, },
{ {

View File

@ -64,11 +64,9 @@
"groupId": "ih574JsgYCSSt3t77DH9gp", "groupId": "ih574JsgYCSSt3t77DH9gp",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>I love burgers!</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "I love burgers!" }] } { "type": "p", "children": [{ "text": "I love burgers!" }] }
], ]
"plainText": "I love burgers!"
} }
} }
] ]
@ -83,9 +81,7 @@
"groupId": "5bMwu6Wv79avgdz3TKjVXr", "groupId": "5bMwu6Wv79avgdz3TKjVXr",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Cool!</div>", "richText": [{ "type": "p", "children": [{ "text": "Cool!" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Cool!" }] }],
"plainText": "Cool!"
} }
} }
] ]

View File

@ -28,9 +28,7 @@
"id": "swUB2pSmvcv3NC7ySzskRpL", "id": "swUB2pSmvcv3NC7ySzskRpL",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Ready?</div>", "richText": [{ "type": "p", "children": [{ "text": "Ready?" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Ready?" }] }],
"plainText": "Ready?"
}, },
"groupId": "6Dj1i7LeM3qXg5SKMhMyo1" "groupId": "6Dj1i7LeM3qXg5SKMhMyo1"
}, },
@ -60,9 +58,7 @@
"id": "cl4vdo1fz0008396nolxr0yln", "id": "cl4vdo1fz0008396nolxr0yln",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Cool go</div>", "richText": [{ "type": "p", "children": [{ "text": "Cool go" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Cool go" }] }],
"plainText": "Cool go"
}, },
"groupId": "2TR5xAQobKAg8hbArfh5br" "groupId": "2TR5xAQobKAg8hbArfh5br"
}, },
@ -94,9 +90,7 @@
"groupId": "cl4vdu8nn00023f6l6ptvimhw", "groupId": "cl4vdu8nn00023f6l6ptvimhw",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Cool go</div>", "richText": [{ "type": "p", "children": [{ "text": "Cool go" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Cool go" }] }],
"plainText": "Cool go"
} }
}, },
{ {

View File

@ -480,9 +480,7 @@
} }
}, },
"required": [ "required": [
"html", "richText"
"richText",
"plainText"
], ],
"additionalProperties": false "additionalProperties": false
} }

View File

@ -141,9 +141,7 @@
} }
}, },
"required": [ "required": [
"html", "richText"
"richText",
"plainText"
], ],
"additionalProperties": false "additionalProperties": false
} }
@ -2904,13 +2902,15 @@
"html": { "html": {
"type": "string" "type": "string"
}, },
"richText": {
"type": "array"
},
"plainText": { "plainText": {
"type": "string" "type": "string"
} }
}, },
"required": [ "required": [
"html", "richText"
"plainText"
], ],
"additionalProperties": false "additionalProperties": false
} }

View File

@ -27,7 +27,6 @@
"type": "text", "type": "text",
"groupId": "kinRXxYop2X4d7F9qt8WNB", "groupId": "kinRXxYop2X4d7F9qt8WNB",
"content": { "content": {
"html": "<div>Welcome to <span class=\"slate-bold\">AA</span> (Awesome Agency)</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -37,8 +36,7 @@
{ "text": " (Awesome Agency)" } { "text": " (Awesome Agency)" }
] ]
} }
], ]
"plainText": "Welcome to AA (Awesome Agency)"
} }
}, },
{ {
@ -76,14 +74,12 @@
"type": "text", "type": "text",
"groupId": "o4SH1UtKANnW5N5D67oZUz", "groupId": "o4SH1UtKANnW5N5D67oZUz",
"content": { "content": {
"html": "<div>Great! Nice to meet you {{Name}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Great! Nice to meet you {{Name}}" }] "children": [{ "text": "Great! Nice to meet you {{Name}}" }]
} }
], ]
"plainText": "Great! Nice to meet you {{Name}}"
} }
}, },
{ {
@ -91,7 +87,6 @@
"type": "text", "type": "text",
"groupId": "o4SH1UtKANnW5N5D67oZUz", "groupId": "o4SH1UtKANnW5N5D67oZUz",
"content": { "content": {
"html": "<div>What&#x27;s the best email we can reach you at?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -99,8 +94,7 @@
{ "text": "What's the best email we can reach you at?" } { "text": "What's the best email we can reach you at?" }
] ]
} }
], ]
"plainText": "What's the best email we can reach you at?"
} }
}, },
{ {
@ -126,11 +120,9 @@
"type": "text", "type": "text",
"groupId": "q5dAhqSTCaNdiGSJm9B9Rw", "groupId": "q5dAhqSTCaNdiGSJm9B9Rw",
"content": { "content": {
"html": "<div>What&#x27;s your name?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What's your name?" }] } { "type": "p", "children": [{ "text": "What's your name?" }] }
], ]
"plainText": "What's your name?"
} }
}, },
{ {
@ -159,14 +151,12 @@
"type": "text", "type": "text",
"groupId": "fKqRz7iswk7ULaj5PJocZL", "groupId": "fKqRz7iswk7ULaj5PJocZL",
"content": { "content": {
"html": "<div>What services are you interested in?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "What services are you interested in?" }] "children": [{ "text": "What services are you interested in?" }]
} }
], ]
"plainText": "What services are you interested in?"
} }
}, },
{ {
@ -214,7 +204,6 @@
"type": "text", "type": "text",
"groupId": "7qHBEyCMvKEJryBHzPmHjV", "groupId": "7qHBEyCMvKEJryBHzPmHjV",
"content": { "content": {
"html": "<div>Can you tell me a bit more about your needs?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -222,8 +211,7 @@
{ "text": "Can you tell me a bit more about your needs?" } { "text": "Can you tell me a bit more about your needs?" }
] ]
} }
], ]
"plainText": "Can you tell me a bit more about your needs?"
} }
}, },
{ {
@ -248,9 +236,7 @@
"type": "text", "type": "text",
"groupId": "vF7AD7zSAj7SNvN3gr9N94", "groupId": "vF7AD7zSAj7SNvN3gr9N94",
"content": { "content": {
"html": "<div>Perfect!</div>", "richText": [{ "type": "p", "children": [{ "text": "Perfect!" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Perfect!" }] }],
"plainText": "Perfect!"
} }
}, },
{ {
@ -258,14 +244,12 @@
"type": "text", "type": "text",
"groupId": "vF7AD7zSAj7SNvN3gr9N94", "groupId": "vF7AD7zSAj7SNvN3gr9N94",
"content": { "content": {
"html": "<div>We&#x27;ll get back to you at {{Email}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "We'll get back to you at {{Email}}" }] "children": [{ "text": "We'll get back to you at {{Email}}" }]
} }
], ]
"plainText": "We'll get back to you at {{Email}}"
} }
} }
], ],

View File

@ -28,7 +28,6 @@
"type": "text", "type": "text",
"groupId": "nrFcoNFtGcGJNifcjiEFya", "groupId": "nrFcoNFtGcGJNifcjiEFya",
"content": { "content": {
"html": "<div>As you answer this chat, you&#x27;ll see your result in the real Airtable spreadsheet</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -38,8 +37,7 @@
} }
] ]
} }
], ]
"plainText": "As you answer this chat, you'll see your result in the real Airtable spreadsheet"
} }
}, },
{ {
@ -47,7 +45,6 @@
"type": "text", "type": "text",
"groupId": "nrFcoNFtGcGJNifcjiEFya", "groupId": "nrFcoNFtGcGJNifcjiEFya",
"content": { "content": {
"html": "<div>You can think of it as a guestbook 😂</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -55,8 +52,7 @@
{ "text": "You can think of it as a guestbook 😂" } { "text": "You can think of it as a guestbook 😂" }
] ]
} }
], ]
"plainText": "You can think of it as a guestbook 😂"
} }
}, },
{ {
@ -64,9 +60,7 @@
"type": "text", "type": "text",
"groupId": "nrFcoNFtGcGJNifcjiEFya", "groupId": "nrFcoNFtGcGJNifcjiEFya",
"content": { "content": {
"html": "<div>Ready?</div>", "richText": [{ "type": "p", "children": [{ "text": "Ready?" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Ready?" }] }],
"plainText": "Ready?"
} }
}, },
{ {
@ -96,14 +90,12 @@
"type": "text", "type": "text",
"groupId": "9mz6QbFyQB1uMggt9YbweU", "groupId": "9mz6QbFyQB1uMggt9YbweU",
"content": { "content": {
"html": "<div>If you have anything to say...</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "If you have anything to say..." }] "children": [{ "text": "If you have anything to say..." }]
} }
], ]
"plainText": "If you have anything to say..."
} }
}, },
{ {
@ -172,9 +164,7 @@
"type": "text", "type": "text",
"groupId": "dypuPQjb1q55tQavVzZv4e", "groupId": "dypuPQjb1q55tQavVzZv4e",
"content": { "content": {
"html": "<div>Cheers!</div>", "richText": [{ "type": "p", "children": [{ "text": "Cheers!" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Cheers!" }] }],
"plainText": "Cheers!"
} }
} }
], ],
@ -189,11 +179,9 @@
"type": "text", "type": "text",
"groupId": "m299Kw31LhXpxZLNNb7WT5", "groupId": "m299Kw31LhXpxZLNNb7WT5",
"content": { "content": {
"html": "<div>What&#x27;s your name?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What's your name?" }] } { "type": "p", "children": [{ "text": "What's your name?" }] }
], ]
"plainText": "What's your name?"
} }
}, },
{ {

View File

@ -112,6 +112,5 @@ test.describe('Storage limit is reached', () => {
) )
await page.goto(`${process.env.NEXTAUTH_URL}/typebots/${typebotId}/results`) await page.goto(`${process.env.NEXTAUTH_URL}/typebots/${typebotId}/results`)
await expect(page.locator('text="150%"')).toBeVisible() await expect(page.locator('text="150%"')).toBeVisible()
await expect(page.locator('text="api.json"')).toBeHidden()
}) })
}) })

View File

@ -45,8 +45,12 @@ test('API chat execution should work on preview bot', async ({ request }) => {
).json() ).json()
expect(resultId).toBeUndefined() expect(resultId).toBeUndefined()
expect(sessionId).toBeDefined() expect(sessionId).toBeDefined()
expect(messages[0].content.plainText).toBe('Hi there! 👋') expect(messages[0].content.richText).toStrictEqual([
expect(messages[1].content.plainText).toBe("Welcome. What's your name?") { children: [{ text: 'Hi there! 👋' }], type: 'p' },
])
expect(messages[1].content.richText).toStrictEqual([
{ children: [{ text: "Welcome. What's your name?" }], type: 'p' },
])
expect(input.type).toBe('text input') expect(input.type).toBe('text input')
}) })
}) })
@ -88,8 +92,12 @@ test('API chat execution should work on published bot', async ({ request }) => {
}) })
expect(result).toBeDefined() expect(result).toBeDefined()
expect(sessionId).toBeDefined() expect(sessionId).toBeDefined()
expect(messages[0].content.plainText).toBe('Hi there! 👋') expect(messages[0].content.richText).toStrictEqual([
expect(messages[1].content.plainText).toBe("Welcome. What's your name?") { children: [{ text: 'Hi there! 👋' }], type: 'p' },
])
expect(messages[1].content.richText).toStrictEqual([
{ children: [{ text: "Welcome. What's your name?" }], type: 'p' },
])
expect(input.type).toBe('text input') expect(input.type).toBe('text input')
}) })
@ -99,7 +107,9 @@ test('API chat execution should work on published bot', async ({ request }) => {
data: { message: 'John', sessionId: chatSessionId }, data: { message: 'John', sessionId: chatSessionId },
}) })
).json() ).json()
expect(messages[0].content.plainText).toBe('Nice to meet you John') expect(messages[0].content.richText).toStrictEqual([
{ children: [{ text: 'Nice to meet you John' }], type: 'p' },
])
expect(messages[1].content.url).toMatch(new RegExp('giphy.com', 'gm')) expect(messages[1].content.url).toMatch(new RegExp('giphy.com', 'gm'))
expect(input.type).toBe('number input') expect(input.type).toBe('number input')
}) })
@ -110,11 +120,18 @@ test('API chat execution should work on published bot', async ({ request }) => {
data: { message: '24', sessionId: chatSessionId }, data: { message: '24', sessionId: chatSessionId },
}) })
).json() ).json()
expect(messages[0].content.plainText).toBe('Ok, you are an adult then 😁') expect(messages[0].content.richText).toStrictEqual([
expect(messages[1].content.plainText).toBe('My magic number is 42') { children: [{ text: 'Ok, you are an adult then 😁' }], type: 'p' },
expect(messages[2].content.plainText).toBe( ])
'How would you rate the experience so far?' expect(messages[1].content.richText).toStrictEqual([
) { children: [{ text: 'My magic number is 42' }], type: 'p' },
])
expect(messages[2].content.richText).toStrictEqual([
{
children: [{ text: 'How would you rate the experience so far?' }],
type: 'p',
},
])
expect(input.type).toBe('rating input') expect(input.type).toBe('rating input')
}) })
@ -124,9 +141,12 @@ test('API chat execution should work on published bot', async ({ request }) => {
data: { message: '8', sessionId: chatSessionId }, data: { message: '8', sessionId: chatSessionId },
}) })
).json() ).json()
expect(messages[0].content.plainText).toBe( expect(messages[0].content.richText).toStrictEqual([
"I'm gonna shoot multiple inputs now..." {
) children: [{ text: "I'm gonna shoot multiple inputs now..." }],
type: 'p',
},
])
expect(input.type).toBe('email input') expect(input.type).toBe('email input')
}) })
@ -136,9 +156,16 @@ test('API chat execution should work on published bot', async ({ request }) => {
data: { message: 'invalid email', sessionId: chatSessionId }, data: { message: 'invalid email', sessionId: chatSessionId },
}) })
).json() ).json()
expect(messages[0].content.plainText).toBe( expect(messages[0].content.richText).toStrictEqual([
"This email doesn't seem to be valid. Can you type it again?" {
) children: [
{
text: "This email doesn't seem to be valid. Can you type it again?",
},
],
type: 'p',
},
])
expect(input.type).toBe('email input') expect(input.type).toBe('email input')
}) })
@ -168,8 +195,26 @@ test('API chat execution should work on published bot', async ({ request }) => {
data: { message: 'Yes', sessionId: chatSessionId }, data: { message: 'Yes', sessionId: chatSessionId },
}) })
).json() ).json()
expect(messages[0].content.plainText).toBe('Ok, you are solid 👏') expect(messages[0].content.richText).toStrictEqual([
expect(messages[1].content.plainText).toBe("Let's trigger a webhook...") {
expect(messages[2].content.plainText.length).toBeGreaterThan(0) children: [
{
text: 'Ok, you are solid 👏',
},
],
type: 'p',
},
])
expect(messages[1].content.richText).toStrictEqual([
{
children: [
{
text: "Let's trigger a webhook...",
},
],
type: 'p',
},
])
expect(messages[2].content.richText.length).toBeGreaterThan(0)
}) })
}) })

View File

@ -133,8 +133,7 @@ const parseRetryMessage = (
id: block.id, id: block.id,
type: BubbleBlockType.TEXT, type: BubbleBlockType.TEXT,
content: { content: {
plainText: retryMessage, richText: [{ type: 'p', children: [{ text: retryMessage }] }],
html: `<div>${retryMessage}</div>`,
}, },
}, },
], ],

View File

@ -1,70 +0,0 @@
import { getTestAsset } from '@/test/utils/playwright'
import test, { expect } from '@playwright/test'
import { createId } from '@paralleldrive/cuid2'
import { Plan } from '@typebot.io/prisma'
import { defaultSettings } from '@typebot.io/schemas'
import {
createWorkspaces,
importTypebotInDatabase,
injectFakeResults,
} from '@typebot.io/lib/playwright/databaseActions'
test('should not start if chat limit is reached', async ({ page, context }) => {
await test.step('Free plan', async () => {
const workspaceId = createId()
const typebotId = createId()
await createWorkspaces([{ id: workspaceId, plan: Plan.FREE }])
await importTypebotInDatabase(getTestAsset('typebots/fileUpload.json'), {
id: typebotId,
publicId: `${typebotId}-public`,
workspaceId,
})
await injectFakeResults({ typebotId, count: 400 })
await page.goto(`/${typebotId}-public`)
await expect(page.locator('text="This bot is now closed."')).toBeVisible()
await page.goto(`${process.env.NEXTAUTH_URL}/typebots/${typebotId}/results`)
await expect(page.locator('text="133%"')).toBeVisible()
})
await test.step('Lifetime plan', async () => {
const workspaceId = createId()
const typebotId = createId()
await createWorkspaces([{ id: workspaceId, plan: Plan.LIFETIME }])
await importTypebotInDatabase(getTestAsset('typebots/fileUpload.json'), {
id: typebotId,
publicId: `${typebotId}-public`,
workspaceId,
})
await injectFakeResults({ typebotId, count: 3000 })
await page.goto(`/${typebotId}-public`)
await expect(page.locator('text="Hey there, upload please"')).toBeVisible()
})
await test.step('Custom plan', async () => {
const workspaceId = createId()
const typebotId = createId()
await createWorkspaces([
{ id: workspaceId, plan: Plan.CUSTOM, customChatsLimit: 1000 },
])
await importTypebotInDatabase(getTestAsset('typebots/fileUpload.json'), {
id: typebotId,
publicId: `${typebotId}-public`,
workspaceId,
settings: {
...defaultSettings,
general: {
...defaultSettings.general,
isNewResultOnRefreshEnabled: true,
},
},
})
const page = await context.newPage()
await page.goto(`/${typebotId}-public`)
await expect(page.locator('text="Hey there, upload please"')).toBeVisible()
await injectFakeResults({ typebotId, count: 2000 })
await page.goto(`/${typebotId}-public`)
await expect(page.locator('text="This bot is now closed."')).toBeVisible()
await page.goto(`${process.env.NEXTAUTH_URL}/typebots/${typebotId}/results`)
await expect(page.locator('text="200%"')).toBeVisible()
})
})

View File

@ -27,7 +27,6 @@
"type": "text", "type": "text",
"groupId": "kinRXxYop2X4d7F9qt8WNB", "groupId": "kinRXxYop2X4d7F9qt8WNB",
"content": { "content": {
"html": "<div>Welcome to <span class=\"slate-bold\">AA</span> (Awesome Agency)</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -37,8 +36,7 @@
{ "text": " (Awesome Agency)" } { "text": " (Awesome Agency)" }
] ]
} }
], ]
"plainText": "Welcome to AA (Awesome Agency)"
} }
}, },
{ {
@ -76,14 +74,12 @@
"type": "text", "type": "text",
"groupId": "o4SH1UtKANnW5N5D67oZUz", "groupId": "o4SH1UtKANnW5N5D67oZUz",
"content": { "content": {
"html": "<div>Great! Nice to meet you {{Name}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Great! Nice to meet you {{Name}}" }] "children": [{ "text": "Great! Nice to meet you {{Name}}" }]
} }
], ]
"plainText": "Great! Nice to meet you {{Name}}"
} }
}, },
{ {
@ -91,7 +87,6 @@
"type": "text", "type": "text",
"groupId": "o4SH1UtKANnW5N5D67oZUz", "groupId": "o4SH1UtKANnW5N5D67oZUz",
"content": { "content": {
"html": "<div>What&#x27;s the best email we can reach you at?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -99,8 +94,7 @@
{ "text": "What's the best email we can reach you at?" } { "text": "What's the best email we can reach you at?" }
] ]
} }
], ]
"plainText": "What's the best email we can reach you at?"
} }
}, },
{ {
@ -125,11 +119,9 @@
"type": "text", "type": "text",
"groupId": "q5dAhqSTCaNdiGSJm9B9Rw", "groupId": "q5dAhqSTCaNdiGSJm9B9Rw",
"content": { "content": {
"html": "<div>What&#x27;s your name?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What's your name?" }] } { "type": "p", "children": [{ "text": "What's your name?" }] }
], ]
"plainText": "What's your name?"
} }
}, },
{ {
@ -158,14 +150,12 @@
"type": "text", "type": "text",
"groupId": "fKqRz7iswk7ULaj5PJocZL", "groupId": "fKqRz7iswk7ULaj5PJocZL",
"content": { "content": {
"html": "<div>What services are you interested in?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "What services are you interested in?" }] "children": [{ "text": "What services are you interested in?" }]
} }
], ]
"plainText": "What services are you interested in?"
} }
}, },
{ {
@ -213,7 +203,6 @@
"type": "text", "type": "text",
"groupId": "7qHBEyCMvKEJryBHzPmHjV", "groupId": "7qHBEyCMvKEJryBHzPmHjV",
"content": { "content": {
"html": "<div>Can you tell me a bit more about your needs?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -221,8 +210,7 @@
{ "text": "Can you tell me a bit more about your needs?" } { "text": "Can you tell me a bit more about your needs?" }
] ]
} }
], ]
"plainText": "Can you tell me a bit more about your needs?"
} }
}, },
{ {
@ -247,9 +235,7 @@
"type": "text", "type": "text",
"groupId": "vF7AD7zSAj7SNvN3gr9N94", "groupId": "vF7AD7zSAj7SNvN3gr9N94",
"content": { "content": {
"html": "<div>Perfect!</div>", "richText": [{ "type": "p", "children": [{ "text": "Perfect!" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Perfect!" }] }],
"plainText": "Perfect!"
} }
}, },
{ {
@ -257,14 +243,12 @@
"type": "text", "type": "text",
"groupId": "vF7AD7zSAj7SNvN3gr9N94", "groupId": "vF7AD7zSAj7SNvN3gr9N94",
"content": { "content": {
"html": "<div>We&#x27;ll get back to you at {{Email}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "We'll get back to you at {{Email}}" }] "children": [{ "text": "We'll get back to you at {{Email}}" }]
} }
], ]
"plainText": "We'll get back to you at {{Email}}"
}, },
"outgoingEdgeId": "fTVo43AG97eKcaTrZf9KyV" "outgoingEdgeId": "fTVo43AG97eKcaTrZf9KyV"
} }

View File

@ -28,7 +28,6 @@
"id": "clauupd6q00193b6qhegmlnxj", "id": "clauupd6q00193b6qhegmlnxj",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>How would you rate the experience so far?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -36,8 +35,7 @@
{ "text": "How would you rate the experience so far?" } { "text": "How would you rate the experience so far?" }
] ]
} }
], ]
"plainText": "How would you rate the experience so far?"
}, },
"groupId": "clauupd6q00183b6qcm8qbz62" "groupId": "clauupd6q00183b6qcm8qbz62"
}, },

View File

@ -28,11 +28,9 @@
"id": "clauujxdd00073b6qpejnkzcy", "id": "clauujxdd00073b6qpejnkzcy",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Hi there! 👋</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Hi there! 👋" }] } { "type": "p", "children": [{ "text": "Hi there! 👋" }] }
], ]
"plainText": "Hi there! 👋"
}, },
"groupId": "clauujxdc00063b6q42ca20gj" "groupId": "clauujxdc00063b6q42ca20gj"
}, },
@ -40,14 +38,12 @@
"id": "clauukaad00093b6q07av51yc", "id": "clauukaad00093b6q07av51yc",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Welcome. What&apos;s your name?</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Welcome. What's your name?" }] "children": [{ "text": "Welcome. What's your name?" }]
} }
], ]
"plainText": "Welcome. What's your name?"
}, },
"groupId": "clauujxdc00063b6q42ca20gj" "groupId": "clauujxdc00063b6q42ca20gj"
}, },
@ -76,14 +72,12 @@
"id": "clauukoka000d3b6qxqi38cmk", "id": "clauukoka000d3b6qxqi38cmk",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Nice to meet you {{Name}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Nice to meet you {{Name}}" }] "children": [{ "text": "Nice to meet you {{Name}}" }]
} }
], ]
"plainText": "Nice to meet you {{Name}}"
}, },
"groupId": "clauukoka000c3b6qe6chawis" "groupId": "clauukoka000c3b6qe6chawis"
}, },
@ -99,11 +93,9 @@
"id": "clauul4vg000g3b6qr0q2h0uy", "id": "clauul4vg000g3b6qr0q2h0uy",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>How old are you?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "How old are you?" }] } { "type": "p", "children": [{ "text": "How old are you?" }] }
], ]
"plainText": "How old are you?"
}, },
"groupId": "clauukoka000c3b6qe6chawis" "groupId": "clauukoka000c3b6qe6chawis"
}, },
@ -160,14 +152,12 @@
"id": "clauum8x7000p3b6qxjud5hdc", "id": "clauum8x7000p3b6qxjud5hdc",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Ok, you are an adult then 😁</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Ok, you are an adult then 😁" }] "children": [{ "text": "Ok, you are an adult then 😁" }]
} }
], ]
"plainText": "Ok, you are an adult then 😁"
}, },
"groupId": "clauum8x7000o3b6qx8hqduf8", "groupId": "clauum8x7000o3b6qx8hqduf8",
"outgoingEdgeId": "clauuom2y000y3b6qkcjy2ri7" "outgoingEdgeId": "clauuom2y000y3b6qkcjy2ri7"
@ -183,11 +173,9 @@
"id": "clauumjq5000s3b6qqjhrklv4", "id": "clauumjq5000s3b6qqjhrklv4",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Oh, you are a kid 😁</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Oh, you are a kid 😁" }] } { "type": "p", "children": [{ "text": "Oh, you are a kid 😁" }] }
], ]
"plainText": "Oh, you are a kid 😁"
}, },
"groupId": "clauumjq4000r3b6q8l6bi9ra", "groupId": "clauumjq4000r3b6q8l6bi9ra",
"outgoingEdgeId": "clauuol8t000x3b6qcw1few70" "outgoingEdgeId": "clauuol8t000x3b6qcw1few70"
@ -212,14 +200,12 @@
"id": "clauuontu000z3b6q3ydx6ao1", "id": "clauuontu000z3b6q3ydx6ao1",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>My magic number is {{Magic number}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "My magic number is {{Magic number}}" }] "children": [{ "text": "My magic number is {{Magic number}}" }]
} }
], ]
"plainText": "My magic number is {{Magic number}}"
}, },
"groupId": "clauuoekh000u3b6q6zmlx7f9", "groupId": "clauuoekh000u3b6q6zmlx7f9",
"outgoingEdgeId": "clauuq8je001e3b6qksm4j11g" "outgoingEdgeId": "clauuq8je001e3b6qksm4j11g"
@ -254,7 +240,6 @@
"groupId": "clauur7od001f3b6qq140oe55", "groupId": "clauur7od001f3b6qq140oe55",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>I&apos;m gonna shoot multiple inputs now...</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -262,8 +247,7 @@
{ "text": "I'm gonna shoot multiple inputs now..." } { "text": "I'm gonna shoot multiple inputs now..." }
] ]
} }
], ]
"plainText": "I'm gonna shoot multiple inputs now..."
} }
}, },
{ {
@ -317,11 +301,9 @@
"groupId": "clauusa9z001n3b6qys3xvz1l", "groupId": "clauusa9z001n3b6qys3xvz1l",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Ok, you are solid 👏</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Ok, you are solid 👏" }] } { "type": "p", "children": [{ "text": "Ok, you are solid 👏" }] }
], ]
"plainText": "Ok, you are solid 👏"
} }
}, },
{ {
@ -329,14 +311,12 @@
"groupId": "clauusa9z001n3b6qys3xvz1l", "groupId": "clauusa9z001n3b6qys3xvz1l",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Let&apos;s trigger a webhook...</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Let's trigger a webhook..." }] "children": [{ "text": "Let's trigger a webhook..." }]
} }
], ]
"plainText": "Let's trigger a webhook..."
} }
}, },
{ {
@ -370,9 +350,7 @@
"groupId": "clauuwhyl001v3b6qarbpiqbv", "groupId": "clauuwhyl001v3b6qarbpiqbv",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>{{Joke}}</div>", "richText": [{ "type": "p", "children": [{ "text": "{{Joke}}" }] }]
"richText": [{ "type": "p", "children": [{ "text": "{{Joke}}" }] }],
"plainText": "{{Joke}}"
} }
} }
] ]

View File

@ -28,14 +28,12 @@
"type": "text", "type": "text",
"groupId": "cl45ojrrd00062e6g17tuu9t0", "groupId": "cl45ojrrd00062e6g17tuu9t0",
"content": { "content": {
"html": "<div>Hey there, upload please</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
"children": [{ "text": "Hey there, upload please" }] "children": [{ "text": "Hey there, upload please" }]
} }
], ]
"plainText": "Hey there, upload please"
} }
}, },
{ {
@ -64,11 +62,9 @@
"type": "text", "type": "text",
"groupId": "cl45ok963000b2e6g2ky0wkvx", "groupId": "cl45ok963000b2e6g2ky0wkvx",
"content": { "content": {
"html": "<div>Thank you!</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Thank you!" }] } { "type": "p", "children": [{ "text": "Thank you!" }] }
], ]
"plainText": "Thank you!"
} }
} }
], ],

View File

@ -27,11 +27,9 @@
"type": "text", "type": "text",
"groupId": "2Vrpgk5VP9BUo3vKtM5kws", "groupId": "2Vrpgk5VP9BUo3vKtM5kws",
"content": { "content": {
"html": "<div>Hi what&#x27;s your name?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Hi what's your name?" }] } { "type": "p", "children": [{ "text": "Hi what's your name?" }] }
], ]
"plainText": "Hi what's your name?"
} }
}, },
{ {
@ -52,11 +50,9 @@
"type": "text", "type": "text",
"groupId": "2Vrpgk5VP9BUo3vKtM5kws", "groupId": "2Vrpgk5VP9BUo3vKtM5kws",
"content": { "content": {
"html": "<div>How old are you?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "How old are you?" }] } { "type": "p", "children": [{ "text": "How old are you?" }] }
], ]
"plainText": "How old are you?"
} }
}, },
{ {
@ -72,9 +68,7 @@
"type": "text", "type": "text",
"groupId": "2Vrpgk5VP9BUo3vKtM5kws", "groupId": "2Vrpgk5VP9BUo3vKtM5kws",
"content": { "content": {
"html": "<div>Cool!</div>", "richText": [{ "type": "p", "children": [{ "text": "Cool!" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Cool!" }] }],
"plainText": "Cool!"
} }
}, },
{ {
@ -82,11 +76,9 @@
"type": "text", "type": "text",
"groupId": "2Vrpgk5VP9BUo3vKtM5kws", "groupId": "2Vrpgk5VP9BUo3vKtM5kws",
"content": { "content": {
"html": "<div>Do you eat pizza?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Do you eat pizza?" }] } { "type": "p", "children": [{ "text": "Do you eat pizza?" }] }
], ]
"plainText": "Do you eat pizza?"
} }
}, },
{ {

View File

@ -47,9 +47,7 @@
"groupId": "clbovb3vu00103b6o1pjjuagi", "groupId": "clbovb3vu00103b6o1pjjuagi",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Cheers!</div>", "richText": [{ "type": "p", "children": [{ "text": "Cheers!" }] }]
"richText": [{ "type": "p", "children": [{ "text": "Cheers!" }] }],
"plainText": "Cheers!"
} }
} }
] ]

View File

@ -29,11 +29,9 @@
"groupId": "cl13bgy1s00042e6dao1wyobm", "groupId": "cl13bgy1s00042e6dao1wyobm",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Hey I know you!</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Hey I know you!" }] } { "type": "p", "children": [{ "text": "Hey I know you!" }] }
], ]
"plainText": "Hey I know you!"
} }
}, },
{ {
@ -41,11 +39,9 @@
"groupId": "cl13bgy1s00042e6dao1wyobm", "groupId": "cl13bgy1s00042e6dao1wyobm",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Your name is {{Name}}</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Your name is {{Name}}" }] } { "type": "p", "children": [{ "text": "Your name is {{Name}}" }] }
], ]
"plainText": "Your name is {{Name}}"
} }
}, },
{ {
@ -53,11 +49,9 @@
"groupId": "cl13bgy1s00042e6dao1wyobm", "groupId": "cl13bgy1s00042e6dao1wyobm",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>What&#x27;s your email?</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "What's your email?" }] } { "type": "p", "children": [{ "text": "What's your email?" }] }
], ]
"plainText": "What's your email?"
} }
}, },
{ {

View File

@ -74,11 +74,9 @@
"groupId": "clbnrp1kt000o3b6o2bh5ny0r", "groupId": "clbnrp1kt000o3b6o2bh5ny0r",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Email sent!</div>",
"richText": [ "richText": [
{ "type": "p", "children": [{ "text": "Email sent!" }] } { "type": "p", "children": [{ "text": "Email sent!" }] }
], ]
"plainText": "Email sent!"
} }
} }
] ]

View File

@ -108,7 +108,6 @@
"groupId": "cl9ipbcjy000j3b6oqngo7luv", "groupId": "cl9ipbcjy000j3b6oqngo7luv",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Data of first request:</div><div></div><div>{{Data}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -116,8 +115,7 @@
}, },
{ "type": "p", "children": [{ "text": "" }] }, { "type": "p", "children": [{ "text": "" }] },
{ "type": "p", "children": [{ "text": "{{Data}}" }] } { "type": "p", "children": [{ "text": "{{Data}}" }] }
], ]
"plainText": "Data of first request:{{Data}}"
}, },
"outgoingEdgeId": "cl9ipet83000z3b6of6zfqota" "outgoingEdgeId": "cl9ipet83000z3b6of6zfqota"
} }
@ -151,7 +149,6 @@
"groupId": "cl9ipej6b000u3b6oeaz305l6", "groupId": "cl9ipej6b000u3b6oeaz305l6",
"type": "text", "type": "text",
"content": { "content": {
"html": "<div>Data of second request:</div><div></div><div>{{Data}}</div>",
"richText": [ "richText": [
{ {
"type": "p", "type": "p",
@ -159,8 +156,7 @@
}, },
{ "type": "p", "children": [{ "text": "" }] }, { "type": "p", "children": [{ "text": "" }] },
{ "type": "p", "children": [{ "text": "{{Data}}" }] } { "type": "p", "children": [{ "text": "{{Data}}" }] }
], ]
"plainText": "Data of second request:{{Data}}"
} }
} }
] ]

View File

@ -38,7 +38,7 @@ export const TextBubble = ({ block, onTransitionEnd }: Props) => {
if (!isTyping || isLoading) return if (!isTyping || isLoading) return
const typingTimeout = computeTypingDuration( const typingTimeout = computeTypingDuration(
block.content.plainText, block.content.plainText ?? '',
typebot.settings?.typingEmulation ?? defaultTypingEmulation typebot.settings?.typingEmulation ?? defaultTypingEmulation
) )
const timeout = setTimeout(() => { const timeout = setTimeout(() => {

View File

@ -1,6 +1,6 @@
{ {
"name": "@typebot.io/js", "name": "@typebot.io/js",
"version": "0.0.34", "version": "0.0.35",
"description": "Javascript library to display typebots on your website", "description": "Javascript library to display typebots on your website",
"type": "module", "type": "module",
"main": "dist/index.js", "main": "dist/index.js",
@ -13,6 +13,7 @@
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@stripe/stripe-js": "1.52.0", "@stripe/stripe-js": "1.52.0",
"@udecode/plate-common": "^20.4.0",
"solid-element": "1.7.0", "solid-element": "1.7.0",
"solid-js": "1.7.1" "solid-js": "1.7.1"
}, },
@ -22,20 +23,20 @@
"@rollup/plugin-node-resolve": "15.0.1", "@rollup/plugin-node-resolve": "15.0.1",
"@rollup/plugin-terser": "0.4.0", "@rollup/plugin-terser": "0.4.0",
"@rollup/plugin-typescript": "11.0.0", "@rollup/plugin-typescript": "11.0.0",
"@typebot.io/lib": "workspace:*",
"@typebot.io/schemas": "workspace:*",
"@typebot.io/tsconfig": "workspace:*",
"autoprefixer": "10.4.14", "autoprefixer": "10.4.14",
"babel-preset-solid": "1.7.1", "babel-preset-solid": "1.7.1",
"eslint": "8.37.0", "eslint": "8.37.0",
"eslint-config-custom": "workspace:*", "eslint-config-custom": "workspace:*",
"eslint-plugin-solid": "0.12.0", "eslint-plugin-solid": "0.12.0",
"@typebot.io/schemas": "workspace:*",
"postcss": "8.4.21", "postcss": "8.4.21",
"react": "18.2.0", "react": "18.2.0",
"rollup": "3.20.2", "rollup": "3.20.2",
"rollup-plugin-postcss": "4.0.2", "rollup-plugin-postcss": "4.0.2",
"rollup-plugin-typescript-paths": "1.4.0", "rollup-plugin-typescript-paths": "1.4.0",
"tailwindcss": "3.3.1", "tailwindcss": "3.3.1",
"@typebot.io/tsconfig": "workspace:*", "typescript": "5.0.3"
"typescript": "5.0.3",
"@typebot.io/lib": "workspace:*"
} }
} }

View File

@ -30,7 +30,7 @@ export const HostBubble = (props: Props) => {
<Switch> <Switch>
<Match when={props.message.type === BubbleBlockType.TEXT}> <Match when={props.message.type === BubbleBlockType.TEXT}>
<TextBubble <TextBubble
content={props.message.content as Omit<TextBubbleContent, 'richText'>} content={props.message.content as TextBubbleContent}
typingEmulation={props.typingEmulation} typingEmulation={props.typingEmulation}
onTransitionEnd={onTransitionEnd} onTransitionEnd={onTransitionEnd}
/> />

View File

@ -1,10 +1,12 @@
import { TypingBubble } from '@/components' import { TypingBubble } from '@/components'
import type { TextBubbleContent, TypingEmulation } from '@typebot.io/schemas' import type { TextBubbleContent, TypingEmulation } from '@typebot.io/schemas'
import { createSignal, onCleanup, onMount } from 'solid-js' import { For, createSignal, onCleanup, onMount } from 'solid-js'
import { computeTypingDuration } from '../utils/computeTypingDuration' import { computeTypingDuration } from '../helpers/computeTypingDuration'
import { PlateBlock } from './plate/PlateBlock'
import { computePlainText } from '../helpers/convertRichTextToPlainText'
type Props = { type Props = {
content: Pick<TextBubbleContent, 'html' | 'plainText'> content: TextBubbleContent
typingEmulation: TypingEmulation typingEmulation: TypingEmulation
onTransitionEnd: () => void onTransitionEnd: () => void
} }
@ -32,11 +34,12 @@ export const TextBubble = (props: Props) => {
onMount(() => { onMount(() => {
if (!isTyping) return if (!isTyping) return
const plainText = computePlainText(props.content.richText)
const typingDuration = const typingDuration =
props.typingEmulation?.enabled === false props.typingEmulation?.enabled === false
? 0 ? 0
: computeTypingDuration( : computeTypingDuration(
props.content.plainText, plainText,
props.typingEmulation ?? defaultTypingEmulation props.typingEmulation ?? defaultTypingEmulation
) )
typingTimeout = setTimeout(onTypingEnd, typingDuration) typingTimeout = setTimeout(onTypingEnd, typingDuration)
@ -60,13 +63,16 @@ export const TextBubble = (props: Props) => {
> >
{isTyping() && <TypingBubble />} {isTyping() && <TypingBubble />}
</div> </div>
<p <div
class={ class={
'overflow-hidden text-fade-in mx-4 my-2 whitespace-pre-wrap slate-html-container relative text-ellipsis ' + 'overflow-hidden text-fade-in mx-4 my-2 whitespace-pre-wrap slate-html-container relative text-ellipsis ' +
(isTyping() ? 'opacity-0 h-6' : 'opacity-100 h-full') (isTyping() ? 'opacity-0 h-6' : 'opacity-100 h-full')
} }
innerHTML={props.content.html} >
/> <For each={props.content.richText}>
{(element) => <PlateBlock element={element} />}
</For>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -0,0 +1,30 @@
import type { TElement, TText, TDescendant } from '@udecode/plate-common'
import { PlateText, PlateTextProps } from './PlateText'
import { For, Match, Show, Switch } from 'solid-js'
type Props = { element: TElement | TText }
export const PlateBlock = (props: Props) => (
<Show
when={!props.element.text}
fallback={<PlateText {...(props.element as PlateTextProps)} />}
>
<Switch
fallback={
<div>
<For each={props.element.children as TDescendant[]}>
{(child) => <PlateBlock element={child} />}
</For>
</div>
}
>
<Match when={props.element.type === 'a'}>
<a href={props.element.url as string} target="_blank" class="slate-a">
<For each={props.element.children as TDescendant[]}>
{(child) => <PlateBlock element={child} />}
</For>
</a>
</Match>
</Switch>
</Show>
)

View File

@ -0,0 +1,30 @@
import { Show } from 'solid-js'
export type PlateTextProps = {
text: string
bold?: boolean
italic?: boolean
underline?: boolean
}
const computeClassNames = (
bold: boolean | undefined,
italic: boolean | undefined,
underline: boolean | undefined
) => {
let className = ''
if (bold) className += 'slate-bold'
if (italic) className += ' slate-italic'
if (underline) className += ' slate-underline'
return className
}
export const PlateText = (props: PlateTextProps) => (
<Show
when={computeClassNames(props.bold, props.italic, props.underline)}
keyed
fallback={<>{props.text}</>}
>
{(className) => <span class={className}>{props.text}</span>}
</Show>
)

View File

@ -0,0 +1,9 @@
import type { TDescendant } from '@udecode/plate-common'
export const computePlainText = (elements: TDescendant[]): string =>
elements
.map(
(element) =>
element.text ?? computePlainText(element.children as TDescendant[])
)
.join('')

View File

@ -1,6 +1,6 @@
{ {
"name": "@typebot.io/react", "name": "@typebot.io/react",
"version": "0.0.34", "version": "0.0.35",
"description": "React library to display typebots on your website", "description": "React library to display typebots on your website",
"main": "dist/index.js", "main": "dist/index.js",
"types": "dist/index.d.ts", "types": "dist/index.d.ts",

View File

@ -1,21 +1,18 @@
import { z } from 'zod' import { z } from 'zod'
import { blockBaseSchema } from '../baseSchemas' import { blockBaseSchema } from '../baseSchemas'
import { BubbleBlockType } from './enums' import { BubbleBlockType } from './enums'
import type { TElement } from '@udecode/plate-common'
export const defaultTextBubbleContent: TextBubbleContent = { export const defaultTextBubbleContent: TextBubbleContent = {
html: '',
richText: [], richText: [],
plainText: '',
} }
export const textBubbleContentSchema = z.object({ export const textBubbleContentSchema = z.object({
html: z.string(), html: z.string().optional(),
richText: z.array(z.any()), richText: z.array(z.any()),
plainText: z.string(), plainText: z.string().optional(),
}) })
export type TextBubbleContent = z.infer<typeof textBubbleContentSchema>
export const textBubbleBlockSchema = blockBaseSchema.merge( export const textBubbleBlockSchema = blockBaseSchema.merge(
z.object({ z.object({
type: z.enum([BubbleBlockType.TEXT]), type: z.enum([BubbleBlockType.TEXT]),
@ -23,4 +20,10 @@ export const textBubbleBlockSchema = blockBaseSchema.merge(
}) })
) )
export type TextBubbleBlock = z.infer<typeof textBubbleBlockSchema> export type TextBubbleBlock = Omit<
z.infer<typeof textBubbleBlockSchema>,
'content'
> & {
content: { richText: TElement[]; html?: string; plainText?: string }
}
export type TextBubbleContent = TextBubbleBlock['content']

View File

@ -73,9 +73,7 @@ const chatSessionSchema = z.object({
const textMessageSchema = z.object({ const textMessageSchema = z.object({
type: z.literal(BubbleBlockType.TEXT), type: z.literal(BubbleBlockType.TEXT),
content: textBubbleContentSchema.omit({ content: textBubbleContentSchema,
richText: true,
}),
}) })
const imageMessageSchema = z.object({ const imageMessageSchema = z.object({

View File

@ -6,6 +6,7 @@
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@udecode/plate-common": "^20.4.0",
"zod": "3.21.4" "zod": "3.21.4"
}, },
"devDependencies": { "devDependencies": {

6
pnpm-lock.yaml generated
View File

@ -813,6 +813,9 @@ importers:
'@stripe/stripe-js': '@stripe/stripe-js':
specifier: 1.52.0 specifier: 1.52.0
version: 1.52.0 version: 1.52.0
'@udecode/plate-common':
specifier: ^20.4.0
version: 20.4.0(@babel/core@7.21.4)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.23.0)(slate-history@0.86.0)(slate-react@0.92.0)(slate@0.91.4)
solid-element: solid-element:
specifier: 1.7.0 specifier: 1.7.0
version: 1.7.0(solid-js@1.7.1) version: 1.7.0(solid-js@1.7.1)
@ -1049,6 +1052,9 @@ importers:
packages/schemas: packages/schemas:
dependencies: dependencies:
'@udecode/plate-common':
specifier: ^20.4.0
version: 20.4.0(@babel/core@7.21.4)(react-dom@18.2.0)(react@18.2.0)(scheduler@0.23.0)(slate-history@0.86.0)(slate-react@0.92.0)(slate@0.91.4)
zod: zod:
specifier: 3.21.4 specifier: 3.21.4
version: 3.21.4 version: 3.21.4