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 (
{Array.from({ length: 12 }).map((_, i) => { const row = Math.floor(i / 3); const col = i % 3; const x = 80 + col * 80; const y = 100 + row * 80; const labels = ['1','2','3','4','5','6','7','8','9','*','0','#']; return ( {labels[i]} ); })}
05 — GET STARTED

Your phone line, powered by AI.

Setup in 48 hours. Works on your existing number. Cancel anytime.

No long-term contracts
Live in 48 hours
Onboarding handled by us
); } function Check() { return ( ); } function BookForm({ form, update, status, errorMsg, onSubmit, isMobile }) { const submitting = status === 'submitting'; const success = status === 'success'; return (
Book Now
REPLY IN 24H
{status === 'error' && errorMsg && (
{errorMsg}
)} {status === 'success' && (
THANKS — A SPECIALIST WILL REACH OUT SHORTLY.
)}
By submitting, you agree to be contacted about CallAxis.
); } function Field({ label, ...props }) { return ( ); } function FieldArea({ label, ...props }) { return (