You're seeing a JSON response from your ConvertKit form because it returns data in JSON format by default. To mimic the Success/Error behavior of your old Mailchimp form in Webflow, you’ll need to intercept the form submission using custom JavaScript and control the success/error messaging manually.
https://api.convertkit.com/forms/YOUR_FORM_ID/subscriptions
.POST
.tag and add the following JavaScript (adapted for current Webflow standards):
<script> document.addEventListener('DOMContentLoaded', function () { const form = document.querySelector('form'); if (form) { form.addEventListener('submit', async function (e) { e.preventDefault(); const formData = new FormData(form); const data = new URLSearchParams(formData); try { const response = await fetch(form.action, { method: 'POST', body: data, headers: { 'Accept': 'application/json' } }); const result = await response.json(); if (response.ok) { // Replace with your Webflow success message handling document.querySelector('.w-form-done').style.display = 'block'; document.querySelector('.w-form-fail').style.display = 'none'; form.style.display = 'none'; } else { // Show error document.querySelector('.w-form-fail').style.display = 'block'; } } catch (error) { document.querySelector('.w-form-fail').style.display = 'block'; } }); } });</script>
.w-form-done
and .w-form-fail
classes to trigger their styling and behavior.name
attributes matching ConvertKit’s expected field IDs:email
and optionally first_name
To make ConvertKit forms in Webflow behave like your old Mailchimp forms, use a native Webflow form, override the default submission behavior with JavaScript, and manually display Webflow's success/error messages based on ConvertKit's JSON response.