Fenixflo

SOLUTIONS

SAVE TIME. CUT COSTS. GROW SMARTER.

AT FENIXFLO SOLUTIONS, WE BUILD SMART SYSTEMS THAT HANDLE THE BORING, REPETITIVE STUFF - SO YOU AND YOUR TEAM CAN FOCUS ON GROWTH.

TRUSTED BY BUSINESSES WORLDWIDE

FROM DENTAL CLINICS IN LONDON TO REAL ESTATE FIRMS IN NEW YORK, OUR AUTOMATIONS FREE UP 100+ HOURS PER MONTH AND CUT ADMIN COSTS BY UP TO 40%.

FULL PROVEN SYSTEMS THAT HELP YOUR BUSINESS GROW - WHILE SAVING YOU LOTS OF TIME AND MONEY.
THESE INCLUDE:

  • 24/7 RECEPTION AND BOOKING AGENTS

  • SMART CHAT AND VOICE ASSISTANTS

  • AUTOMATED EMAILS, TEXTS AND REMINDERS

  • LEAD GENERATION AND FOLLOW UP SYSTEMS

  • CUSTOM BUSINESS WORKFLOWS

AND MUCH MUCH MORE.......

never miss a client again, message us and lets build smarter.


get the free demo today!

``` **Branding:** Change `data-primary` and `data-accent` to match your turquoise/purple palette. **API endpoint:** By default the widget posts to `/api/chat` on your domain. Implement it using one of the backends below. --- ## 2) Minimal Backend (Node.js / Express) > Deploy to Render, Railway, Fly.io, Vercel (Node server), or your VPS. ```js // server.js import express from 'express'; import cors from 'cors'; import bodyParser from 'body-parser'; import fetch from 'node-fetch'; const app = express(); app.use(cors()); app.use(bodyParser.json()); // ENV: OPENAI_API_KEY, COMPANY_NAME (optional) const OPENAI_API_KEY = process.env.OPENAI_API_KEY; const SYSTEM_PROMPT = `You are Fenix, a white‑label AI for an automation agency. Keep answers concise, practical, and tailored to SMBs (dentists, salons, plumbers, estate agents). Always offer to book a demo if appropriate (return JSON with intent:'book' when user asks to book). Collect name + email if missing before discussing detailed pricing. Pricing guidance (adjust as needed): setup £299–£1,499 + £149–£699/month retainers. If user asks tech stack, mention voice agents, LLMs, telephony, CRMs, calendar integration. `; app.post('/api/chat', async (req,res) => { try{ const { message, lead, meta } = req.body || {}; // Handle lead capture passthrough (store it wherever you like) if(lead){ console.log('Lead:', lead, meta); // TODO: insert into your DB / send to HubSpot / email, etc. return res.json({ ok:true }); } // Guard if(!message) return res.status(400).json({ error:'missing message' }); // Call OpenAI (Responses API) const completion = await fetch('https://api.openai.com/v1/chat/completions',{ method:'POST', headers:{'Authorization':`Bearer ${OPENAI_API_KEY}`,'Content-Type':'application/json'}, body: JSON.stringify({ model: 'gpt-4o-mini', temperature: 0.4, response_format: { type:'json_object' }, messages:[ {role:'system', content: SYSTEM_PROMPT}, {role:'user', content: message} ] }) }); const data = await completion.json(); if(data.error) return res.status(500).json({ error:data.error.message||'llm error' }); // Expect a JSON object reply; if not, default wrap let parsed = {}; try{ parsed = JSON.parse(data.choices?.[0]?.message?.content || '{}'); }catch(e){ parsed = { reply: data.choices?.[0]?.message?.content } } // Ensure fields const payload = { reply: parsed.reply || parsed.text || '👍', intent: parsed.intent || null, lead: parsed.lead || false }; return res.json(payload); }catch(err){ console.error(err); res.status(500).json({ error:'server error' }); } }); app.listen(process.env.PORT || 3000, ()=>{ console.log('FenixFlo API running'); }); ``` **Make the model return JSON:** Add this example for the assistant to follow: ```json { "reply": "We install AI receptionists that answer calls, qualify leads, and book appointments. Want me to schedule a demo?", "intent": "book", "lead": true } ``` --- ## 3) Alternative Backend (Python / FastAPI) ```python # app.py import os from fastapi import FastAPI, Request from fastapi.middleware.cors import CORSMiddleware import httpx OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") SYSTEM_PROMPT = ( "You are Fenix, a white‑label AI for an automation agency. " "Concise, practical, and proactive. Offer demos when relevant (intent:'book'). " "Collect name+email if missing before pricing details." ) app = FastAPI() app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) @app.post("/api/chat") async def chat(req: Request): body = await req.json() lead = body.get("lead") if lead: # TODO: store lead return {"ok": True} message = body.get("message") if not message: return {"error": "missing message"} async with httpx.AsyncClient() as client: r = await client.post( "https://api.openai.com/v1/chat/completions", headers={"Authorization": f"Bearer {OPENAI_API_KEY}", "Content-Type": "application/json"}, json={ "model": "gpt-4o-mini", "temperature": 0.4, "response_format": {"type": "json_object"}, "messages": [ {"role": "system", "content": SYSTEM_PROMPT}, {"role": "user", "content": message}, ], }, ) data = r.json() if "error" in data: return {"error": data["error"]["message"]} try: content = data["choices"][0]["message"]["content"] parsed = { "reply": None, "intent": None, "lead": False, } import json as _json parsed.update(_json.loads(content)) except Exception: parsed = {"reply": content} return parsed ``` Run locally: ```bash uvicorn app:app --port 3000 --reload ``` --- ## 4) Suggested System Prompt (drop into your backend) ```text You are **Fenix**, a white‑label AI assistant for an automation agency. Tone: direct, friendly, consultative. Goals: 1) Qualify the visitor (business type, size, location, budget, phone/email). 2) Explain services in the visitor’s words (chat/voice agents, call handling, appointment booking, CRM + calendar integrations, follow‑ups, payment links, WhatsApp flows). 3) Offer pricing guidance and ROI examples. (Default: setup £299–£1,499; £149–£699/mo.) 4) Propose the next step: *book a demo* (return JSON intent:'book') or *collect lead* (lead:true). **Return JSON** with keys: reply (string), intent (optional: 'book'), lead (boolean). ``` --- ## 5) Optional: Webhook targets for leads * **Email:** Use your server to send via SMTP (e.g., Postmark/SES). * **CRMs:** HubSpot, Pipedrive, Airtable — create records on `/api/chat` when `lead` is posted. * **Calendars:** If user says “Friday 10am”, respond with booking link (`data-book-url`) or integrate Cal.com API for direct scheduling. --- ## 6) GDPR / Privacy Notes * The widget displays consent text and Privacy Policy link. Update `data-privacy-url`. * Store only essential fields (name, email, message, timestamps). * Add DSR route on your server to delete/export user data on request. --- ## 7) Theming & White‑label * No logos, no external CDNs, no vendor mentions. * Control colors via `data-primary` & `data-accent`. * Change title/subtitle to any brand (your resellers will inherit a white‑label look). --- ## 8) Quick QA Checklist * [ ] Chat opens/closes, keyboard Enter works * [ ] Offline hours show lead capture * [ ] `/api/chat` returns JSON `{ reply, intent?, lead? }` * [ ] Booking button opens your scheduler