const { useState: useStateCTA } = React;
const WEBHOOK_URL = 'https://backend.production.portal.amalaxis.ai/api/v1/crm/webhooks/generic/?source_id=50cdffa9-cd9a-4bc5-8425-4e4808cd0c68&secret=5365889d-3e5a-4b18-9622-3be2bdb7ea32';
function CTA() {
const isMobile = useMediaQuery('(max-width: 768px)');
const isNarrow = useMediaQuery('(max-width: 1024px)');
const [form, setForm] = useStateCTA({ name: '', email: '', phone: '', company: '', message: '' });
const [status, setStatus] = useStateCTA('idle');
const [errorMsg, setErrorMsg] = useStateCTA('');
const update = (field) => (e) => setForm((f) => ({ ...f, [field]: e.target.value }));
const handleSubmit = async (e) => {
e.preventDefault();
if (status === 'submitting') return;
if (!form.name.trim() || !form.email.trim() || !form.phone.trim()) {
setErrorMsg('Please fill in your name, email and phone.');
setStatus('error');
return;
}
setStatus('submitting');
setErrorMsg('');
const payload = {
name: form.name.trim(),
email: form.email.trim(),
phone: form.phone.trim(),
company: form.company.trim(),
message: form.message.trim(),
source: 'CallAxis Landing — Book Now',
submitted_at: new Date().toISOString(),
};
try {
const res = await fetch(WEBHOOK_URL, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload),
});
if (!res.ok) {
const text = await res.text().catch(() => '');
throw new Error(text || ('Request failed (' + res.status + ')'));
}
setStatus('success');
setForm({ name: '', email: '', phone: '', company: '', message: '' });
} catch (err) {
try {
await fetch(WEBHOOK_URL, {
method: 'POST',
mode: 'no-cors',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload),
});
setStatus('success');
setForm({ name: '', email: '', phone: '', company: '', message: '' });
} catch (err2) {
setErrorMsg((err && err.message) || 'Could not submit. Please try again.');
setStatus('error');
}
}
};
return (
Setup in 48 hours. Works on your existing number. Cancel anytime.
Your phone line,
powered by AI.