{"id":29222,"date":"2026-06-16T10:58:13","date_gmt":"2026-06-16T10:58:13","guid":{"rendered":"https:\/\/mosaicconnect.io\/?page_id=29222"},"modified":"2026-06-16T11:00:34","modified_gmt":"2026-06-16T11:00:34","slug":"mc-prompts","status":"publish","type":"page","link":"https:\/\/mosaicconnect.io\/en\/mc-prompts\/","title":{"rendered":"MC Prompts"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"29222\" class=\"elementor elementor-29222\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-955a24a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"955a24a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2103b87\" data-id=\"2103b87\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-423219d elementor-widget elementor-widget-shortcode\" data-id=\"423219d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">        <div id=\"mc-prompts-yZoPMDsY\" class=\"mc-prompts-wrap\">\n            <div class=\"mc-prompts-card\">\n                <div class=\"mc-prompts-header\">\n                    <div>\n                        <h2 class=\"mc-prompts-title\">Prompt Studio<\/h2>\n                        <p class=\"mc-prompts-subtitle\">Fill the form, send it to your webhook, then review the exact prompt and the webhook response below.<\/p>\n                    <\/div>\n                <\/div>\n\n                <form class=\"mc-prompts-form\" novalidate>\n                    <div class=\"mc-prompts-grid\">\n                        <div class=\"mc-prompts-field mc-prompts-field-full\">\n                            <label for=\"mc-prompts-yZoPMDsY-idea\">Describe your idea <span class=\"required\">*<\/span><\/label>\n                            <textarea id=\"mc-prompts-yZoPMDsY-idea\" name=\"idea\" rows=\"5\" required placeholder=\"make a development plan for my hotel\"><\/textarea>\n                        <\/div>\n\n                        <div class=\"mc-prompts-field\">\n                            <label for=\"mc-prompts-yZoPMDsY-personality\">The AI personality you want <span class=\"required\">*<\/span><\/label>\n                            <select id=\"mc-prompts-yZoPMDsY-personality\" name=\"personality\" required>\n                                <option value=\"\">Select personality<\/option>\n                                                                    <option value=\"expert\">Expert<\/option>\n                                                                    <option value=\"friendly\">Friendly<\/option>\n                                                                    <option value=\"creative\">Creative<\/option>\n                                                                    <option value=\"strategic\">Strategic<\/option>\n                                                                    <option value=\"analytical\">Analytical<\/option>\n                                                                    <option value=\"concise\">Concise<\/option>\n                                                                    <option value=\"professional\">Professional<\/option>\n                                                                    <option value=\"playful\">Playful<\/option>\n                                                            <\/select>\n                        <\/div>\n\n                        <div class=\"mc-prompts-field\">\n                            <label for=\"mc-prompts-yZoPMDsY-language\">Prompt language <span class=\"required\">*<\/span><\/label>\n                            <select id=\"mc-prompts-yZoPMDsY-language\" name=\"language\" required>\n                                <option value=\"\">Select language<\/option>\n                                                                    <option value=\"English\">English<\/option>\n                                                                    <option value=\"Arabic\">Arabic<\/option>\n                                                                    <option value=\"French\">French<\/option>\n                                                                    <option value=\"Spanish\">Spanish<\/option>\n                                                                    <option value=\"German\">German<\/option>\n                                                                    <option value=\"Italian\">Italian<\/option>\n                                                                    <option value=\"Portuguese\">Portuguese<\/option>\n                                                                    <option value=\"Turkish\">Turkish<\/option>\n                                                            <\/select>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"mc-prompts-actions\">\n                        <button type=\"submit\" class=\"mc-prompts-submit\">Send Prompt<\/button>\n                        <button type=\"button\" class=\"mc-prompts-secondary\" data-action=\"start-new\" hidden>Start New<\/button>\n                        <button type=\"button\" class=\"mc-prompts-secondary\" data-action=\"resend\" hidden>Resend Prompt<\/button>\n                    <\/div>\n\n                    <div class=\"mc-prompts-message\" aria-live=\"polite\"><\/div>\n                <\/form>\n\n                <div class=\"mc-prompts-result\" hidden>\n                    <div class=\"mc-prompts-result-grid\">\n                        <div class=\"mc-prompts-result-panel is-copyable mc-prompts-result-panel-full\">\n                            <div class=\"mc-prompts-panel-title\">\n                                <span>Webhook Response<\/span>\n                                <button type=\"button\" class=\"mc-prompts-copy-btn\" data-copy=\"response\" aria-label=\"Copy response\">Copy<\/button>\n                            <\/div>\n                            <div class=\"mc-prompts-panel-body\" data-panel=\"response\"><\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <script>\n        (function(){\n            var wrap = document.getElementById(\"mc-prompts-yZoPMDsY\");\n            if (!wrap) return;\n\n            var form = wrap.querySelector('.mc-prompts-form');\n            var msgBox = wrap.querySelector('.mc-prompts-message');\n            var submitBtn = wrap.querySelector('.mc-prompts-submit');\n            var startNewBtn = wrap.querySelector('[data-action=\"start-new\"]');\n            var resendBtn = wrap.querySelector('[data-action=\"resend\"]');\n            var resultBox = wrap.querySelector('.mc-prompts-result');\n            var responsePanel = wrap.querySelector('[data-panel=\"response\"]');\n            var ajaxUrl = \"https:\\\/\\\/mosaicconnect.io\\\/wp-admin\\\/admin-ajax.php\";\n            var nonce = \"a6bc7a7473\";\n            var noncePromise = null;\n            var lastPayload = null;\n\n            if (!form || !msgBox || !submitBtn || !startNewBtn || !resendBtn || !resultBox || !responsePanel) return;\n\n            function refreshNonce() {\n                if (noncePromise) return noncePromise;\n\n                noncePromise = fetch(ajaxUrl, {\n                    method: 'POST',\n                    headers: {'Content-Type': 'application\/x-www-form-urlencoded; charset=UTF-8'},\n                    body: new URLSearchParams({ action: 'mc_prompts_get_nonce' }).toString(),\n                    credentials: 'same-origin'\n                })\n                .then(function(res){ return res.json(); })\n                .then(function(resp){\n                    if (resp && resp.success && resp.data && resp.data.nonce) {\n                        nonce = resp.data.nonce;\n                        return nonce;\n                    }\n                    throw new Error('Could not load security token.');\n                })\n                .catch(function(err){\n                    noncePromise = null;\n                    throw err;\n                });\n\n                return noncePromise;\n            }\n\n            function prettyJson(value) {\n                if (typeof value === 'string') {\n                    try {\n                        value = JSON.parse(value);\n                    } catch (e) {\n                        return value;\n                    }\n                }\n\n                try {\n                    return JSON.stringify(value, null, 2);\n                } catch (e) {\n                    return String(value);\n                }\n            }\n\n            function setResult(responseData) {\n                responsePanel.textContent = prettyJson(responseData);\n                resultBox.hidden = false;\n                startNewBtn.hidden = false;\n                resendBtn.hidden = false;\n            }\n\n            function setMessage(text, isError) {\n                msgBox.classList.remove('is-error', 'is-success');\n                if (text) {\n                    msgBox.classList.add(isError ? 'is-error' : 'is-success');\n                    msgBox.textContent = text;\n                } else {\n                    msgBox.textContent = '';\n                }\n            }\n\n            function collectPayload() {\n                return {\n                    idea: form.querySelector('[name=\"idea\"]').value,\n                    personality: form.querySelector('[name=\"personality\"]').value,\n                    language: form.querySelector('[name=\"language\"]').value\n                };\n            }\n\n            function sendPrompt(payload) {\n                submitBtn.disabled = true;\n                submitBtn.textContent = 'Sending...';\n                setMessage('', false);\n\n                return refreshNonce()\n                    .then(function(){\n                        var body = new URLSearchParams({\n                            action: 'mc_prompts_submit',\n                            nonce: nonce,\n                            idea: payload.idea,\n                            personality: payload.personality,\n                            language: payload.language\n                        });\n\n                        return fetch(ajaxUrl, {\n                            method: 'POST',\n                            headers: {'Content-Type': 'application\/x-www-form-urlencoded; charset=UTF-8'},\n                            body: body.toString(),\n                            credentials: 'same-origin'\n                        });\n                    })\n                    .then(function(res){ return res.json(); })\n                    .then(function(resp){\n                        if (resp && resp.data) {\n                            var submitted = resp.data.submitted_prompt || payload;\n                            var response = typeof resp.data.webhook_response !== 'undefined' ? resp.data.webhook_response : resp.data;\n                            lastPayload = submitted;\n                            setResult(response);\n                        }\n\n                        if (resp && resp.success) {\n                            setMessage('', false);\n                            form.querySelector('[name=\"idea\"]').value = '';\n                            form.querySelector('[name=\"personality\"]').selectedIndex = 0;\n                            form.querySelector('[name=\"language\"]').selectedIndex = 0;\n                        } else {\n                            var err = (resp && resp.data && resp.data.message) ? resp.data.message : 'Submission failed.';\n                            setMessage(err, true);\n                        }\n                    })\n                    .catch(function(){\n                        setMessage('Network error. Please try again.', true);\n                    })\n                    .finally(function(){\n                        submitBtn.disabled = false;\n                        submitBtn.textContent = 'Send Prompt';\n                });\n            }\n\n            function copyText(type) {\n                var text = responsePanel.textContent;\n                if (!text) return;\n\n                var button = wrap.querySelector('[data-copy=\"' + type + '\"]');\n                var done = function() {\n                    if (!button) return;\n                    button.classList.add('is-copied');\n                    button.textContent = 'Copied';\n                    setTimeout(function(){\n                        button.classList.remove('is-copied');\n                        button.textContent = 'Copy';\n                    }, 1200);\n                };\n\n                if (navigator.clipboard && window.isSecureContext) {\n                    navigator.clipboard.writeText(text).then(done).catch(function(){});\n                    return;\n                }\n\n                var temp = document.createElement('textarea');\n                temp.value = text;\n                temp.setAttribute('readonly', 'readonly');\n                temp.style.position = 'absolute';\n                temp.style.left = '-9999px';\n                document.body.appendChild(temp);\n                temp.select();\n                try {\n                    document.execCommand('copy');\n                    done();\n                } finally {\n                    document.body.removeChild(temp);\n                }\n            }\n\n            Array.prototype.forEach.call(wrap.querySelectorAll('[data-copy]'), function(button){\n                button.addEventListener('click', function(){\n                    copyText(button.getAttribute('data-copy'));\n                });\n            });\n\n            form.addEventListener('submit', function(e){\n                e.preventDefault();\n                sendPrompt(collectPayload());\n            });\n\n            resendBtn.addEventListener('click', function(){\n                if (!lastPayload) {\n                    setMessage('There is no prompt to resend yet.', true);\n                    return;\n                }\n                sendPrompt(lastPayload);\n            });\n\n            startNewBtn.addEventListener('click', function(){\n                form.reset();\n                lastPayload = null;\n                resultBox.hidden = true;\n                startNewBtn.hidden = true;\n                resendBtn.hidden = true;\n                setMessage('', false);\n                form.querySelector('[name=\"idea\"]').focus();\n            });\n        })();\n        <\/script>\n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_joinchat":[],"footnotes":""},"class_list":["post-29222","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/mosaicconnect.io\/en\/wp-json\/wp\/v2\/pages\/29222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mosaicconnect.io\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mosaicconnect.io\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mosaicconnect.io\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mosaicconnect.io\/en\/wp-json\/wp\/v2\/comments?post=29222"}],"version-history":[{"count":4,"href":"https:\/\/mosaicconnect.io\/en\/wp-json\/wp\/v2\/pages\/29222\/revisions"}],"predecessor-version":[{"id":29226,"href":"https:\/\/mosaicconnect.io\/en\/wp-json\/wp\/v2\/pages\/29222\/revisions\/29226"}],"wp:attachment":[{"href":"https:\/\/mosaicconnect.io\/en\/wp-json\/wp\/v2\/media?parent=29222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}