Get Started

Build Smart Chatbots for Your Business

We create custom chat assistants that talk to your customers so you don’t have to.

Get Started

Why Your Business Needs a Chatbot

How It Works

  1. We learn about your business
  2. We build your custom chatbot
  3. You add it to your website — it’s easy
  4. Customers start chatting with it immediately

Let’s Build Your Bot

Tell us about your business — and we’ll take care of the rest.

Contact Us
(function(){ // Avoid double-inserting if (window.__onbordAgentInjected) return; window.__onbordAgentInjected = true; // 1) Inject CSS var css = ` :root{ --ob-primary:#172d55; --ob-primary-soft:rgba(23,45,85,.10); --ob-border:rgba(0,0,0,.10); --ob-muted:#64748b; --ob-bg:#f8fafc; } .ob-wrap{max-width:880px;margin:18px auto;border:1px solid var(--ob-border);border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.06);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;} .ob-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:linear-gradient(180deg,var(--ob-primary),#0f2140);color:#fff;} .ob-brand{display:flex;gap:12px;align-items:center;} .ob-logo{width:40px;height:40px;border-radius:10px;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;font-weight:800;letter-spacing:.5px;} .ob-title{font-weight:800;font-size:16px;line-height:1.1;} .ob-subtitle{font-size:12px;opacity:.85;margin-top:2px;} .ob-pill{font-size:12px;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14);} .ob-body{padding:16px;background:var(--ob-bg);} .ob-chat{height:420px;overflow:auto;background:#fff;border:1px solid var(--ob-border);border-radius:12px;padding:14px;} .ob-row{display:flex;gap:10px;margin:10px 0;align-items:flex-end;} .ob-row.user{justify-content:flex-end;} .ob-row.agent{justify-content:flex-start;} .ob-bubble{max-width:78%;padding:10px 12px;border-radius:14px;border:1px solid var(--ob-border);line-height:1.35;font-size:14px;background:#fff;color:#0f172a;} .ob-row.user .ob-bubble{background:var(--ob-primary);color:#fff;border-top-right-radius:6px;} .ob-row.agent .ob-bubble{border-top-left-radius:6px;} .ob-meta{font-size:11px;opacity:.7;margin-top:6px;} .ob-card{margin-top:10px;border:1px solid var(--ob-border);border-radius:12px;overflow:hidden;background:#fff;} .ob-card-h{padding:10px 12px;background:var(--ob-primary-soft);border-bottom:1px solid var(--ob-border);font-weight:800;font-size:13px;color:var(--ob-primary);} .ob-card-b{padding:12px;} .ob-kv{display:grid;grid-template-columns:160px 1fr;gap:8px 12px;font-size:13px;} .ob-kv div:nth-child(odd){color:var(--ob-muted);} .ob-divider{height:1px;background:var(--ob-border);margin:12px 0;} .ob-steps{margin-top:10px;padding-left:16px;font-size:13px;} .ob-steps li{margin:4px 0;} .ob-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;} .ob-field label{display:block;font-size:12px;color:var(--ob-muted);margin-bottom:4px;} .ob-field input{width:100%;padding:10px;border-radius:10px;border:1px solid rgba(0,0,0,.15);background:#fff;font-size:14px;} .ob-field input:focus{outline:none;border-color:var(--ob-primary);box-shadow:0 0 0 2px var(--ob-primary-soft);} .ob-actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap;} .ob-btn{border:none;background:var(--ob-primary);color:#fff;padding:10px 14px;border-radius:12px;cursor:pointer;font-weight:800;font-size:14px;} .ob-btn.secondary{background:#e2e8f0;color:#0f172a;} .ob-btn:disabled{opacity:.55;cursor:not-allowed;} .ob-inputbar{display:flex;gap:10px;margin-top:12px;} .ob-input{flex:1;padding:12px;border-radius:12px;border:1px solid rgba(0,0,0,.15);font-size:14px;} .ob-input:focus{outline:none;border-color:var(--ob-primary);box-shadow:0 0 0 2px var(--ob-primary-soft);} .ob-hints{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;} .ob-chip{border:1px solid rgba(0,0,0,.10);background:#fff;padding:8px 12px;border-radius:999px;cursor:pointer;font-size:12px;color:var(--ob-primary);} .ob-chip:hover{background:var(--ob-primary-soft);border-color:var(--ob-primary);} @media (max-width:680px){.ob-kv{grid-template-columns:1fr;}.ob-form{grid-template-columns:1fr;}.ob-bubble{max-width:92%;}.ob-chat{height:520px;}} `; var styleEl = document.createElement("style"); styleEl.setAttribute("data-onbord-agent","1"); styleEl.appendChild(document.createTextNode(css)); document.head.appendChild(styleEl); // 2) Inject HTML into footer area (or body end) function mount(){ if (document.getElementById("onbord-agent-demo")) return; var wrap = document.createElement("div"); wrap.id = "onbord-agent-demo"; wrap.innerHTML = `
OnBord AI
Instant Onboarding Launcher
Preview required
`; document.body.appendChild(wrap); // 3) Bot logic (same behavior as before, simplified) var chatEl = document.getElementById("ob-chat"); var inputEl = document.getElementById("ob-input"); var sendBtn = document.getElementById("ob-send"); var chips = document.querySelectorAll(".ob-chip"); function esc(s){ return (s || "").replace(/[&<>"']/g, function(c){ return {"&":"&","<":"<",">":">",'"':""","'":"'"}[c]; }); } function nowTime(){ var d = new Date(); return d.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }); } function addMsg(role, html){ var row = document.createElement("div"); row.className = "ob-row " + role; var bubble = document.createElement("div"); bubble.className = "ob-bubble"; bubble.innerHTML = html; row.appendChild(bubble); chatEl.appendChild(row); chatEl.scrollTop = chatEl.scrollHeight; } function addAgentText(text){ addMsg("agent", "
"+esc(text)+"
"+nowTime()+"
"); } function addUserText(text){ addMsg("user", "
"+esc(text)+"
"+nowTime()+"
"); } function parseCommand(text){ var t = (text||"").toLowerCase(); var wantsSend = t.indexOf("send")>=0 && t.indexOf("onboarding")>=0; var toMatch = text.match(/to\s+(.+?)(?:\s+for|\s*\.|$)/i); var raw = toMatch ? (toMatch[1]||"").trim() : ""; var recipients = raw ? raw.split(/\s+and\s+|,/i).map(function(s){return s.trim();}).filter(Boolean) : []; var delivery = (t.indexOf("text")>=0) ? "sms" : "email"; var joint = t.indexOf("joint")>=0; var hasIra = t.indexOf("ira")>=0; var rollover = t.indexOf("rollover")>=0; var accountTypes = []; if(joint) accountTypes.push("Joint Brokerage"); if(hasIra) accountTypes.push(rollover ? "Rollover IRA" : "IRA"); if(!accountTypes.length && wantsSend) accountTypes = ["Client Profile"]; return { wantsSend:wantsSend, recipients:recipients, delivery:delivery, accountTypes:accountTypes }; } function renderPlan(plan){ var recipientsLabel = plan.recipients.join(" & "); addMsg("agent","
Got it — I’ll prepare that onboarding. Review below, then confirm.
"+nowTime()+"
"); var cardHtml = "
"+ "
Here’s the plan
"+ "
"+ "
"+ "
Clients
"+esc(recipientsLabel)+"
"+ "
Account Types
"+esc(plan.accountTypes.join(" + "))+"
"+ "
Delivery
"+(plan.delivery==="sms"?"SMS":"Email")+" (Send to clients)
"+ "
Approval
Required before sending
"+ "
"+ "
"+ "
Quick question
"+ (plan.delivery==="sms" ? "
" : "
" )+ "
"+ ""+ "
"; addMsg("agent", cardHtml); var previewBtn = document.getElementById("ob-preview"); previewBtn.addEventListener("click", function(){ var ok = true; var deliveryLine = ""; if(plan.delivery==="sms"){ var p = (document.getElementById("ob-phone-1").value||"").trim(); if(!p) ok=false; deliveryLine = "SMS to "+esc(p); } else { var e1=(document.getElementById("ob-email-1").value||"").trim(); var e2=(document.getElementById("ob-email-2").value||"").trim(); if(!e1) ok=false; if(plan.recipients.length>1 && !e2) ok=false; deliveryLine = "Email to "+esc([e1,e2].filter(Boolean).join(", ")); } if(!ok){ addAgentText("Please fill in the required contact info so I can generate the preview."); return; } var area = document.getElementById("ob-preview-area"); area.style.display="block"; area.innerHTML = "
" + "
Preview
" + "
To: "+esc(recipientsLabel)+"
" + "
Flow: "+esc(plan.accountTypes.join(" + "))+"
" + "
Delivery: "+deliveryLine+"
" + "
" + "
"; document.getElementById("ob-confirm").addEventListener("click", function(){ addAgentText("✅ Sent. Onboarding created and logged. (Demo)"); }); }); } function handleSend(){ var cmd = (inputEl.value||"").trim(); if(!cmd) return; addUserText(cmd); var plan = parseCommand(cmd); if(!plan.wantsSend){ addAgentText('Try: "Send onboarding to Mark and Lisa for joint account + rollover IRA. Email them."'); return; } if(!plan.recipients.length){ addAgentText("Who should I send this to? (Example: Mark and Lisa)"); return; } renderPlan(plan); inputEl.value=""; } addAgentText("Tell me what you want to do — I’ll build the plan, collect missing info, and send after you confirm."); sendBtn.addEventListener("click", handleSend); inputEl.addEventListener("keydown", function(e){ if(e.key==="Enter"){ e.preventDefault(); handleSend(); } }); for(var i=0;i /* */