// FAQ, CTA (Formspree), Footer function FAQ() { const items = [ ["I'm not techy. Do I need to manage this?","No. We host it, we run it, we fix it. The automation lives on our infrastructure — you get the outputs (quotes in your CRM, SMS replies, booked jobs) without ever touching a dashboard. Your monthly retainer covers full support, monitoring and ongoing tweaks."], ['What CRMs and tools do you work with?','The trade favourites — SimPro, ServiceM8, Tradify, AroFlo, Fergus, Ascora — plus HubSpot, Pipedrive, Xero, MYOB, Jobber and plenty more. If it has an API or webhook, we can talk to it. If you\'re on SimPro, we\'ve done the whole end-to-end already.'], ['How much does it cost?','Most builds land between $2,000 and $10,000 AUD depending on scope. A missed-call text-back is cheap and fast; a full quoting + CRM integration is the upper end. After build you\'re on a monthly retainer covering hosting, monitoring, support and ongoing changes. The audit is free and you walk away with a fixed-price proposal.'], ['How long does it take?','Two to four weeks from signed proposal to live automation, for most jobs. We roll flows out one at a time so nothing goes dark on you mid-season.'], ['I\'m outside Cairns — does that matter?','Not even slightly. We\'re Cairns-based but work with trades Australia-wide. Everything happens over Zoom and Loom. Happy to do an in-person audit if you\'re in FNQ.'], ['Will this replace my office staff?','No — it lets them do the work they were hired for. Automation handles the repetitive bits (chasing, qualifying, building quotes). Your admin still approves quotes, talks to customers, handles the judgement calls.'] ]; const [open, setOpen] = React.useState(0); return (
FAQ

Straight answers, no fluff.

{items.map(([q, a], i) => (
{a}
))}
); } // --- Web3Forms contact form --- const WEB3FORMS_KEY = "de2bcc7a-2529-4a85-97b2-63555105b399"; const WEB3FORMS_ENDPOINT = "https://api.web3forms.com/submit"; function CTA() { const [state, setState] = React.useState('idle'); // idle | sending | success | error const [error, setError] = React.useState(''); const [ticketId] = React.useState(() => `NX-${Math.floor(10000 + Math.random() * 89999)}`); async function onSubmit(e) { e.preventDefault(); const form = e.currentTarget; if (form.website.value) return; // honeypot setState('sending'); setError(''); const data = new FormData(form); data.append('access_key', WEB3FORMS_KEY); data.append('subject', 'New audit request — northedgeautomations.com'); data.append('from_name', 'NorthEdge Automations website'); try { const res = await fetch(WEB3FORMS_ENDPOINT, { method: 'POST', body: data, headers: { 'Accept': 'application/json' } }); const json = await res.json().catch(() => ({})); if (res.ok && json.success) { setState('success'); } else { setError(json.message || "Couldn't send — please try again or call Jarrah directly."); setState('error'); } } catch (err) { setError("Couldn't reach the server. Check your connection and try again."); setState('error'); } } return (
Book a free audit

Let's find where the leaks are.

45 minutes. No pitch deck. You'll walk away with a one-page map of where leads go, where time goes, and the two automations that would pay for themselves the fastest.

Call 0499 885 854 Or fill the form ↓
45min
Audit call. Straight to the leaks. No slide deck, no tyre-kicking.
$0
Cost of the audit. You walk away with the map even if we don't build.
{state === 'success' ? (

Booked by smoko.

We've got your details. Jarrah will text you back within the hour — no pitch deck, just a 45-min call and a map of where the leaks are.

Ticket · {ticketId} · {new Date().toLocaleString('en-AU', { hour: 'numeric', minute: '2-digit', hour12: true })}
) : (

Drop your details — we'll call back

Takes 30 seconds. We'll only use these to get hold of you for the audit.
{state === 'error' &&
{error}
}