Deploy Your AI Agent to Any Channel: WhatsApp, Instagram, Website, Telegram & Voice

Step 1 of 6
You're here
123456

Deploy Your AI Agent to Any Channel — WhatsApp, Instagram, Website, Telegram & Voice

Hello, and thank you for your purchase. If you’re here, this is likely the first AI agent you’ve bought from me, and you broadly fall into one of two categories. Either you have a service business in the real, physical world, or you’re looking to provide agents as a service to real physical businesses. Either way the process is very similar, and this guide is written to enable both. By the end of it you’ll have a working AI agent live on the channels your customers actually use. We’ll cover the login, the dashboard, the core concepts, testing, and then deployment to WhatsApp, Instagram, your website, Telegram and voice. Plan for a focused session. Most people get the foundation live in well under two hours.


About your SBOS credits. Second Brain OS runs pay-as-you-go. There is no monthly billing and your credits do not expire. Whatever you receive with your purchase stays with you, and you can top up at any time from your dashboard by clicking Add Credits.


Who this guide is for

Service business owner. You run a salon, law firm, dental practice, cleaning company, or any business where customers enquire and book. You want your agent answering on WhatsApp and your website as fast as possible. Builder or agency. You’re setting agents up for other businesses. Everything below applies, with one addition: your clients each have their own separate Second Brain OS account. They generate a magic link and forward it to you by email, and you log in to configure things on their behalf. That’s deliberate. It protects them and it protects you.


Where this guide sits in the bigger picture

This guide is the foundation. It gets one agent live across the channels your customers already use. Everything after it is optional depth, and you can take it in whatever order suits your business.

Guide What you get out of it
You are here Deploy to your channels Your agent live and answering on WhatsApp, Instagram, your website, Telegram and voice
Next Let Claude Code train your agent → An operator agent that writes your prompt, wires up tools and tests the results for you
Most popular upgrade Appointment booking with Calendly → The same agent, now checking real availability and booking into your calendar
Deep dive Voice agents → Humanising your voice agent and connecting tools over MCP
Deep dive Your website → The full premium website template, built around your agent
For builders Claude Desktop → · ChatGPT → · CLI → Working with your own agent as an operator, rather than deploying it to customers

The most common path is this guide, then Calendly. Most people want the agent they’ve already configured across four channels to start taking bookings, and that’s the natural next step.


Logging in

Head to secondbrainos.com and click login. Logins are passwordless. You enter your email and Second Brain OS sends you a magic link. Click the link in your inbox and you land in the dashboard. If you’re servicing clients, this is the mechanism to use. Your client generates the link on their account, forwards you the email, and you log in from there. They keep ownership, you get access.


The dashboard and the core concepts

The dashboard is the heart of the whole thing, so before we click anything let’s cover the five concepts that govern how your agent behaves. These apply identically on every channel.

System prompt

Second Brain OS dashboard system prompt and model panel This tells the agent who it is, what company it represents, what you sell, how to behave, and how to handle leads and customers. It can be long or short. In the early days keep it long, then reduce it as you refine. Generally you want your company details, brand name, website, your own name, contact information if you’re happy to give it out, the process for booking with you, and your service or product details.

AI model

The model is what powers every modern AI tool, from ChatGPT to Claude. At present Second Brain OS supports OpenAI’s GPT series, with other providers planned. You’ll always have the latest models available, and picking the newest one is a reasonable default.

Skills

A skill sits alongside the system prompt and handles scenario-specific situations. If you’re a brokerage, lenders, borrowers and equipment sellers all need handling differently. If you’re a law firm, family cases and business disputes are different conversations. Skills let the agent load a shorter core system prompt and reach for the right procedure when a given situation arises.

Knowledge

Knowledge extends the system prompt with material the agent searches on demand: policies, refund and cancellation rules, company history, or the full text of a book you’ve written. The distinction that trips people up: a skill is a best practice, a way of handling a situation. Knowledge is reference material. Follow this order — try to put it in the system prompt first, and if it doesn’t belong there or the prompt is getting unwieldy, move it into knowledge. If you’re an author with several books, the books go in knowledge, your details as an author go in the system prompt, and a skill helps the agent decide which book to recommend to which kind of reader.

Tools

Second Brain OS dashboard Skills, Actions, and agent config log panel Tools are what give the agent agency — the ability to do something rather than just talk about it. Checking calendar availability, booking a meeting, sending data to a spreadsheet. Depending on what you purchased you may or may not have tools and skills available yet. If you don’t, leave both empty for now. Everything below still works.

Thinking and verbosity

Thinking is how hard the agent reasons before replying. A financial advisory giving advice might want this high. A cleaning service explaining what it cleans does not — set it to none. Verbosity is how long the replies are. For customer-facing agents I almost always recommend low. Medium or high only when the conversation genuinely warrants it, like tax or financial advice. Set both to the lowest values, save, and you’ll see a diagram appear showing your agent under the hood: the model, its memory, its knowledge and its tools. A note on memory. Memory is conversation history, and it’s specific to each person your agent talks to. If I message your agent that’s one memory. If your sister messages it, that’s a separate one. Knowledge, by contrast, stays constant no matter who’s talking or which channel they’re on.


Testing, and the two errors everyone hits

Before deploying anywhere, test in the dashboard. I’m going to walk you into two errors on purpose, because you will almost certainly meet both.

Error 1: no OpenAI API key configured

OpenAI Create new secret key dialog Say hello in the test panel and you’ll see user has no OpenAI API key configured. Your agent is powered by an AI model, and to use that model you need an OpenAI API key. Here’s how to get one:

  1. Go to platform.openai.com and sign up. I recommend signing in with Google to keep your accounts consolidated
  2. Go to API keysCreate new secret key. Name it something like “Second Brain OS”
  3. Copy the key, return to your Second Brain OS profile, paste it into the OpenAI API key field and save

Saving takes a few seconds. That’s deliberate — sensitive credentials are encrypted properly rather than quickly.

Error 2: no credits on the key

OpenAI incorrect API key error shown in Second Brain OS test panel Test again and you’ll get a different error: you have no credits remaining. The key is created with a zero balance and fails silently without funds. In the OpenAI dashboard go to Organization → Organization settings → Billing and add credit. Five to ten dollars is plenty to start; in your early days you’ll barely touch it. The minimum is $5 and the maximum is capped at $100 until your account matures. Add the funds, refresh the chat, and your agent will respond properly. One more worth knowing: if you paste a malformed key you’ll get incorrect API key provided. Generate a fresh one and replace it. It’s almost always a copy-paste error.


Understanding your costs

OpenAI billing overview showing zero credit balance Second Brain OS uses credit-based billing, which gives you full transparency on what your AI actually costs. There are two separate costs, and keeping them separate is the point:

  • The AI model cost — what OpenAI charges you, billed to your own OpenAI account
  • The Second Brain OS cost — two credits (about two US cents) for a standard text message, and typically one credit for profile actions like updating your agent

Failed calls are not billed. When the earlier errors occurred, credits stayed at their starting balance. You’ll see the failed request in your logs with no deduction against it. In the dashboard you can see your credits, your logs, every tool call that’s been made, and — importantly — your estimated cost per lead. That figure combines the model cost and the Second Brain OS cost, so you don’t have to calculate it yourself. It’s the number that tells you what it actually costs your business to handle an enquiry end to end. You’ll also see response times and token usage. Input tokens will almost always exceed output tokens in customer-facing use, because every message carries your system prompt along with it. A rough rule is four tokens to a word. You can cross-check the model side against Organization settings → Usage in your OpenAI dashboard, where a small discrepancy is normal.


Before you deploy: Meta setup

Meta Business Manager Select business screen Three of your channels (WhatsApp, Instagram and Telegram) run through the Second Brain OS CRM. WhatsApp and Instagram also need a Meta Business account first. You need a personal Facebook or Instagram account to create one, and the older the account the better — Meta is strict about new accounts creating Business accounts. Head to business.facebook.com and sign in. ⚠ The single most important setup rule. Log into Instagram, Meta Business and Second Brain OS in the same browser, in the same window. Do not spread them across three browsers. Almost every “it won’t connect” problem traces back to this, and it’s completely avoidable.


Channel 1: Instagram

Connect your Instagram Profile screen in Chatwoot CRM

From your agent settings, click Deploy. The Second Brain OS CRM opens in a new tab, and from here every channel follows the same shape.

  1. Go to Settings → Inboxes → Add Inbox
  2. Choose Instagram and click Continue with Instagram
  3. Press Allow
  4. Select yourself as the human agent who handles conversations when the AI is unavailable or when you take over deliberately
  5. Go to More settings → Bot configuration and confirm Second Brain OS is selected. If it isn’t, select it and press update

That’s it. From this point, whenever someone messages you on Instagram, the exact agent you configured and tested is the one that responds. No monthly CRM subscription, and it works out of the box. Your Instagram agent handles text, voice notes and images. Send it a photo mid-conversation and it will read it and respond in context. The first voice note takes a little longer to process; subsequent ones are faster. Instagram is a revocable permission, so it’s safe to connect an account you already use. That is not true of WhatsApp, which is next.


Channel 2: WhatsApp

WhatsApp Select your API provider screen: WhatsApp Cloud vs Twilio

https://youtu.be/TYm8z-yW3CQ

⚠ Read this before you click anything. The number you connect must not already be in use on WhatsApp — not on the normal app, not on WhatsApp Business. Connecting a number migrates it to the WhatsApp Business Platform and it stops working in the regular app. This is not a settings toggle you can flip back. Use a fresh SIM, or a number that has never been on WhatsApp. If the number is already on the WhatsApp Business app, delete that account from within the app (Settings → delete account) before you begin. Also worth stating plainly: no Bird, no Respond.io. WhatsApp is native to Second Brain OS now. If you’ve been waiting on an alternative, it already shipped.

Connecting

Quick setup with Meta screen for connecting WhatsApp Business

  1. Settings → Inboxes → Add Inbox → WhatsApp → WhatsApp Cloud
  2. Click Connect to WhatsApp Business. A popup opens — make sure you’re logged into Meta Business or this will fail
  3. Press continue and select the Meta Business account you’re working with
  4. Choose Create a WhatsApp Business account. Do not select “connect an existing WhatsApp business app”
  5. Enter your business name, then add a new number and verify it
  6. Click confirm and wait. This step takes at least a minute and a half — be patient

Two steps people miss

Meta event sharing. You’ll be asked whether Meta can automatically identify and share order and event data via the Cloud API. Leave these ticked. If you ever run Click-to-WhatsApp ads — and you probably will — Meta needs these events to understand that someone messaged you and what they did next. This is what drives your ad costs down over time. Payment method. Without a card on file, WhatsApp will not let you send messages through the Business Platform. Select your currency and region, enter your card details, and confirm you’re purchasing for business purposes. The good news on cost: if someone reaches you by clicking a Click-to-WhatsApp ad and messages you, Meta charges you nothing. The card is policy, not a meaningful expense. Charges only become material if you run large broadcast campaigns.

After connecting

Chatwoot inbox settings confirming reopen conversation and bot configuration Go into the inbox settings and confirm two things, exactly as with Instagram:

  • Reopen same conversation is ticked (more on why below)
  • Bot configuration has Second Brain OS selected

Then send a test message. Your WhatsApp agent handles text, voice notes, images and location. Send it a photo as an image and as a file — both work, and the agent will tell you when an attachment isn’t relevant to the conversation.


Channel 3: Telegram

Telegram bot token input screen in Chatwoot CRM Telegram runs through the CRM exactly like WhatsApp and Instagram.

  1. Create your bot: open Telegram, message @BotFather, send /newbot and follow the prompts to name it. BotFather gives you a bot token
  2. In the CRM go to Settings → Inboxes → Add Inbox → Telegram
  3. Paste your BotFather token
  4. Select yourself as the human agent
  5. Confirm Reopen same conversation is ticked and Bot configuration has Second Brain OS selected

Same agent, same tools, same knowledge. Any tool set to public is available; anything private is not.


Channel 4: Your website

Your website has two quite different options, and they do genuinely different jobs. I recommend running both.

Chat widget Full-width chat
What it is A floating bubble in the corner The agent is the page section
Runs on The Second Brain OS CRM OpenAI ChatKit
Identity Collects an email Fully anonymous
Syncs to your CRM Yes No
Put it on Every page except the homepage Your homepage or hero section

Option A: the chat widget

Website widget setup screen with name, domain, color and welcome message fields

A small bubble in the corner, available while people browse. It’s set up in the CRM exactly like your other inboxes.

  1. In the CRM go to Settings → Inboxes → Add Inbox → Website
  2. Enter your website name and domain. I keep these the same for clarity
  3. Optionally add a welcome heading and tagline
  4. Click Create Inbox, assign yourself as the human agent, and copy the script
  5. Under More settings → Bot configuration, confirm Second Brain OS is selected
  6. Set your business name under home settings

Turn on the email collect box. When someone starts a conversation they’re prompted for an email, which means the conversation in your CRM has a real identity attached to it. Pair it with conversation continuity via email so a returning visitor picks up where they left off, provided they haven’t cleared their cookies.

⚠ Copy your script from crm.secondbrainos.com, not from this page. The snippet below is shown so you know what you’re looking at. It is not yours. Every website inbox has its own unique websiteToken, and that token is what connects the widget to your account and your conversations. If you copy the example below, messages from your website will not reach you. Go to your inbox in the CRM and copy the script it generates for you.

For reference, the script you’ll be given looks like this:

<script>
  window.chatwootSettings = {"position":"right","type":"standard","launcherTitle":""};
  (function(d,t) {
    var BASE_URL="https://crm.secondbrainos.com";
    var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
    g.src=BASE_URL+"/packs/js/sdk.js";
    g.async = true;
    s.parentNode.insertBefore(g,s);
    g.onload=function(){
      window.chatwootSDK.run({
        websiteToken: 'YOUR_OWN_TOKEN_GOES_HERE',
        baseUrl: BASE_URL
      })
    }
  })(document,"script");
</script>

Paste your version just before the closing </body> tag of your site. On a plain HTML site that’s the very bottom of the body. On WordPress, use a plugin like Code Snippets to inject it into the footer. Wix, Squarespace, Framer and the rest all have an equivalent, and any developer will recognise this instantly. You can adjust position to "left", and set a launcherTitle if you want text next to the bubble.

Option B: the full-width experience

OpenAI domain allowlist screen for ChatKit

Here the agent is the page — a full-width conversational interface, typically in your hero section, with streaming responses that feel like ChatGPT. This one runs on OpenAI’s ChatKit rather than the CRM. I strongly recommend it for coaches, consultants, law firms, architects, financial advisories, and anyone whose offering is information-heavy. Modern buyers would rather ask three questions than read four pages to find one answer.

⚠ The domain key is where almost everyone gets stuck. Your domain has to be entered as the plain root domain: example.com. Not www.example.com. Not https://example.com. Not example.com/. www.example.com and example.com are not the same domain as far as OpenAI is concerned, and a mismatch is the single most common reason the chat silently fails to load. The same domain and the same key must be entered in both places below. If they differ by even one character, nothing works and the error message will not tell you why.

Step 1: Get a domain key. Go to the OpenAI domain allowlist:

https://platform.openai.com/settings/organization/security/domain-allowlist

Make sure you’re logged into the same OpenAI account that holds your API key. Add your domain as the plain root domain, generate the key, and copy it. It looks like domain_pk_xxxxxxxx. Step 2: Register it in Second Brain OS. In your profile click Add domain, enter the same domain, paste the domain key and save. Saving takes a few seconds because the credential is encrypted properly. Both places must match exactly — the domain in OpenAI’s allowlist, and the domain in your Second Brain OS profile. Then the same key goes into your website code in Step 4. Step 3: Load the ChatKit library in your site’s <head>:

<script src="https://cdn.platform.openai.com/deployments/chatkit/chatkit.js" async></script>

Step 4: Add the component where you want it to appear in the body:

<openai-chatkit id="my-chat" style="width: 100%; max-width: 800px; height: 600px;"></openai-chatkit>

<script>
  const DOMAIN_KEY = 'domain_pk_your_key_here'; // Replace with your domain key
  const API_URL = 'https://openai.secondbrainos.com/chatkit';

  const customFetch = (url, options = {}) => {
    return fetch(url, {
      ...options,
      headers: {
        ...options.headers,
        'X-Domain-Key': DOMAIN_KEY,
      },
    });
  };

  function initChatKit() {
    const chatkit = document.getElementById('my-chat');
    if (chatkit && chatkit.setOptions) {
      chatkit.setOptions({
        api: { url: API_URL, domainKey: DOMAIN_KEY, fetch: customFetch },
        theme: { colorScheme: 'light' },
      });
    } else {
      setTimeout(initChatKit, 50);
    }
  }

  initChatKit();
</script>

Replace DOMAIN_KEY with the key from Step 1. Your API key never touches the browser — the domain key is public by design and only works from your registered domain. No website yet? You don’t need one to use this. The static HTML template is a single file you can deploy free to Vercel, Netlify, Render, Cloudflare Pages or GitHub Pages with one click. Set your domain key in index.html and you’re live. Styling it. Everything is themed through setOptions() — accent colour, light or dark, rounded or sharp corners, spacious or compact density, and your own font. You can also set a greeting and suggested starter prompts on the opening screen.

Which goes where

Full-width conversations do not sync back to the CRM. This is deliberate. Visitors chat anonymously without handing over an email, so there’s no identity to attach to the thread. The widget, which does collect an email, syncs normally. My recommendation from experience: put the full-width experience on your homepage, and the widget on every other page. Homepage visitors are often just poking around — let them talk anonymously and declare themselves when they’re ready. Someone deep in an article or a service page has genuine intent and will happily give an email to keep the conversation going. It also keeps your CRM clear of homepage noise.


Channel 5: Voice

ElevenLabs agent configuration screen with system prompt, first message, voice and LLM settings

Voice agents intimidate people more than they should. The setup is genuinely easy; the craft is in the tuning. Most voice agents you’ve spoken to run on ElevenLabs, which specialises in the speech-to-text and text-to-speech models that give an agent its voice. The thinking still comes from a large language model. The two work together.

  1. Sign up at elevenlabs.io, go to Agents and create a blank agent
  2. Pick a voice. Choose V3 Conversational ElevenLabs TTS model family picker showing V3 Conversational, Flash, and Multilingual with response times — marginally slower, noticeably more expressive and human. Filter for voices that work with V3 and audition a few. Look for one that breathes while it talks; it makes a real difference
  3. Enable expressive mode and add a touch of warmth, confidence, and natural sighing
  4. Choose your LLM. Response time is shown next to each model — pick one measured in milliseconds. A fast, reasonably capable model beats a slow, brilliant one on a phone call
  5. Set reasoning effort to none. Keep it there unless you’re running many tools
  6. Paste your system prompt from Second Brain OS
  7. Change the first message. Not “hello, how can I help you” — every AI opens that way. Something like “Hey, Umair from AnyCRM here, what’s up?” lands far better

Then place a test call directly from ElevenLabs. If you picked up the Humaniser prompt, swap it in as your system prompt and test again. The difference in warmth and natural pacing is substantial, and it’s the single highest-leverage change you can make to a voice agent. To take real calls, connect a phone number through Twilio. That’s the recommended path, particularly for US numbers and other developed markets, though other options exist for other countries.


Running the CRM day to day

Your channels are live. Now the mechanics of actually operating them — this is where most early confusion happens, and none of it is a bug.

Tick “reopen same conversation” on every channel

Chatwoot reopen same conversation toggle If a customer returns after a gap and this is unticked, they’re treated as a stranger with no history. Ticked, the conversation reopens with memory intact. The window varies by platform, so set it on every inbox you create.

“My conversations list is empty”

Chatwoot conversations list showing hidden conversations after fixing the status filter You’ll open All Conversations and see nothing, and assume something’s broken. It isn’t — the AI is handling everything, and the default filter only shows open conversations. Click filters, delete the second condition, set status → select all, untick open, and apply. Everything appears. Save the filter as “Second Brain OS” so you never have to do it again.

The four conversation states

Chatwoot conversation status dropdown showing Snooze and Mark as pending options This is the part worth internalising.

State Who responds When to use it
Pending The AI agent The default. Your agent is handling it
Open You, or a human on your team You’ve taken over. The AI is blocked from replying
Resolved Nobody, until they message again Case closed. If they write back it returns to pending and the AI resumes
Snoozed Nobody at all Time-wasters. Snooze indefinitely and they disappear from your inbox

To take over a conversation, mark it open — right-click it or open it directly. The AI immediately stops responding and the conversation appears in your own inbox as well, giving you a clean visual split between human-handled and AI-handled threads. You can also assign it to a specific team member. To hand it back, mark it pending. Resolved vs snoozed is worth getting right. Resolved means you’re done but they’re welcome back — if they message, the AI picks up again. Snoozed means nobody responds, ever, until you unsnooze. Use snooze for people wasting your time and your AI spend. Never snooze someone relevant; resolve them instead. If your agent has “stopped responding”, check this first. Nine times out of ten someone marked the conversation open.


What you have now

One agent, configured once, live on WhatsApp, Instagram, Telegram, your website and the phone. The same system prompt, the same knowledge, the same tools, everywhere. Full visibility on what each lead costs you, and a CRM where you or your team can step into any conversation at any moment. That’s a level of coverage that used to require a stack of subscriptions and a developer.

Where to go next

For builders and developers, the agent is also available in ChatGPT as a Custom GPT and over a raw HTTP endpoint.

This is part of a Crash Course on Second Brain OS AI Agents. Access all the Automations to deploy your AI agent to WhatsApp, Instagram, your website, Telegram & voice — you get the full masterclass when you purchase ANY AI Agent by clicking the button below
Author Verified
Umair Kamil
Ask me anything!