Extract Text from Jotform answers

Hi everyone,
New user here and at a frustrating sticking point.

I have a Jotform watching for submissions. In that form the customer answers a question “Do you need any additional services”. They can choose multiple selections.

At the end of my scenario I have an email that gets sent. I need this email to contain ONLY what the customer has selected without the ‘CHECKED’ text.

How can I get this email to not include the UNCHECKED values and show the CHECKED values without the word ‘checked’.

In the form, there are follow up questions when an additional service is selected. E.g if the customer selects “inside oven”, the form asks “how many ovens”.

Ideally I need the email to say:

Extras
Inside oven x 2

Any help would be massively appreciated!

Thanks,

Josh

1 Like

Hi @Josh_Harris1
IF you could share an output bundle of a submission we can show you how to set them up.

Best regards,
Msquare Automation
Platinum Partner of Make
@Msquare_Automation

Hi @Msquare_Automation,

I believe the output bundle for this particular question is:

“q38_typeA38”: “CHECKED: Inside oven\r\nUNCHECKED: Inside fridge\r\nUNCHECKED: Carpet cleaning\r\nUNCHECKED: Upholstery cleaning”,

The follow up question is:

“q12_howMany12”: “2”,

I got this from downloading the output bundle from the watch submission module - I think this is what you’re after.

Thanks,

Josh

1 Like

Hey Josh,

can you show the scenario setup at the moment and what issues you are facing? You should be able to map these directly in the email module.

Hey @Stoyan_Vatov,

I can map them into the email module but the email includes both checked and unchecked items. I also want to remove the word ‘checked’ from the email.

The scenario pulls the checked and unchecked items, but I’m unsure how to extract the text I want to show in the email. I’ve read various other threads and the many have referred to the match pattern module.

1 Like

I see, so its just a string.

Can you copy/paste the exact output of the Jotform module?

If its the one from before - then you should be able to have an iterator module and inside put split(value; \n) followed by a filter that checks if the value does not contain UNCHEKCED and then a text aggregator module to rebuild it using only the CHEKCED items.

The text I sent before was from the output bundle, is that what you’re asking for?

I could be wrong (or just very obviously new to this) but when I’ve tried the iterator I can’t put in specific values (or answers) from the question. When looking at the map options, it looks to be only the answers.



1 Like

There is a button on the top right:

You can use that to get the output bundle as a string and then paste it here using the code preformatting option.

image

Ah, I see! Here you are…

[
    {
        "action": "",
        "webhookURL": "https://hook.eu2.make.com/sq0g03aeppan6xh7ir2lsxhmb8rw5v2z",
        "username": "Harris_Josh_hello",
        "formID": "251613555592056",
        "type": "WEB",
        "customParams": "",
        "product": "",
        "formTitle": "One Off Clean",
        "customTitle": "",
        "submissionID": "6259153939584295832",
        "event": "",
        "documentID": "",
        "teamID": "",
        "subject": "",
        "isSilent": "",
        "customBody": "",
        "rawRequest": "{\"slug\":\"submit\\/251613555592056\",\"uploadServerUrl\":\"https:\\/\\/upload.jotform.com\\/upload\",\"jsExecutionTracker\":\"build-date-1750137300337=>init-started:1750137300809=>validator-called:1750137300875=>validator-mounted-false:1750137300875=>init-complete:1750137300882=>observerSubmitHandler_received-submit-event:1750137305257=>submit-validation-passed:1750137305274=>observerSubmitHandler_validation-passed-submitting-form:1750137305289\",\"submitSource\":\"form\",\"submitDate\":\"1750137305289\",\"buildDate\":\"1750137300337\",\"q5_whatIs\":{\"first\":\"Josh\",\"last\":\"Harris\"},\"q54_whatIs54\":\"Flat\",\"q7_howMany\":\"1\",\"q8_howMany8\":\"1\",\"q9_howMany9\":\"0\",\"q38_typeA38\":\"CHECKED: Inside oven\\r\\nCHECKED: Inside fridge\\r\\nCHECKED: Carpet cleaning\\r\\nCHECKED: Upholstery cleaning\",\"q12_howMany12\":\"2\",\"q13_howMany13\":\"2\",\"q14_howMany14\":\"2\",\"q37_typeA37\":\"CHECKED: Sofas\\r\\nCHECKED: Curtains or fabric blinds\\r\\nCHECKED: Rugs\",\"q91_whatTypes91\":\"CHECKED: Small (1-2 seater)\\r\\nCHECKED: Medium (3-4 seater)\\r\\nCHECKED: Large (5+ seater)\",\"q30_typeA30\":\"1\",\"q31_howMany31\":\"1\",\"q32_howMany32\":\"1\",\"q33_howMany33\":\"1\",\"q34_howMany34\":\"1\",\"q42_email\":\"josh.ha@hotmail.co.uk\",\"q45_appointment\":{\"implementation\":\"new\",\"date\":\"2025-06-17 15:00\",\"duration\":\"60\",\"timezone\":\"Europe\\/Paris (GMT+02:00)\"},\"q43_address\":{\"addr_line1\":\"Flat C\",\"addr_line2\":\"116 Cavendish Road\",\"city\":\"London\",\"state\":\"\",\"postal\":\"SW12 0DE\",\"country\":\"\"},\"dropdown_search\":\"Please Select\",\"q44_phoneNumber\":{\"full\":\"(+44) 123-4123\"},\"q49_calculation\":\"20\",\"q55_minBase\":\"2\",\"q56_baseTime\":\"2\",\"q50_bedroomExtra\":\"0\",\"q57_bathroomExtra\":\"0\",\"q58_additionalRoom\":\"0\",\"q51_ovenTime\":\"1\",\"q70_ovenCost\":\"80\",\"q66_fridgeTime\":\"1\",\"q71_fridgeCost\":\"40\",\"q59_carpetTime\":\"1\",\"q72_carpetCost\":\"80\",\"q60_smallSofa\":\"0.50\",\"q73_smallSofa73\":\"50\",\"q67_mediumSofa\":\"0.50\",\"q74_mediumSofa74\":\"60\",\"q68_largeSofa\":\"0.50\",\"q75_largeSofa75\":\"70\",\"q61_curtainTime\":\"0.50\",\"q76_curtainCost\":\"30\",\"q62_rugTime\":\"0.50\",\"q77_rugCost\":\"25\",\"q69_totalAdd69\":\"5.50\",\"q78_totalAdd\":\"435\",\"q79_totalTime\":\"7.50\",\"q80_basePrice\":\"40\",\"q81_finalPrice\":\"475\",\"payment_total_checksum\":\"475\",\"payment_discount_value\":\"\",\"payment_version\":\"4\",\"q86_payment\":{\"price\":\"475\",\"customer_id\":null,\"intent_id\":null,\"payment_method_id\":null,\"donation\":{\"totalSum\":475,\"currency\":\"GBP\"},\"totalInfo\":{\"totalSum\":475,\"currency\":\"GBP\"}},\"event_id\":\"1750137300809_251613555592056_fD55Qy6\",\"submission_id\":\"6259153939584295832\",\"timeToSubmit\":\"4\",\"JotFormPopulatedFields\":\"q5,q7,q8,q9,q12,q13,q14,q30,q31,q32,q33,q34,q37,q38,q42,q43,q44,q45,q49,q50,q51,q54,q55,q56,q57,q58,q59,q60,q61,q62,q66,q67,q68,q69,q70,q71,q72,q73,q74,q75,q76,q77,q78,q79,q80,q81,q86,q91\",\"validatedNewRequiredFieldIDs\":\"{\\\"new\\\":1,\\\"id_5\\\":\\\"Ha\\\",\\\"id_54\\\":\\\"Ho\\\",\\\"id_43\\\":\\\"Lo\\\",\\\"id_44\\\":\\\"(+\\\",\\\"id_86\\\":\\\"\\\"}\",\"path\":\"\\/submit\\/251613555592056\",\"submissionEdited\":1}",
        "fromTable": "",
        "appID": "",
        "pretty": "What is your name?:Josh Harris, What is your property type?:Flat, How many bedrooms do you need cleaned?:1, How many bathrooms do you need cleaned?:1, How many additional rooms do you need cleaned?:0, Do you need any additional services?:CHECKED: Inside oven\r\nCHECKED: Inside fridge\r\nCHECKED: Carpet cleaning\r\nCHECKED: Upholstery cleaning, How many ovens need cleaning?:2, How many fridges need cleaning?:2, How many rooms with carpets need cleaning?:2, What type of upholstery cleaning do you need?:CHECKED: Sofas\r\nCHECKED: Curtains or fabric blinds\r\nCHECKED: Rugs, What types of sofas need cleaning?:CHECKED: Small (1-2 seater)\r\nCHECKED: Medium (3-4 seater)\r\nCHECKED: Large (5+ seater), How many small sofas need cleaning?:1, How many medium sofas need cleaning?:1, How many large sofas need cleaning?:1, How many curtains / fabric blinds?:1, How many rugs?:1, Email:josh.ha@hotmail.co.uk, Appointment:Tuesday, Jun 17, 2025 03:00 PM-04:00 PM Europe/London (GMT+01:00), Address:Flat C 116 Cavendish Road London  SW12 0DE , Phone Number:(+44) 123-4123, Base hourly rate:20, Min base hours:2, Base time:2, Bedroom extra time:0, Bathroom extra time:0, Additional room time:0, Oven time:1, Oven cost:80, Fridge time:1, Fridge Cost:40, Carpet time:1, Carpet cost:80, Small sofa time:0.50, Small sofa cost:50, Medium sofa time:0.50, Medium sofa cost:60, Large sofa time:0.50, Large sofa cost:70, Curtain time:0.50, Curtain cost:30, Rug time:0.50, Rug cost:25, Total Add On Time:5.50, Total Add On Cost:435, Total Time:7.50, Base Price:40, Final Price:475, Payment:<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td><ul style='padding-left:0; list-style: none; margin-bottom: 0;'><li>Description (Amount: 475.00 GBP) </li></ul>Total: 475.00 GBP<br></td></tr></table>",
        "unread": "",
        "parent": "",
        "ip": "2a00:23c6:1ee1:701:289b:d574:a173:6601",
        "request": {
            "slug": "submit/251613555592056",
            "uploadServerUrl": "https://upload.jotform.com/upload",
            "jsExecutionTracker": "build-date-1750137300337=>init-started:1750137300809=>validator-called:1750137300875=>validator-mounted-false:1750137300875=>init-complete:1750137300882=>observerSubmitHandler_received-submit-event:1750137305257=>submit-validation-passed:1750137305274=>observerSubmitHandler_validation-passed-submitting-form:1750137305289",
            "submitSource": "form",
            "submitDate": "1750137305289",
            "buildDate": "1750137300337",
            "q5_whatIs": {
                "first": "Josh",
                "last": "Harris"
            },
            "q54_whatIs54": "Flat",
            "q7_howMany": "1",
            "q8_howMany8": "1",
            "q9_howMany9": "0",
            "q38_typeA38": "CHECKED: Inside oven\r\nCHECKED: Inside fridge\r\nCHECKED: Carpet cleaning\r\nCHECKED: Upholstery cleaning",
            "q12_howMany12": "2",
            "q13_howMany13": "2",
            "q14_howMany14": "2",
            "q37_typeA37": "CHECKED: Sofas\r\nCHECKED: Curtains or fabric blinds\r\nCHECKED: Rugs",
            "q91_whatTypes91": "CHECKED: Small (1-2 seater)\r\nCHECKED: Medium (3-4 seater)\r\nCHECKED: Large (5+ seater)",
            "q30_typeA30": "1",
            "q31_howMany31": "1",
            "q32_howMany32": "1",
            "q33_howMany33": "1",
            "q34_howMany34": "1",
            "q42_email": "josh.ha@hotmail.co.uk",
            "q45_appointment": {
                "implementation": "new",
                "date": "2025-06-17 15:00",
                "duration": "60",
                "timezone": "Europe/Paris (GMT+02:00)"
            },
            "q43_address": {
                "addr_line1": "Flat C",
                "addr_line2": "116 Cavendish Road",
                "city": "London",
                "state": "",
                "postal": "SW12 0DE",
                "country": ""
            },
            "dropdown_search": "Please Select",
            "q44_phoneNumber": {
                "full": "(+44) 123-4123"
            },
            "q49_calculation": "20",
            "q55_minBase": "2",
            "q56_baseTime": "2",
            "q50_bedroomExtra": "0",
            "q57_bathroomExtra": "0",
            "q58_additionalRoom": "0",
            "q51_ovenTime": "1",
            "q70_ovenCost": "80",
            "q66_fridgeTime": "1",
            "q71_fridgeCost": "40",
            "q59_carpetTime": "1",
            "q72_carpetCost": "80",
            "q60_smallSofa": "0.50",
            "q73_smallSofa73": "50",
            "q67_mediumSofa": "0.50",
            "q74_mediumSofa74": "60",
            "q68_largeSofa": "0.50",
            "q75_largeSofa75": "70",
            "q61_curtainTime": "0.50",
            "q76_curtainCost": "30",
            "q62_rugTime": "0.50",
            "q77_rugCost": "25",
            "q69_totalAdd69": "5.50",
            "q78_totalAdd": "435",
            "q79_totalTime": "7.50",
            "q80_basePrice": "40",
            "q81_finalPrice": "475",
            "payment_total_checksum": "475",
            "payment_discount_value": "",
            "payment_version": "4",
            "q86_payment": {
                "price": "475",
                "customer_id": null,
                "intent_id": null,
                "payment_method_id": null,
                "donation": {
                    "totalSum": 475,
                    "currency": "GBP"
                },
                "totalInfo": {
                    "totalSum": 475,
                    "currency": "GBP"
                }
            },
            "event_id": "1750137300809_251613555592056_fD55Qy6",
            "submission_id": "6259153939584295832",
            "timeToSubmit": "4",
            "JotFormPopulatedFields": "q5,q7,q8,q9,q12,q13,q14,q30,q31,q32,q33,q34,q37,q38,q42,q43,q44,q45,q49,q50,q51,q54,q55,q56,q57,q58,q59,q60,q61,q62,q66,q67,q68,q69,q70,q71,q72,q73,q74,q75,q76,q77,q78,q79,q80,q81,q86,q91",
            "validatedNewRequiredFieldIDs": "{\"new\":1,\"id_5\":\"Ha\",\"id_54\":\"Ho\",\"id_43\":\"Lo\",\"id_44\":\"(+\",\"id_86\":\"\"}",
            "path": "/submit/251613555592056",
            "submissionEdited": 1
        }
    }
]

I used a parsed JSON after my watch submissions module to extract the answers. The JSON string used the ‘request’ mapping.

I think now that I’ve got the answers in that way, it will be easier to resolve the email issue I’m having. At least that’s what ChatGPT is telling me.

Resolved!

Put in a match pattern module after the parse JSON with the pattern ‘CHECKED:\s*(.+)’.
Then a text aggregator with the text parser as the source module.
Then in output modules (google sheets and email) I mapped the parsed text.

Screenshot 2025-06-17 at 07.07.45