PageSourceSearch

https://app.chatotter.ai/pricing

html chatotter.ai collected 2026-10-05 13:36:44 UTC 395,493 bytes, 1 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="bg-background min-h-screen antialiased md:overscroll-y-none roboto_87f1a2bc-module__Rir4Aa__variable light"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=https%3A%2F%2Fd15l3i9lwgubhl.cloudfront.net%2Fchatotter%2Fchatotter-horizontal-light.png&amp;w=1080&amp;q=75 1x, /_next/image?url=https%3A%2F%2Fd15l3i9lwgubhl.cloudfront.net%2Fchatotter%2Fchatotter-horizontal-light.png&amp;w=1920&amp;q=75 2x"/><link rel="stylesheet" href="/_next/static/chunks/99114a3a19498e51.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/77083a6360c9fb32.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/849dc7065728f35f.js"/>
1<script src="/_next/static/chunks/d2f712262a65dece.js" async=""></script>
1<script src="/_next/static/chunks/549ebafb0c8583d5.js" async=""></script>
1<script src="/_next/static/chunks/31abc202cfd1a12a.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-2d0ddd9ff8232b12.js" async=""></script>
1<script src="/_next/static/chunks/b718e082d0163130.js" async=""></script>
1<script src="/_next/static/chunks/a3b3d605a9d78e19.js" async=""></script>
1<script src="/_next/static/chunks/84cf6dafb52081f7.js" async=""></script>
1<script src="/_next/static/chunks/4061e77236de545e.js" async=""></script>
1<script src="/_next/static/chunks/f99709cb2125ad1a.js" async=""></script>
1<script src="/_next/static/chunks/6723ed73b0a4abaa.js" async=""></script>
1<script src="/_next/static/chunks/2fc4ebd8e91ef75d.js" async=""></script>
1<script src="/_next/static/chunks/da7f358801095660.js" async=""></script>
1<script src="/_next/static/chunks/f64fd64132ef1c58.js" async=""></script>
1<script src="/_next/static/chunks/c92192745ab0fe2a.js" async=""></script>
1<script src="/_next/static/chunks/7ded42ad4d5aef27.js" async=""></script>
1<script src="/_next/static/chunks/30806729917be48a.js" async=""></script>
1<script src="/_next/static/chunks/7aadca67222380d2.js" async=""></script>
1<script src="/_next/static/chunks/06d36e9098247ac8.js" async=""></script>
1<script src="/_next/static/chunks/3aeeb66426a36fe4.js" async=""></script>
1<script src="/_next/static/chunks/0deed52ab03f02f9.js" async=""></script>
1<script src="/_next/static/chunks/29ec10aecf029f63.js" async=""></script>
1<script src="/_next/static/chunks/5a97de1c4b425084.js" async=""></script>
1<script src="/_next/static/chunks/00483f1215e5d1c8.js" async=""></script>
1<script src="/_next/static/chunks/cb34ebf66d3b2c14.js" async=""></script>
1<script src="/_next/static/chunks/04437015febf7145.js" async=""></script>
1<script src="/_next/static/chunks/12bcf5e78210c3a3.js" async=""></script>
1<script src="/_next/static/chunks/2fff49b61e5460c3.js" async=""></script>
1<script src="/_next/static/chunks/ee4cf50e8515470b.js" async=""></script>
1<script src="/_next/static/chunks/d5971ff071020297.js" async=""></script>
1<script src="/_next/static/chunks/a3bb0ecdc9474e31.js" async=""></script>
1<script src="/_next/static/chunks/b1f93fdceeb3cff2.js" async=""></script>
1<script src="/_next/static/chunks/6faedbb343035725.js" async=""></script>
1<title>Pricing — ChatOtter</title><meta name="description" content="The AI chatbot that physically can&#x27;t make things up about your business. Start free with a knowledge-base-grounded chatbot. Add multi-agent workflows and MCP tool integrations as you grow."/><meta name="application-name" content="ChatOtter AI"/><meta name="robots" content="index, follow"/><link rel="canonical" href="https://app.chatotter.ai/pricing"/><link rel="alternate" hrefLang="en" href="https://app.chatotter.ai/pricing"/><link rel="alternate" hrefLang="vi" href="https://app.chatotter.ai/vi/pricing"/><link rel="alternate" hrefLang="x-default" href="https://app.chatotter.ai/pricing"/><meta name="zalo-platform-site-verification" content="ClAL0_7w8oC3qfKcsUKxV5ELco6_uqvuDJ8p"/><meta property="og:title" content="ChatOtter — AI Agent Orchestration Platform"/><meta property="og:description" content="ChatOtter automates your outbound, inbound, and recruiting workflows with AI-powered agents. Connect your tools, deploy agents, and scale your operations."/><meta property="og:url" content="https://app.chatotter.ai"/><meta property="og:site_name" content="ChatOtter AI"/><meta property="og:image" content="https://app.chatotter.ai/api/og?title=ChatOtter%20%E2%80%94%20AI%20Agent%20Orchestration%20Platform&amp;description=ChatOtter%20automates%20your%20outbound%2C%20inbound%2C%20and%20recruiting%20workflows%20with%20AI-powered%20agents.%20Connect%20your%20tools%2C%20deploy%20agents%2C%20and%20scale%20your%20operations."/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="ChatOtter — AI Agent Orchestration Platform"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="ChatOtter — AI Agent Orchestration Platform"/><meta name="twitter:description" content="ChatOtter automates your outbound, inbound, and recruiting workflows with AI-powered agents. Connect your tools, deploy agents, and scale your operations."/><meta name="twitter:image" content="https://app.chatotter.ai/api/og?title=ChatOtter%20%E2%80%94%20AI%20Agent%20Orchestration%20Platform&amp;description=ChatOtter%20automates%20your%20outbound%2C%20inbound%2C%20and%20recruiting%20workflows%20with%20AI-powered%20agents.%20Connect%20your%20tools%2C%20deploy%20agents%2C%20and%20scale%20your%20operations."/><link rel="icon" href="/favicon.ico" sizes="any"/><link rel="icon" href="/images/favicon/favicon-16x16.png" sizes="16x16" type="image/png"/><link rel="icon" href="/images/favicon/favicon-32x32.png" sizes="32x32" type="image/png"/><link rel="icon" href="/images/favicon/android-chrome-192x192.png" sizes="192x192" type="image/png"/><link rel="icon" href="/images/favicon/android-chrome-512x512.png" sizes="512x512" type="image/png"/><link rel="apple-touch-icon" href="/images/favicon/apple-touch-icon.png"/><link rel="manifest" href="/images/favicon/site.webmanifest"/>
1<script>(self.__next_s=self.__next_s||[]).push([0,{"children":"window['__ENV'] = {\"NEXT_PUBLIC_AGENT_BUILDER_READY\":\"true\",\"NEXT_PUBLIC_ANALYTICS_READY\":\"false\",\"NEXT_PUBLIC_API_URL\":\"https://api.agentaxis.io\",\"NEXT_PUBLIC_BOOK_DEMO_URL\":\"https://calendly.com/henry-ag/discovery\",\"NEXT_PUBLIC_CAPTCHA_SITE_KEY\":\"0x4AAAAAADNSNBwfVS79ltYr\",\"NEXT_PUBLIC_COMING_SOON\":\"false\",\"NEXT_PUBLIC_COOKIEBOT_CBID\":\"36a6c7ba-02c1-49de-8fcf-72c6619d2b0c\",\"NEXT_PUBLIC_ENABLE_CUSTOM_ROLES\":\"true\",\"NEXT_PUBLIC_FACEBOOK_PIXEL_ID\":\"1481701683262338\",\"NEXT_PUBLIC_FB_OAUTH_ENABLED\":\"true\",\"NEXT_PUBLIC_GTM_ID\":\"GTM-MDK39KK3\",\"NEXT_PUBLIC_INSTAGRAM_ENABLED\":\"true\",\"NEXT_PUBLIC_LEGAL_ADDRESS\":\"Austin, TX, USA\",\"NEXT_PUBLIC_LEGAL_COMPANY_NAME\":\"AgentAxis Corp\",\"NEXT_PUBLIC_LINE_ENABLED\":\"true\",\"NEXT_PUBLIC_MESSENGER_ENABLED\":\"true\",\"NEXT_PUBLIC_META_APP_ID\":\"968570972626452\",\"NEXT_PUBLIC_META_WHATSAPP_CONFIG_ID\":\"1639673910579987\\n\",\"NEXT_PUBLIC_PREMIUM_READY\":\"true\",\"NEXT_PUBLIC_PRODUCT_NAME\":\"ChatOtter AI\",\"NEXT_PUBLIC_PRO_READY\":\"true\",\"NEXT_PUBLIC_SITE_URL\":\"https://app.chatotter.ai\",\"NEXT_PUBLIC_STRIPE_LIVE_MODE\":\"true\",\"NEXT_PUBLIC_STRIPE_PREMIUM_MONTHLY_PLAN_ID\":\"price_1TWtgtPilM08HSjvhUZImD1d\",\"NEXT_PUBLIC_STRIPE_PREMIUM_MONTHLY_PLAN_ID_LIVE\":\"price_1TbcnhBErVvW6epnVwAazafx\",\"NEXT_PUBLIC_STRIPE_PREMIUM_YEARLY_PLAN_ID\":\"price_1TbciNPilM08HSjvn5QhqWqt\",\"NEXT_PUBLIC_STRIPE_PREMIUM_YEARLY_PLAN_ID_LIVE\":\"price_1TbcnsBErVvW6epnedqNiRrQ\",\"NEXT_PUBLIC_STRIPE_PRO_MONTHLY_PLAN_ID\":\"price_1TbchtPilM08HSjviRbC8687\",\"NEXT_PUBLIC_STRIPE_PRO_MONTHLY_PLAN_ID_LIVE\":\"price_1TbcwKBErVvW6epnV4EC5B27\",\"NEXT_PUBLIC_STRIPE_PRO_YEARLY_PLAN_ID\":\"price_1Tbci2PilM08HSjvcFhUZ0Yc\",\"NEXT_PUBLIC_STRIPE_PRO_YEARLY_PLAN_ID_LIVE\":\"price_1TbcllBErVvW6epnPSCUY1TK\",\"NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY\":\"pk_test_51TEhxZPilM08HSjvm0ywtb0KchLmWGCYhZKn1Mpuj6e1f4ZsMMGUOWYNeTBqLyOTMtRb6IOyOYurnofWtjqJU3B2005Dzfh83W\",\"NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY_LIVE\":\"pk_live_51TEhxPBErVvW6epnmXVF9uyhZbRS2p0ptF34EJChFAzyUKkJ0svErWRg3xSbRbhbCcJ0xFN8fFg7ySnHGG13i8BE00hdp6qDa9\",\"NEXT_PUBLIC_STRIPE_STARTER_MONTHLY_PLAN_ID\":\"price_1Tbch8PilM08HSjvHdX5Nyr9\",\"NEXT_PUBLIC_STRIPE_STARTER_MONTHLY_PLAN_ID_LIVE\":\"price_1TcS4uBErVvW6epnclcFtTKr\",\"NEXT_PUBLIC_STRIPE_STARTER_YEARLY_PLAN_ID\":\"price_1TbchKPilM08HSjv7fXp3exY\",\"NEXT_PUBLIC_STRIPE_STARTER_YEARLY_PLAN_ID_LIVE\":\"price_1TbclQBErVvW6epn9JLAwGg4\",\"NEXT_PUBLIC_SUPPORT_EMAIL\":\"[email protected]\",\"NEXT_PUBLIC_TELEGRAM_ENABLED\":\"true\",\"NEXT_PUBLIC_WIDGET_CDN_URL\":\"https://cdn.chatotter.ai/v1\",\"NEXT_PUBLIC_ZALO_APP_ID\":\"2510014586229544322\",\"NEXT_PUBLIC_DEFAULT_LOCALE\":\"en\",\"NEXT_PUBLIC_DEFAULT_THEME_MODE\":\"light\",\"NEXT_PUBLIC_AUTH_PASSWORD\":\"true\",\"NEXT_PUBLIC_AUTH_MAGIC_LINK\":\"false\",\"NEXT_PUBLIC_AUTH_OAUTH_PROVIDERS\":\"google\",\"NEXT_PUBLIC_BILLING_PROVIDER\":\"stripe\",\"NEXT_PUBLIC_ENABLE_THEME_TOGGLE\":\"true\",\"NEXT_PUBLIC_ACCOUNT_MODE\":\"organizations-only\",\"NEXT_PUBLIC_DISPLAY_TERMS_AND_CONDITIONS_CHECKBOX\":\"false\",\"NEXT_PUBLIC_PASSWORD_REQUIRE_SPECIAL_CHARS\":\"false\",\"NEXT_PUBLIC_PASSWORD_REQUIRE_NUMBERS\":\"false\",\"NEXT_PUBLIC_PASSWORD_REQUIRE_UPPERCASE\":\"false\",\"NEXT_PUBLIC_ENABLE_VERSION_UPDATER\":\"false\",\"NEXT_PUBLIC_VERSION_UPDATER_REFETCH_INTERVAL_SECONDS\":\"3600\",\"NEXT_PUBLIC_KEYSTATIC_CONTENT_PATH\":\"./content\",\"NEXT_PUBLIC_KEYSTATIC_STORAGE_KIND\":\"local\",\"NEXT_PUBLIC_MONITORING_PROVIDER\":\"\",\"NEXT_PUBLIC_SENTRY_DSN\":\"\",\"NEXT_PUBLIC_SENTRY_ENVIRONMENT\":\"development\"}"}])</script>
1<script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script>
1</head><body><div hidden=""><!--$--><!--/$--></div><style>#nprogress{pointer-events:none}#nprogress .bar{background:#EF680C;position:fixed;z-index:1600;top: 0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 8px #EF680C, 0 0 4px #EF680C;opacity:1;-webkit-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translate(0px,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1600;top: 15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#EF680C;border-left-color:#EF680C;border-radius:50%;-webkit-animation:nprogress-spinner 400ms linear infinite;animation:nprogress-spinner 400ms linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}</style>
1<script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","light",null,["light","dark"],null,true,false)</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","name":"ChatOtter","legalName":"AgentAxis Corp","url":"https://www.chatotter.ai","logo":"https://www.chatotter.ai/android-chrome-512x512.png","description":"Mobile-first AI lead-agent platform for small and mid-sized businesses. Customers build a grounded agent from their knowledge base, connect it once, and deploy it across WhatsApp, Zalo, Telegram, LINE, Messenger and their website — meeting customers on the channels they already use and capturing leads.","disambiguatingDescription":"ChatOtter is an AI-powered lead agent platform operated by AgentAxis Corp. It is NOT affiliated with Otter.ai, the unrelated meeting-transcription / note-taking product by AISense Inc.","foundingDate":"2026","founder":{"@type":"Person","name":"Henry Nguyen"},"sameAs":["https://www.facebook.com/chatotter","https://www.linkedin.com/company/chatotter"]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"SoftwareApplication","name":"ChatOtter","applicationCategory":"BusinessApplication","operatingSystem":"Web","url":"https://www.chatotter.ai","description":"Mobile-first AI lead agent grounded in your knowledge base. Ingest URLs, documents, or Notion pages; connect once and deploy across WhatsApp, Zalo, Telegram, LINE, Messenger and a website widget; capture leads where customers already are. LangGraph orchestration over Anthropic Claude with pgvector retrieval.","offers":[{"@type":"Offer","name":"Free","price":"0","priceCurrency":"USD","description":"Free tier — $0/month, no credit card. 1 AI chatbot, 50 sessions/month, 10 documents, 10 URLs. Includes ChatOtter branding on the widget."},{"@type":"Offer","name":"Starter","price":"49","priceCurrency":"USD","description":"Starter tier — $49/month. 14-day free trial, cancel anytime. WhatsApp + Zalo OA + Messenger + Telegram + web widget. 2 AI agents, lead capture forms with notifications, 1,000 sessions/month, 100 documents, 50 URLs, 3 tool integrations."},{"@type":"Offer","name":"Pro","price":"149","priceCurrency":"USD","description":"Pro tier — $149/month. Scales Starter up: adds LINE + paid Zalo ZNS + Cal.com booking. 3 AI agents, 5 team seats, unlimited documents, 500 URL sources, 500 MB knowledge base, 5,000 sessions/month, 10 tool integrations. \"Ask a person\" handoff. Workspace activity log (audit trail of who changed what)."},{"@type":"Offer","name":"Premium","price":"249","priceCurrency":"USD","description":"Premium tier — $249/month. The automation + scale tier: workflow automations (n8n/Make) and weekly knowledge-base auto-retrain, plus white-label (remove ChatOtter branding). 10 AI agents, 15 team seats, 20,000 sessions/month, 2 GB knowledge base, unlimited tool integrations. Priority support."},{"@type":"Offer","name":"Enterprise","description":"Enterprise tier — contact sales for pricing. Custom volume on sessions, documents, URLs. Unlimited agents and team seats. White-label widget (custom logo + colors). Team RBAC. Dedicated account manager + SLA."}]}</script>
1<a href="#main-content" class="fixed top-0 left-0 z-[100] -translate-y-full rounded-br-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-transform focus:translate-y-0">Skip to main content</a><header class="site-header bg-background/80 dark:bg-background/80 sticky top-0 z-10 w-full backdrop-blur-lg"><div class="container mx-auto"><div class="flex h-20 items-center justify-between gap-2 lg:h-28"><div class="flex items-center gap-1.5"><div class="md:hidden"><button type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-_R_1diub7aivb_" data-state="closed" data-slot="drawer-trigger" aria-label="Open navigation menu"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu h-8 w-8" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg></button></div><a aria-label="Home Page" class="flex items-center" href="/"><img alt="ChatOtter" width="128" height="128" decoding="async" data-nimg="1" class="h-16 w-16 sm:hidden" style="color:transparent" src="https://d15l3i9lwgubhl.cloudfront.net/chatotter/chatotter-icon-light.png"/><img alt="ChatOtter" width="950" height="277" decoding="async" data-nimg="1" class="h-8 w-auto sm:h-14 md:h-16 lg:h-24 hidden sm:block" style="color:transparent" srcSet="/_next/image?url=https%3A%2F%2Fd15l3i9lwgubhl.cloudfront.net%2Fchatotter%2Fchatotter-horizontal-light.png&amp;w=1080&amp;q=75 1x, /_next/image?url=https%3A%2F%2Fd15l3i9lwgubhl.cloudfront.net%2Fchatotter%2Fchatotter-horizontal-light.png&amp;w=1920&amp;q=75 2x" src="/_next/image?url=https%3A%2F%2Fd15l3i9lwgubhl.cloudfront.net%2Fchatotter%2Fchatotter-horizontal-light.png&amp;w=1920&amp;q=75"/></a></div><nav aria-label="Main navigation" class="hidden md:flex md:flex-1 md:justify-center"><ul class="flex list-none items-center space-x-2.5"><li><a class="inline-flex w-max text-sm font-medium transition-colors duration-300 dark:text-gray-300 dark:hover:text-white" href="/#how-it-works">How It Works</a></li><li><a class="inline-flex w-max text-sm font-medium transition-colors duration-300 dark:text-gray-300 dark:hover:text-white" href="/#features">Features</a></li><li><a class="inline-flex w-max text-sm font-medium transition-colors duration-300 text-current dark:text-white" href="/pricing">Pricing</a></li><li><a class="inline-flex w-max text-sm font-medium transition-colors duration-300 dark:text-gray-300 dark:hover:text-white" href="/blog">Blog</a></li><li><a class="inline-flex w-max text-sm font-medium transition-colors duration-300 dark:text-gray-300 dark:hover:text-white" href="/contact">Contact</a></li></ul></nav><div class="flex items-center justify-end gap-x-2"><div class="animate-in fade-in flex items-center gap-x-2 duration-500"><button type="button" tabindex="0" data-slot="dropdown-menu-trigger" aria-label="Change language" data-testid="site-language-switcher" aria-haspopup="menu" id="base-ui-_R_ptiub7aivb_" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-[3px] data-[disabled]:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-muted dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground h-8 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 text-muted-foreground hover:text-foreground gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe h-4 w-4 shrink-0" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg><span class="text-sm font-medium">EN</span></button><div class="hidden md:flex"><button type="button" tabindex="0" data-slot="dropdown-menu-trigger" aria-haspopup="menu" id="base-ui-_R_qtiub7aivb_" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-[3px] data-[disabled]:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;
1size-&#x27;])]:size-4 hover:bg-muted hover:text-foreground dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground size-9"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun h-[0.9rem] w-[0.9rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon absolute h-[0.9rem] w-[0.9rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" aria-hidden="true"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"></path></svg><span class="sr-only">Toggle theme</span></button></div><div class="md:hidden"><button type="button" tabindex="0" data-slot="button" aria-label="Toggle theme" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-[3px] data-[disabled]:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-muted hover:text-foreground dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground size-9"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun h-[0.9rem] w-[0.9rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon absolute h-[0.9rem] w-[0.9rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" aria-hidden="true"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"></path></svg><span class="sr-only">Toggle theme</span></button></div><div class="flex items-center gap-x-2"><a role="button" tabindex="0" data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 group/button shrink-0 items-center justify-center border bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-[3px] data-[disabled]:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 border-border bg-background hover:bg-muted hover:text-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 aria-expanded:bg-muted aria-expanded:text-foreground shadow-xs h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 hidden md:flex" href="/auth/sign-in">Sign In</a><a role="button" tabindex="0" data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-[3px] data-[disabled]:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;
1size-&#x27;])]:size-4 bg-primary text-primary-foreground hover:bg-primary/80 h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5" href="/auth/sign-up">Sign Up</a></div></div></div></div></div></header><main id="main-content" tabindex="-1">
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebPage","name":"ChatOtter Pricing","description":"Pricing plans for ChatOtter — the all-in-one AI agent platform for SMEs."}</script>
1<div class="flex flex-col space-y-4 xl:space-y-8"><section class="border-border/40 border-b py-6 xl:py-8 2xl:py-10" aria-labelledby="page-heading"><div class="flex flex-col items-center gap-y-2 lg:gap-y-3 container"><h1 id="page-heading" class="font-heading text-3xl tracking-tighter xl:text-5xl dark:text-white">Pricing</h1><p class="text-muted-foreground text-lg tracking-tight 2xl:text-2xl">The chatbot that can&#x27;t make things up about your business. Start free, add multi-agent workflows as you grow — your price stays locked.</p></div></section><div class="container flex flex-col items-center pb-16"><div class="w-full max-w-7xl"><div class="flex flex-col space-y-4 lg:space-y-8 xl:space-y-12 2xl:space-y-14"><div class="flex justify-center"><div class="hover:border-border border-border/50 flex gap-x-0 rounded-full border"><button type="button" tabindex="0" data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap outline-none select-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-[3px] data-[disabled]:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground h-8 gap-1 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 animate-in fade-in rounded-full transition-all focus:!ring-0 border-r-transparent cursor-default"><span class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big animate-in fade-in zoom-in-50 duration-200 mr-1 size-3" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="capitalize text-xs">Billed monthly</span></span></button><button type="button" tabindex="0" data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap outline-none select-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-[3px] data-[disabled]:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 h-8 gap-1 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 animate-in fade-in rounded-full transition-all focus:!ring-0 hover:text-primary text-muted-foreground"><span class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big animate-in fade-in zoom-in-50 duration-200 mr-1 size-3 hidden" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="capitalize text-xs">Billed yearly</span><span class="ml-1.5 rounded-full px-1.5 py-0.5 text-[10px] font-semibold bg-emerald-50 text-emerald-600">Save 25%</span></span></button></div></div><div class="grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-5 lg:gap-x-2.5"><div data-cy="subscription-plan" data-testid="pricing-plan" data-product="free" class="bg-muted/50 border-border/50 relative flex flex-col items-stretch justify-between rounded border px-6 py-5 w-full"><div class="flex flex-col gap-y-4"><div class="flex min-h-20 flex-col"><div class="flex items-center space-x-6"><b class="text-secondary-foreground font-heading text-xl font-medium tracking-tight">Free</b></div><span class="text-muted-foreground text-base tracking-tight">Try ChatOtter with one chatbot — no credit card required.</span></div><div class="h-px w-full border border-dashed"></div><div class="flex flex-col gap-y-1"><div class="animate-in slide-in-from-left-4 fade-in flex items-end gap-1 duration-500"><span class="font-heading flex items-center text-4xl font-medium tracking-tighter">$0</span><span class="text-muted-foreground text-sm leading-loose"><span>/</span>month</span></div><span class="animate-in slide-in-from-left-4 fade-in text-muted-foreground flex items-center gap-x-1 text-xs">Billed monthly</span></div><a role="button" tabindex="0" data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-[3px] data-[disabled]:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;
1size-&#x27;])]:size-4 bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 h-12! min-h-12 w-full" href="/auth/sign-up?plan=free"><span class="text-base font-medium tracking-tight">Get Started Free</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right ml-2 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><div class="h-px w-full border border-dashed"></div><div class="flex flex-col"><ul class="flex flex-col gap-1"><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">1 AI agent (chatbot)</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Grounded answers — no hallucinations</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Knowledge Base: 2 MB</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">50 chat sessions / month</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Web widget only</span></li></ul></div></div></div><div data-cy="subscription-plan" data-testid="pricing-plan" data-product="starter" class="bg-muted/50 border-border/50 relative flex flex-col items-stretch justify-between rounded border px-6 py-5 w-full"><div class="flex flex-col gap-y-4"><div class="flex min-h-20 flex-col"><div class="flex items-center space-x-6"><b class="text-secondary-foreground font-heading text-xl font-medium tracking-tight">Starter</b></div><span class="text-muted-foreground text-base tracking-tight">Your AI agent on WhatsApp, Zalo &amp; more — capture leads where customers already chat.</span></div><div class="h-px w-full border border-dashed"></div><div class="flex flex-col gap-y-1"><div class="animate-in slide-in-from-left-4 fade-in flex items-end gap-1 duration-500"><span class="font-heading flex items-center text-4xl font-medium tracking-tighter">$49.00</span><span class="text-muted-foreground text-sm leading-loose"><span>/</span>month</span></div><span class="animate-in slide-in-from-left-4 fade-in text-muted-foreground flex items-center gap-x-1 text-xs">Billed monthly</span></div><a role="button" tabindex="0" data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-[3px] data-[disabled]:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;
1size-&#x27;])]:size-4 bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 h-12! min-h-12 w-full" href="/auth/sign-up?plan=starter-monthly"><span class="text-base font-medium tracking-tight">Start Free Trial</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right ml-2 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><div class="h-px w-full border border-dashed"></div><div class="flex flex-col"><ul class="flex flex-col gap-1"><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Everything in Free, plus:</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">2 AI agents</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Multiple deploy channels</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Lead Forms</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">3 Tools</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Knowledge Base: 100 MB</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">1K chat sessions / month</span></li></ul></div></div></div><div data-cy="subscription-plan" data-testid="pricing-plan" data-product="pro" class="bg-muted/50 border-border/50 relative flex flex-col items-stretch justify-between rounded border px-6 py-5 w-full"><div class="absolute -top-2.5 left-0 flex w-full justify-center"><span data-slot="badge" data-variant="default" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded border border-transparent px-1.5 py-0.5 text-xs font-medium whitespace-nowrap transition-colors focus-visible:ring-[3px] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3! bg-primary text-primary-foreground [a]:hover:bg-primary/80"><span>Most Popular</span></span></div><div class="flex flex-col gap-y-4"><div class="flex min-h-20 flex-col"><div class="flex items-center space-x-6"><b class="text-secondary-foreground font-heading text-xl font-medium tracking-tight">Pro</b></div><span class="text-muted-foreground text-base tracking-tight">Scale across every channel — higher volume, LINE + Zalo ZNS, live handoff.</sp
1an></div><div class="h-px w-full border border-dashed"></div><div class="flex flex-col gap-y-1"><div class="animate-in slide-in-from-left-4 fade-in flex items-end gap-1 duration-500"><span class="font-heading flex items-center text-4xl font-medium tracking-tighter">$149.00</span><span class="text-muted-foreground text-sm leading-loose"><span>/</span>month</span></div><span class="animate-in slide-in-from-left-4 fade-in text-muted-foreground flex items-center gap-x-1 text-xs">Billed monthly</span></div><a role="button" tabindex="0" data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-[3px] data-[disabled]:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 bg-primary text-primary-foreground hover:bg-primary/80 h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 h-12! min-h-12 w-full" href="/auth/sign-up?plan=pro-monthly"><span class="text-base font-medium tracking-tight">Subscribe</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right ml-2 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><div class="h-px w-full border border-dashed"></div><div class="flex flex-col"><ul class="flex flex-col gap-1"><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-secondary-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-secondary-foreground">Everything in Starter, plus:</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-secondary-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-secondary-foreground">3 AI agents</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-secondary-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-secondary-foreground">5 team members</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-secondary-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-secondary-foreground">LINE + Zalo ZNS</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-secondary-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-secondary-foreground">Booking &amp; scheduling</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-secondary-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-secondary-foreground">&quot;Ask a person&quot;
1 handoff</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-secondary-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-secondary-foreground">Activity log</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-secondary-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-secondary-foreground">10 tool integrations</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-secondary-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-secondary-foreground">Knowledge Base: 500 MB</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-secondary-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-secondary-foreground">5K chat sessions / month</span></li></ul></div></div></div><div data-cy="subscription-plan" data-testid="pricing-plan" data-product="premium" class="bg-muted/50 border-border/50 relative flex flex-col items-stretch justify-between rounded border px-6 py-5 w-full"><div class="flex flex-col gap-y-4"><div class="flex min-h-20 flex-col"><div class="flex items-center space-x-6"><b class="text-secondary-foreground font-heading text-xl font-medium tracking-tight">Premium</b></div><span class="text-muted-foreground text-base tracking-tight">For scale — high message volume across every channel, larger teams.</span></div><div class="h-px w-full border border-dashed"></div><div class="flex flex-col gap-y-1"><div class="animate-in slide-in-from-left-4 fade-in flex items-end gap-1 duration-500"><span class="font-heading flex items-center text-4xl font-medium tracking-tighter">$249.00</span><span class="text-muted-foreground text-sm leading-loose"><span>/</span>month</span></div><span class="animate-in slide-in-from-left-4 fade-in text-muted-foreground flex items-center gap-x-1 text-xs">Billed monthly</span></div><a role="button" tabindex="0" data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-[3px] data-[disabled]:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 h-12! min-h-12 w-full" href="/auth/sign-up?plan=premium-monthly"><span class="text-base font-medium tracking-tight">Subscribe</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right ml-2 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><div class="h-px w-full border border-dashed"></div><div class="flex flex-col"><ul class="flex flex-col gap-1">
1<li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Everything in Pro, plus:</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Remove &quot;Powered by ChatOtter&quot;</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">10 AI agents</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">15 team members</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Knowledge Base: 2 GB</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">20K chat sessions / month</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Unlimited tool integrations</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Workflow automations (n8n / Make)</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Auto-retrain knowledge base (weekly + on-demand)</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Guardrails — approval policy for risky agent actions + tool risk posture (Beta)</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Priority + chat support</span></li></ul></div></div></div><div data-cy="subscription-plan" data-testid="pricing-plan" data-product="enterprise" class="bg-muted/50 border-border/50 relative flex flex-col items-stretch justify-between rounded border px-6 py-5 w-full"><div class="flex flex-col gap-y-4"><div class="flex min-h-20 flex-col"><div class="flex items-center space-x-6"><b class="text-secondary-foreground font-heading text-xl font-medium tracking-tight">Enterprise</b></div><span class="text-muted-foreground text-base tracking-tight">
1Custom volume, full white-label, and dedicated support.</span></div><div class="h-px w-full border border-dashed"></div><div class="flex flex-col gap-y-1"><div class="flex items-end gap-1"><span class="font-heading flex items-center text-4xl font-medium tracking-tighter">Custom</span></div><span class="text-muted-foreground flex items-center gap-x-1 text-xs">Contact us for pricing</span></div><a role="button" tabindex="0" data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-[3px] data-[disabled]:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 h-12! min-h-12 w-full" href="/contact"><span class="text-base font-medium tracking-tight">Contact Sales</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right ml-2 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><div class="h-px w-full border border-dashed"></div><div class="flex flex-col"><ul class="flex flex-col gap-1"><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Everything in Premium, plus:</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Custom volume — sessions, messages, knowledge base</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Unlimited AI agents</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Unlimited team members</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Full white-label — your logo &amp; colors</span></li><li class="flex items-center gap-x-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-3.5 min-h-3.5 w-3.5 min-w-3.5 text-muted-foreground" aria-hidden="true"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg><span class="text-sm text-muted-foreground">Dedicated account manager + SLA</span></li></ul></div></div></div></div></div></div><section class="mt-20 w-full max-w-5xl"><h2 class="text-foreground mb-2 text-center text-2xl font-bold">Why ChatOtter Pro beats a generic AI chatbot</h2><p class="text-muted-foreground mb-8 text-center text-sm">Most AI chatbots happily make things up and bury the source. ChatOtter Pro can&#x27;t — every answer is grounded in your knowledge base and shows where it came from — and bundles WhatsApp, human handoff, 3 agents, and LINE + Zalo ZNS at <strong>$149/mo</strong>, with no add-on stacking.</p><div class="border-border overflow-hidden rounded-xl border"><table class="w-full text-sm"><thead class="bg-muted"><tr><th class="text-foreground px-4 py-3 text-left font-semibold">Feature</th><th class="text-foreground px-4 py-3 text-left font-semibold">ChatOtter Pro — $149/mo</th><th class="text-muted-foreground px-4 py-3 text-left font-semibold">Typical AI chatbot</th></tr></thead><tbody><tr class="border-border border-t"><td class="text-foreground px-4 py-3">Grounded answers — physically can&#x27;t hallucinate</td><td class="px-4 py-3"><span>Hardcoded — can&#x27;t be turned off</span></td><td class="text-muted-foreground px-4 py-3"><span>Optional toggle, usually off</span></td></tr><tr class="border-border border-t"><td class="text-foreground px-4 py-3">Source shown on every answer</td><td class="px-4 py-3"><span>Default on</span></td><td class="text-muted-foreground px-4 py-3"><span>Rarely, if at all</span></td></tr><tr class="border-border border-t"><td class="text-foreground px-4 py-3">WhatsApp Business API</td><td class="px-4 py-3"><span class="inline-flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4 shrink-0 text-green-600" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg>Included</span></td><td class="text-muted-foreground px-4 py-3"><span>Add-on or higher tier</span></td></tr><tr class="border-border border-t"><td class="text-foreground px-4 py-3">3 AI agents + remove branding</td><td class="px-4 py-3"><span class="inline-flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4 shrink-0 text-green-600" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg>Included</span></td><td class="text-muted-foreground px-4 py-3"><span>Per-agent fees + white-label add-on</span></td></tr><tr class="border-border border-t"><td class="text-foreground px-4 py-3">Existing-customer price lock</td><td class="px-4 py-3"><span class="inline-flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4 shrink-0 text-green-600" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg>Included</span></td><td class="text-muted-foreground px-4 py-3"><span class="inline-flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x text-muted-foreground h-4 w-4 shrink-0" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>Not available</span></td></tr></tbody></table></div></section><div class="mt-20 w-full max-w-3xl"><h2 class="text-foreground mb-8 text-center text-2xl font-bold">Frequently Asked Questions</h2><div class="space-y-6"><div class="border-border border-b pb-4"><h3 class="text-foreground mb-2 font-semibold">How does ChatOtter prevent hallucinations?</h3><p class="text-muted-foreground text-sm">Our chat agent has no permissive code path — it can only answer from your knowledge base. When the knowledge base doesn&#x27;
1t have the answer, the bot refuses rather than inventing one. Every grounded reply shows the source chunk it came from, so you (and your visitors) can verify every claim.</p></div><div class="border-border border-b pb-4"><h3 class="text-foreground mb-2 font-semibold">What counts as a chat session?</h3><p class="text-muted-foreground text-sm">A session is one visitor&#x27;s continuous conversation with your chatbot. We count by visitor, not by individual messages — so a customer asking 20 follow-up questions counts as 1 session, not 20. Sessions reset after 30 minutes of idle time.</p></div><div class="border-border border-b pb-4"><h3 class="text-foreground mb-2 font-semibold">Can I change plans at any time?</h3><p class="text-muted-foreground text-sm">Yes. Upgrade or downgrade from Settings → Billing. Upgrades are pro-rated immediately. Downgrades take effect at the end of your current billing cycle.</p></div><div class="border-border border-b pb-4"><h3 class="text-foreground mb-2 font-semibold">What are MCP tool integrations?</h3><p class="text-muted-foreground text-sm">MCP (Model Context Protocol) lets your AI agent call external tools — HubSpot, Slack, calendars, your own APIs — during conversations. Turns a chatbot into a business assistant that can actually take action.</p></div><div class="border-border border-b pb-4"><h3 class="text-foreground mb-2 font-semibold">Is there a free trial?</h3><p class="text-muted-foreground text-sm">Yes. The Free plan is forever-free (1 chatbot, 50 chat sessions / month). Starter includes a 14-day free trial — cancel anytime before it ends to avoid charges.</p></div><div class="border-border border-b pb-4"><h3 class="text-foreground mb-2 font-semibold">Will my price change when you add Outbound or Marketing agents?</h3><p class="text-muted-foreground text-sm">No. Existing customers keep their current tier price forever, even when we introduce new tiers above. New customers may pay new prices, but you won&#x27;t.</p></div></div></div><p class="text-muted-foreground mt-12 text-center text-sm">Starter includes a 14-day free trial. Cancel anytime.<br/>Existing customers keep their tier price forever, even when we add new tiers.</p></div></div><!--$--><!--/$--></main><footer class="site-footer bg-muted/20 relative mt-auto w-full py-8 xl:py-16 2xl:py-20"><div class="container"><div class="flex flex-col space-y-8 lg:flex-row lg:space-y-0"><div class="flex w-full gap-x-3 lg:w-4/12 xl:w-4/12 xl:space-x-6 2xl:space-x-8"><div class="flex flex-col gap-y-4"><div><a href="/"><img alt="ChatOtter" width="1000" height="800" decoding="async" data-nimg="1" class="h-32 w-auto lg:h-40" style="color:transparent" src="https://d15l3i9lwgubhl.cloudfront.net/chatotter/chatotter-stacked-light.png"/></a></div><div class="flex flex-col gap-y-4"><div><p class="text-muted-foreground text-sm">Build and deploy your AI lead agent into multiple channels in under 30 minutes. Works with WhatsApp, Zalo, Telegram, LINE, Messenger and your website — plus the tools you already use. Source-cited, never invents. Built for SMEs.<span class="mt-3 block space-y-0.5 text-xs"><span class="block font-medium">AgentAxis Corp</span><span class="block">Mail Address:<!-- --> <!-- -->Austin, TX, USA</span><span class="block">Operations:<!-- --> <!-- -->20/5 Hà Thị Thân Street, Đà Nẵng, Việt Nam</span><span class="block"><a href="mailto:[email protected]" class="hover:underline">[email protected]</a></span></span></p></div><div class="text-muted-foreground flex text-xs"><p>Copyright © AgentAxis Corp 2026. All Rights Reserved.</p></div></div></div></div><nav aria-label="Footer navigation" class="flex w-full flex-1 flex-col gap-y-4 lg:flex-row lg:justify-end lg:gap-x-6 lg:gap-y-0 xl:gap-x-12"><div><div class="flex flex-col gap-y-1"><span class="font-heading text-secondary-foreground/90 text-sm font-medium">About</span><ul class="flex flex-col gap-y-1"><li class="text-muted-foreground text-sm font-medium hover:underline [&amp;&gt;a]:transition-colors"><a href="/blog">Blog</a></li><li class="text-muted-foreground text-sm font-medium hover:underline [&amp;&gt;a]:transition-colors"><a href="/help">Help Center</a></li><li class="text-muted-foreground text-sm font-medium hover:underline [&amp;&gt;a]:transition-colors"><a href="/changelog">Changelog</a></li><li class="text-muted-foreground text-sm font-medium hover:underline [&amp;&gt;a]:transition-colors"><a href="/faq">FAQ</a></li><li class="text-muted-foreground text-sm font-medium hover:underline [&amp;&gt;a]:transition-colors"><a href="https://status.chatotter.ai" target="_blank" rel="noopener noreferrer">Status</a></li></ul></div></div><div><div class="flex flex-col gap-y-1">
1<span class="font-heading text-secondary-foreground/90 text-sm font-medium">Legal</span><ul class="flex flex-col gap-y-1"><li class="text-muted-foreground text-sm font-medium hover:underline [&amp;&gt;a]:transition-colors"><a href="/terms-of-service">Terms of Service</a></li><li class="text-muted-foreground text-sm font-medium hover:underline [&amp;&gt;a]:transition-colors"><a href="/privacy-policy">Privacy Policy</a></li><li class="text-muted-foreground text-sm font-medium hover:underline [&amp;&gt;a]:transition-colors"><a href="/cookie-policy">Cookie Policy</a></li><li class="text-muted-foreground text-sm font-medium hover:underline [&amp;&gt;a]:transition-colors"><a href="/refund-policy">Refund Policy</a></li><li class="text-muted-foreground text-sm font-medium hover:underline [&amp;&gt;a]:transition-colors"><a href="#" class="cookiebot-renew-link">Your Privacy Choices</a></li></ul></div></div></nav></div></div></footer><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section><!--$--><!--/$-->
1<script src="/_next/static/chunks/849dc7065728f35f.js" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[607925,[\"/_next/static/chunks/b718e082d0163130.js\",\"/_next/static/chunks/a3b3d605a9d78e19.js\"],\"default\"]\n3:I[284055,[\"/_next/static/chunks/b718e082d0163130.js\",\"/_next/static/chunks/a3b3d605a9d78e19.js\"],\"default\"]\ne:I[147173,[\"/_next/static/chunks/b718e082d0163130.js\",\"/_next/static/chunks/a3b3d605a9d78e19.js\"],\"default\"]\n10:I[346639,[\"/_next/static/chunks/b718e082d0163130.js\",\"/_next/static/chunks/a3b3d605a9d78e19.js\"],\"OutletBoundary\"]\n11:\"$Sreact.suspense\"\n13:I[346639,[\"/_next/static/chunks/b718e082d0163130.js\",\"/_next/static/chunks/a3b3d605a9d78e19.js\"],\"ViewportBoundary\"]\n15:I[346639,[\"/_next/static/chunks/b718e082d0163130.js\",\"/_next/static/chunks/a3b3d605a9d78e19.js\"],\"MetadataBoundary\"]\n18:I[124826,[\"/_next/static/chunks/84cf6dafb52081f7.js\",\"/_next/static/chunks/4061e77236de545e.js\",\"/_next/static/chunks/f99709cb2125ad1a.js\",\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"/_next/static/chunks/2fc4ebd8e91ef75d.js\",\"/_next/static/chunks/da7f358801095660.js\",\"/_next/static/chunks/f64fd64132ef1c58.js\",\"/_next/static/chunks/c92192745ab0fe2a.js\",\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"/_next/static/chunks/30806729917be48a.js\",\"/_next/static/chunks/7aadca67222380d2.js\",\"/_next/static/chunks/06d36e9098247ac8.js\",\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"/_next/static/chunks/0deed52ab03f02f9.js\",\"/_next/static/chunks/29ec10aecf029f63.js\",\"/_next/static/chunks/5a97de1c4b425084.js\",\"/_next/static/chunks/00483f1215e5d1c8.js\",\"/_next/static/chunks/cb34ebf66d3b2c14.js\",\"/_next/static/chunks/04437015febf7145.js\",\"/_next/static/chunks/12bcf5e78210c3a3.js\",\"/_next/static/chunks/2fff49b61e5460c3.js\",\"/_next/static/chunks/ee4cf50e8515470b.js\",\"/_next/static/chunks/d5971ff071020297.js\",\"/_next/static/chunks/a3bb0ecdc9474e31.js\"],\"AttributionHydrator\"]\n1c:I[429721,[\"/_next/static/chunks/84cf6dafb52081f7.js\",\"/_next/static/chunks/4061e77236de545e.js\",\"/_next/static/chunks/f99709cb2125ad1a.js\",\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"/_next/static/chunks/2fc4ebd8e91ef75d.js\",\"/_next/static/chunks/da7f358801095660.js\",\"/_next/static/chunks/f64fd64132ef1c58.js\",\"/_next/static/chunks/c92192745ab0fe2a.js\",\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"/_next/static/chunks/30806729917be48a.js\",\"/_next/static/chunks/7aadca67222380d2.js\",\"/_next/static/chunks/06d36e9098247ac8.js\",\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"/_next/static/chunks/0deed52ab03f02f9.js\",\"/_next/static/chunks/29ec10aecf029f63.js\",\"/_next/static/chunks/5a97de1c4b425084.js\",\"/_next/static/chunks/00483f1215e5d1c8.js\",\"/_next/static/chunks/cb34ebf66d3b2c14.js\",\"/_next/static/chunks/04437015febf7145.js\",\"/_next/static/chunks/12bcf5e78210c3a3.js\",\"/_next/static/chunks/2fff49b61e5460c3.js\",\"/_next/static/chunks/ee4cf50e8515470b.js\",\"/_next/static/chunks/d5971ff071020297.js\",\"/_next/static/chunks/a3bb0ecdc9474e31.js\"],\"\"]\n1d:I[498558,[\"/_next/static/chunks/84cf6dafb52081f7.js\",\"/_next/static/chunks/4061e77236de545e.js\",\"/_next/static/chunks/f99709cb2125ad1a.js\",\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"/_next/static/chunks/2fc4ebd8e91ef75d.js\",\"/_next/static/chunks/da7f358801095660.js\",\"/_next/static/chunks/f64fd64132ef1c58.js\",\"/_next/static/chunks/c92192745ab0fe2a.js\",\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"/_next/static/chunks/30806729917be48a.js\",\"/_next/static/chunks/7aadca67222380d2.js\",\"/_next/static/chunks/06d36e9098247ac8.js\",\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"/_next/static/chunks/0deed52ab03f02f9.js\",\"/_next/static/chunks/29ec10aecf029f63.js\",\"/_next/static/chunks/5a97de1c4b425084.js\",\"/_next/static/chunks/00483f1215e5d1c8.js\",\"/_next/static/chunks/cb34ebf66d3b2c14.js\",\"/_next/static/chunks/04437015febf7145.js\",\"/_next/static/chunks/12bcf5e78210c3a3.js\",\"/_next/static/chunks/2fff49b61e5460c3.js\",\"/_next/static/chunks/ee4cf50e8515470b.js\",\"/_next/static/chunks/d5971ff071020297.js\",\"/_next/static/chunks/a3bb0ecdc9474e31.js\"],\"Image\"]\n1e:I[902322,[\"/_next/static/chunks/84cf6dafb52081f7.js\",\"/_next/static/chunks/4061e77236de545e.js\",\"/_next/static/chunks/f99709cb2125ad1a.js\",\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"/_nex"])</script>
1<script>self.__next_f.push([1,"t/static/chunks/2fc4ebd8e91ef75d.js\",\"/_next/static/chunks/da7f358801095660.js\",\"/_next/static/chunks/f64fd64132ef1c58.js\",\"/_next/static/chunks/c92192745ab0fe2a.js\",\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"/_next/static/chunks/30806729917be48a.js\",\"/_next/static/chunks/7aadca67222380d2.js\",\"/_next/static/chunks/06d36e9098247ac8.js\",\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"/_next/static/chunks/0deed52ab03f02f9.js\",\"/_next/static/chunks/29ec10aecf029f63.js\",\"/_next/static/chunks/5a97de1c4b425084.js\",\"/_next/static/chunks/00483f1215e5d1c8.js\",\"/_next/static/chunks/cb34ebf66d3b2c14.js\",\"/_next/static/chunks/04437015febf7145.js\",\"/_next/static/chunks/12bcf5e78210c3a3.js\",\"/_next/static/chunks/2fff49b61e5460c3.js\",\"/_next/static/chunks/ee4cf50e8515470b.js\",\"/_next/static/chunks/d5971ff071020297.js\",\"/_next/static/chunks/a3bb0ecdc9474e31.js\"],\"ErrorBoundary\"]\n31:I[732200,[\"/_next/static/chunks/84cf6dafb52081f7.js\",\"/_next/static/chunks/4061e77236de545e.js\",\"/_next/static/chunks/f99709cb2125ad1a.js\",\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"/_next/static/chunks/2fc4ebd8e91ef75d.js\",\"/_next/static/chunks/da7f358801095660.js\",\"/_next/static/chunks/f64fd64132ef1c58.js\",\"/_next/static/chunks/c92192745ab0fe2a.js\",\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"/_next/static/chunks/30806729917be48a.js\",\"/_next/static/chunks/7aadca67222380d2.js\",\"/_next/static/chunks/06d36e9098247ac8.js\",\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"/_next/static/chunks/0deed52ab03f02f9.js\",\"/_next/static/chunks/29ec10aecf029f63.js\",\"/_next/static/chunks/5a97de1c4b425084.js\",\"/_next/static/chunks/00483f1215e5d1c8.js\",\"/_next/static/chunks/cb34ebf66d3b2c14.js\",\"/_next/static/chunks/04437015febf7145.js\",\"/_next/static/chunks/12bcf5e78210c3a3.js\",\"/_next/static/chunks/2fff49b61e5460c3.js\",\"/_next/static/chunks/ee4cf50e8515470b.js\",\"/_next/static/chunks/d5971ff071020297.js\",\"/_next/static/chunks/a3bb0ecdc9474e31.js\",\"/_next/static/chunks/b1f93fdceeb3cff2.js\"],\"\"]\n34:I[699310,[\"/_next/static/chunks/84cf6dafb52081f7.js\",\"/_next/static/chunks/4061e77236de545e.js\",\"/_next/static/chunks/f99709cb2125ad1a.js\",\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"/_next/static/chunks/2fc4ebd8e91ef75d.js\",\"/_next/static/chunks/da7f358801095660.js\",\"/_next/static/chunks/f64fd64132ef1c58.js\",\"/_next/static/chunks/c92192745ab0fe2a.js\",\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"/_next/static/chunks/30806729917be48a.js\",\"/_next/static/chunks/7aadca67222380d2.js\",\"/_next/static/chunks/06d36e9098247ac8.js\",\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"/_next/static/chunks/0deed52ab03f02f9.js\"],\"default\"]\n35:I[697223,[\"/_next/static/chunks/84cf6dafb52081f7.js\",\"/_next/static/chunks/4061e77236de545e.js\",\"/_next/static/chunks/f99709cb2125ad1a.js\",\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"/_next/static/chunks/2fc4ebd8e91ef75d.js\",\"/_next/static/chunks/da7f358801095660.js\",\"/_next/static/chunks/f64fd64132ef1c58.js\",\"/_next/static/chunks/c92192745ab0fe2a.js\",\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"/_next/static/chunks/30806729917be48a.js\",\"/_next/static/chunks/7aadca67222380d2.js\",\"/_next/static/chunks/06d36e9098247ac8.js\",\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"/_next/static/chunks/0deed52ab03f02f9.js\"],\"RootProviders\",1]\n3a:I[452316,[\"/_next/static/chunks/84cf6dafb52081f7.js\",\"/_next/static/chunks/4061e77236de545e.js\",\"/_next/static/chunks/f99709cb2125ad1a.js\",\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"/_next/static/chunks/2fc4ebd8e91ef75d.js\",\"/_next/static/chunks/da7f358801095660.js\",\"/_next/static/chunks/f64fd64132ef1c58.js\",\"/_next/static/chunks/c92192745ab0fe2a.js\",\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"/_next/static/chunks/30806729917be48a.js\",\"/_next/static/chunks/7aadca67222380d2.js\",\"/_next/static/chunks/06d36e9098247ac8.js\",\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"/_next/static/chunks/0deed52ab03f02f9.js\",\"/_next/static/chunks/6faedbb343035725.js\"],\"default\",1]\n3b:I[373687,[\"/_next/static/chunks/84cf6dafb52081f7.js\",\"/_next/static/chunks/4061e77236de545e.js\",\"/_next/static/chunks/f99709cb2125ad1a.js\",\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"/_next/stat"])</script>
1<script>self.__next_f.push([1,"ic/chunks/2fc4ebd8e91ef75d.js\",\"/_next/static/chunks/da7f358801095660.js\",\"/_next/static/chunks/f64fd64132ef1c58.js\",\"/_next/static/chunks/c92192745ab0fe2a.js\",\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"/_next/static/chunks/30806729917be48a.js\",\"/_next/static/chunks/7aadca67222380d2.js\",\"/_next/static/chunks/06d36e9098247ac8.js\",\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"/_next/static/chunks/0deed52ab03f02f9.js\"],\"Toaster\"]\n3c:I[705120,[\"/_next/static/chunks/84cf6dafb52081f7.js\",\"/_next/static/chunks/4061e77236de545e.js\",\"/_next/static/chunks/f99709cb2125ad1a.js\",\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"/_next/static/chunks/2fc4ebd8e91ef75d.js\",\"/_next/static/chunks/da7f358801095660.js\",\"/_next/static/chunks/f64fd64132ef1c58.js\",\"/_next/static/chunks/c92192745ab0fe2a.js\",\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"/_next/static/chunks/30806729917be48a.js\",\"/_next/static/chunks/7aadca67222380d2.js\",\"/_next/static/chunks/06d36e9098247ac8.js\",\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"/_next/static/chunks/0deed52ab03f02f9.js\"],\"SpeedInsights\"]\n3d:I[640235,[\"/_next/static/chunks/84cf6dafb52081f7.js\",\"/_next/static/chunks/4061e77236de545e.js\",\"/_next/static/chunks/f99709cb2125ad1a.js\",\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"/_next/static/chunks/2fc4ebd8e91ef75d.js\",\"/_next/static/chunks/da7f358801095660.js\",\"/_next/static/chunks/f64fd64132ef1c58.js\",\"/_next/static/chunks/c92192745ab0fe2a.js\",\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"/_next/static/chunks/30806729917be48a.js\",\"/_next/static/chunks/7aadca67222380d2.js\",\"/_next/static/chunks/06d36e9098247ac8.js\",\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"/_next/static/chunks/0deed52ab03f02f9.js\"],\"WebVitalsReporter\"]\n3e:I[709309,[\"/_next/static/chunks/84cf6dafb52081f7.js\",\"/_next/static/chunks/4061e77236de545e.js\",\"/_next/static/chunks/f99709cb2125ad1a.js\",\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"/_next/static/chunks/2fc4ebd8e91ef75d.js\",\"/_next/static/chunks/da7f358801095660.js\",\"/_next/static/chunks/f64fd64132ef1c58.js\",\"/_next/static/chunks/c92192745ab0fe2a.js\",\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"/_next/static/chunks/30806729917be48a.js\",\"/_next/static/chunks/7aadca67222380d2.js\",\"/_next/static/chunks/06d36e9098247ac8.js\",\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"/_next/static/chunks/0deed52ab03f02f9.js\",\"/_next/static/chunks/29ec10aecf029f63.js\",\"/_next/static/chunks/5a97de1c4b425084.js\",\"/_next/static/chunks/00483f1215e5d1c8.js\",\"/_next/static/chunks/cb34ebf66d3b2c14.js\",\"/_next/static/chunks/04437015febf7145.js\",\"/_next/static/chunks/12bcf5e78210c3a3.js\",\"/_next/static/chunks/2fff49b61e5460c3.js\",\"/_next/static/chunks/ee4cf50e8515470b.js\",\"/_next/static/chunks/d5971ff071020297.js\",\"/_next/static/chunks/a3bb0ecdc9474e31.js\",\"/_next/static/chunks/b1f93fdceeb3cff2.js\"],\"MarketingPricingTable\"]\n41:I[130500,[\"/_next/static/chunks/84cf6dafb52081f7.js\",\"/_next/static/chunks/4061e77236de545e.js\",\"/_next/static/chunks/f99709cb2125ad1a.js\",\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"/_next/static/chunks/2fc4ebd8e91ef75d.js\",\"/_next/static/chunks/da7f358801095660.js\",\"/_next/static/chunks/f64fd64132ef1c58.js\",\"/_next/static/chunks/c92192745ab0fe2a.js\",\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"/_next/static/chunks/30806729917be48a.js\",\"/_next/static/chunks/7aadca67222380d2.js\",\"/_next/static/chunks/06d36e9098247ac8.js\",\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"/_next/static/chunks/0deed52ab03f02f9.js\",\"/_next/static/chunks/29ec10aecf029f63.js\",\"/_next/static/chunks/5a97de1c4b425084.js\",\"/_next/static/chunks/00483f1215e5d1c8.js\",\"/_next/static/chunks/cb34ebf66d3b2c14.js\",\"/_next/static/chunks/04437015febf7145.js\",\"/_next/static/chunks/12bcf5e78210c3a3.js\",\"/_next/static/chunks/2fff49b61e5460c3.js\",\"/_next/static/chunks/ee4cf50e8515470b.js\",\"/_next/static/chunks/d5971ff071020297.js\",\"/_next/static/chunks/a3bb0ecdc9474e31.js\"],\"MobileSiteNavigation\"]\n42:I[767677,[\"/_next/static/chunks/84cf6dafb52081f7.js\",\"/_next/static/chunks/4061e77236de545e.js\",\"/_next/static/chunks/f99709cb2125ad1a.js\",\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"/_next/static/chunks/2fc4e"])</script>
1<script>self.__next_f.push([1,"bd8e91ef75d.js\",\"/_next/static/chunks/da7f358801095660.js\",\"/_next/static/chunks/f64fd64132ef1c58.js\",\"/_next/static/chunks/c92192745ab0fe2a.js\",\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"/_next/static/chunks/30806729917be48a.js\",\"/_next/static/chunks/7aadca67222380d2.js\",\"/_next/static/chunks/06d36e9098247ac8.js\",\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"/_next/static/chunks/0deed52ab03f02f9.js\",\"/_next/static/chunks/29ec10aecf029f63.js\",\"/_next/static/chunks/5a97de1c4b425084.js\",\"/_next/static/chunks/00483f1215e5d1c8.js\",\"/_next/static/chunks/cb34ebf66d3b2c14.js\",\"/_next/static/chunks/04437015febf7145.js\",\"/_next/static/chunks/12bcf5e78210c3a3.js\",\"/_next/static/chunks/2fff49b61e5460c3.js\",\"/_next/static/chunks/ee4cf50e8515470b.js\",\"/_next/static/chunks/d5971ff071020297.js\",\"/_next/static/chunks/a3bb0ecdc9474e31.js\"],\"SiteNavigationItem\"]\n43:I[100849,[\"/_next/static/chunks/84cf6dafb52081f7.js\",\"/_next/static/chunks/4061e77236de545e.js\",\"/_next/static/chunks/f99709cb2125ad1a.js\",\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"/_next/static/chunks/2fc4ebd8e91ef75d.js\",\"/_next/static/chunks/da7f358801095660.js\",\"/_next/static/chunks/f64fd64132ef1c58.js\",\"/_next/static/chunks/c92192745ab0fe2a.js\",\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"/_next/static/chunks/30806729917be48a.js\",\"/_next/static/chunks/7aadca67222380d2.js\",\"/_next/static/chunks/06d36e9098247ac8.js\",\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"/_next/static/chunks/0deed52ab03f02f9.js\",\"/_next/static/chunks/29ec10aecf029f63.js\",\"/_next/static/chunks/5a97de1c4b425084.js\",\"/_next/static/chunks/00483f1215e5d1c8.js\",\"/_next/static/chunks/cb34ebf66d3b2c14.js\",\"/_next/static/chunks/04437015febf7145.js\",\"/_next/static/chunks/12bcf5e78210c3a3.js\",\"/_next/static/chunks/2fff49b61e5460c3.js\",\"/_next/static/chunks/ee4cf50e8515470b.js\",\"/_next/static/chunks/d5971ff071020297.js\",\"/_next/static/chunks/a3bb0ecdc9474e31.js\"],\"SiteLanguageSwitcher\"]\n44:I[619051,[\"/_next/static/chunks/84cf6dafb52081f7.js\",\"/_next/static/chunks/4061e77236de545e.js\",\"/_next/static/chunks/f99709cb2125ad1a.js\",\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"/_next/static/chunks/2fc4ebd8e91ef75d.js\",\"/_next/static/chunks/da7f358801095660.js\",\"/_next/static/chunks/f64fd64132ef1c58.js\",\"/_next/static/chunks/c92192745ab0fe2a.js\",\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"/_next/static/chunks/30806729917be48a.js\",\"/_next/static/chunks/7aadca67222380d2.js\",\"/_next/static/chunks/06d36e9098247ac8.js\",\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"/_next/static/chunks/0deed52ab03f02f9.js\",\"/_next/static/chunks/29ec10aecf029f63.js\",\"/_next/static/chunks/5a97de1c4b425084.js\",\"/_next/static/chunks/00483f1215e5d1c8.js\",\"/_next/static/chunks/cb34ebf66d3b2c14.js\",\"/_next/static/chunks/04437015febf7145.js\",\"/_next/static/chunks/12bcf5e78210c3a3.js\",\"/_next/static/chunks/2fff49b61e5460c3.js\",\"/_next/static/chunks/ee4cf50e8515470b.js\",\"/_next/static/chunks/d5971ff071020297.js\",\"/_next/static/chunks/a3bb0ecdc9474e31.js\"],\"ModeToggle\"]\n45:I[680626,[\"/_next/static/chunks/84cf6dafb52081f7.js\",\"/_next/static/chunks/4061e77236de545e.js\",\"/_next/static/chunks/f99709cb2125ad1a.js\",\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"/_next/static/chunks/2fc4ebd8e91ef75d.js\",\"/_next/static/chunks/da7f358801095660.js\",\"/_next/static/chunks/f64fd64132ef1c58.js\",\"/_next/static/chunks/c92192745ab0fe2a.js\",\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"/_next/static/chunks/30806729917be48a.js\",\"/_next/static/chunks/7aadca67222380d2.js\",\"/_next/static/chunks/06d36e9098247ac8.js\",\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"/_next/static/chunks/0deed52ab03f02f9.js\",\"/_next/static/chunks/29ec10aecf029f63.js\",\"/_next/static/chunks/5a97de1c4b425084.js\",\"/_next/static/chunks/00483f1215e5d1c8.js\",\"/_next/static/chunks/cb34ebf66d3b2c14.js\",\"/_next/static/chunks/04437015febf7145.js\",\"/_next/static/chunks/12bcf5e78210c3a3.js\",\"/_next/static/chunks/2fff49b61e5460c3.js\",\"/_next/static/chunks/ee4cf50e8515470b.js\",\"/_next/static/chunks/d5971ff071020297.js\",\"/_next/static/chunks/a3bb0ecdc9474e31.js\"],\"MobileModeToggle\"]\n46:I[637037,[\"/_next/static/chunks/84cf6dafb"])</script>
1<script>self.__next_f.push([1,"52081f7.js\",\"/_next/static/chunks/4061e77236de545e.js\",\"/_next/static/chunks/f99709cb2125ad1a.js\",\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"/_next/static/chunks/2fc4ebd8e91ef75d.js\",\"/_next/static/chunks/da7f358801095660.js\",\"/_next/static/chunks/f64fd64132ef1c58.js\",\"/_next/static/chunks/c92192745ab0fe2a.js\",\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"/_next/static/chunks/30806729917be48a.js\",\"/_next/static/chunks/7aadca67222380d2.js\",\"/_next/static/chunks/06d36e9098247ac8.js\",\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"/_next/static/chunks/0deed52ab03f02f9.js\",\"/_next/static/chunks/29ec10aecf029f63.js\",\"/_next/static/chunks/5a97de1c4b425084.js\",\"/_next/static/chunks/00483f1215e5d1c8.js\",\"/_next/static/chunks/cb34ebf66d3b2c14.js\",\"/_next/static/chunks/04437015febf7145.js\",\"/_next/static/chunks/12bcf5e78210c3a3.js\",\"/_next/static/chunks/2fff49b61e5460c3.js\",\"/_next/static/chunks/ee4cf50e8515470b.js\",\"/_next/static/chunks/d5971ff071020297.js\",\"/_next/static/chunks/a3bb0ecdc9474e31.js\"],\"Button\"]\n4a:I[342337,[\"/_next/static/chunks/b718e082d0163130.js\",\"/_next/static/chunks/a3b3d605a9d78e19.js\"],\"IconMark\"]\n:HL[\"/_next/static/chunks/99114a3a19498e51.css\",\"style\"]\n:HL[\"/_next/static/chunks/77083a6360c9fb32.css\",\"style\"]\n:HL[\"/_next/static/media/ce62453a442c7f35.p.124b2306.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script>
1<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"5-BYykbz5_LYO_I-FEh8G\",\"c\":[\"\",\"pricing\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[[\"locale\",\"en\",\"d\"],{\"children\":[\"(public)\",{\"children\":[\"pricing\",{\"children\":[\"__PAGE__\",{}]}]}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/99114a3a19498e51.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[\"$L4\",[]],\"forbidden\":[[[\"$\",\"title\",null,{\"children\":\"403: This page could not be accessed.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":403}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be accessed.\"}]}]]}]}]],[]],\"unauthorized\":[[[\"$\",\"title\",null,{\"children\":\"401: You're not authorized to access this page.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:forbidden:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:forbidden:0:1:props:children:props:children:1:props:style\",\"children\":401}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:forbidden:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:forbidden:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"You're not authorized to access this page.\"}]}]]}]}]],[]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/77083a6360c9fb32.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/84cf6dafb52081f7.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/4061e77236de545e.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/f99709cb2125ad1a.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/6723ed73b0a4abaa.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/2fc4ebd8e91ef75d.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/_next/static/chunks/da7f358801095660.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/_next/static/chunks/f64fd64132ef1c58.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/_next/static/chunks/c92192745ab0fe2a.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-8\",{\"src\":\"/_next/static/chunks/7ded42ad4d5aef27.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-9\",{\"src\":\"/_next/static/chunks/30806729917be48a.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-10\",{\"src\":\"/_next/static/chunks/7a
1adca67222380d2.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-11\",{\"src\":\"/_next/static/chunks/06d36e9098247ac8.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-12\",{\"src\":\"/_next/static/chunks/3aeeb66426a36fe4.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-13\",{\"src\":\"/_next/static/chunks/0deed52ab03f02f9.js\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L5\"]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/29ec10aecf029f63.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/5a97de1c4b425084.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/00483f1215e5d1c8.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/cb34ebf66d3b2c14.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/04437015febf7145.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/_next/static/chunks/12bcf5e78210c3a3.js\",\"async\":true,\"nonce\":\"$undefined\"}],\"$L6\",\"$L7\",\"$L8\",\"$L9\"],\"$La\"]}],{\"children\":[\"$Lb\",{\"children\":[\"$Lc\",{},null,false,false]},null,false,false]},null,false,false]},null,false,false]},null,false,false],\"$Ld\",false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"S\":false}\n"])</script>
1<script>self.__next_f.push([1,"6:[\"$\",\"script\",\"script-6\",{\"src\":\"/_next/static/chunks/2fff49b61e5460c3.js\",\"async\":true,\"nonce\":\"$undefined\"}]\n7:[\"$\",\"script\",\"script-7\",{\"src\":\"/_next/static/chunks/ee4cf50e8515470b.js\",\"async\":true,\"nonce\":\"$undefined\"}]\n8:[\"$\",\"script\",\"script-8\",{\"src\":\"/_next/static/chunks/d5971ff071020297.js\",\"async\":true,\"nonce\":\"$undefined\"}]\n9:[\"$\",\"script\",\"script-9\",{\"src\":\"/_next/static/chunks/a3bb0ecdc9474e31.js\",\"async\":true,\"nonce\":\"$undefined\"}]\nb:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\nc:[\"$\",\"$1\",\"c\",{\"children\":[\"$Lf\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/b1f93fdceeb3cff2.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L10\",null,{\"children\":[\"$\",\"$11\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@12\"}]}]]}]\nd:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L13\",null,{\"children\":\"$L14\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L15\",null,{\"children\":[\"$\",\"$11\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L16\"}]}]}],null]}]\n17:T835,"])</script>
1<script>self.__next_f.push([1,"{\"@context\":\"https://schema.org\",\"@type\":\"SoftwareApplication\",\"name\":\"ChatOtter\",\"applicationCategory\":\"BusinessApplication\",\"operatingSystem\":\"Web\",\"url\":\"https://www.chatotter.ai\",\"description\":\"Mobile-first AI lead agent grounded in your knowledge base. Ingest URLs, documents, or Notion pages; connect once and deploy across WhatsApp, Zalo, Telegram, LINE, Messenger and a website widget; capture leads where customers already are. LangGraph orchestration over Anthropic Claude with pgvector retrieval.\",\"offers\":[{\"@type\":\"Offer\",\"name\":\"Free\",\"price\":\"0\",\"priceCurrency\":\"USD\",\"description\":\"Free tier — $0/month, no credit card. 1 AI chatbot, 50 sessions/month, 10 documents, 10 URLs. Includes ChatOtter branding on the widget.\"},{\"@type\":\"Offer\",\"name\":\"Starter\",\"price\":\"49\",\"priceCurrency\":\"USD\",\"description\":\"Starter tier — $49/month. 14-day free trial, cancel anytime. WhatsApp + Zalo OA + Messenger + Telegram + web widget. 2 AI agents, lead capture forms with notifications, 1,000 sessions/month, 100 documents, 50 URLs, 3 tool integrations.\"},{\"@type\":\"Offer\",\"name\":\"Pro\",\"price\":\"149\",\"priceCurrency\":\"USD\",\"description\":\"Pro tier — $149/month. Scales Starter up: adds LINE + paid Zalo ZNS + Cal.com booking. 3 AI agents, 5 team seats, unlimited documents, 500 URL sources, 500 MB knowledge base, 5,000 sessions/month, 10 tool integrations. \\\"Ask a person\\\" handoff. Workspace activity log (audit trail of who changed what).\"},{\"@type\":\"Offer\",\"name\":\"Premium\",\"price\":\"249\",\"priceCurrency\":\"USD\",\"description\":\"Premium tier — $249/month. The automation + scale tier: workflow automations (n8n/Make) and weekly knowledge-base auto-retrain, plus white-label (remove ChatOtter branding). 10 AI agents, 15 team seats, 20,000 sessions/month, 2 GB knowledge base, unlimited tool integrations. Priority support.\"},{\"@type\":\"Offer\",\"name\":\"Enterprise\",\"description\":\"Enterprise tier — contact sales for pricing. Custom volume on sessions, documents, URLs. Unlimited agents and team seats. White-label widget (custom logo + colors). Team RBAC. Dedicated account manager + SLA.\"}]}"])</script>
1<script>self.__next_f.push([1,"a:[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"ChatOtter\\\",\\\"legalName\\\":\\\"AgentAxis Corp\\\",\\\"url\\\":\\\"https://www.chatotter.ai\\\",\\\"logo\\\":\\\"https://www.chatotter.ai/android-chrome-512x512.png\\\",\\\"description\\\":\\\"Mobile-first AI lead-agent platform for small and mid-sized businesses. Customers build a grounded agent from their knowledge base, connect it once, and deploy it across WhatsApp, Zalo, Telegram, LINE, Messenger and their website — meeting customers on the channels they already use and capturing leads.\\\",\\\"disambiguatingDescription\\\":\\\"ChatOtter is an AI-powered lead agent platform operated by AgentAxis Corp. It is NOT affiliated with Otter.ai, the unrelated meeting-transcription / note-taking product by AISense Inc.\\\",\\\"foundingDate\\\":\\\"2026\\\",\\\"founder\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Henry Nguyen\\\"},\\\"sameAs\\\":[\\\"https://www.facebook.com/chatotter\\\",\\\"https://www.linkedin.com/company/chatotter\\\"]}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$17\"}}],[\"$\",\"$L18\",null,{}],[\"$\",\"a\",null,{\"href\":\"#main-content\",\"className\":\"fixed top-0 left-0 z-[100] -translate-y-full rounded-br-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-transform focus:translate-y-0\",\"children\":\"Skip to main content\"}],\"$L19\",\"$L1a\",\"$L1b\"]\n"])</script>
1<script>self.__next_f.push([1,"1a:[\"$\",\"main\",null,{\"id\":\"main-content\",\"tabIndex\":-1,\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]\n"])</script>
1<script>self.__next_f.push([1,"1b:[\"$\",\"footer\",null,{\"className\":\"site-footer bg-muted/20 relative mt-auto w-full py-8 xl:py-16 2xl:py-20\",\"children\":[\"$\",\"div\",null,{\"className\":\"container\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col space-y-8 lg:flex-row lg:space-y-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex w-full gap-x-3 lg:w-4/12 xl:w-4/12 xl:space-x-6 2xl:space-x-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-y-4\",\"children\":[[\"$\",\"div\",null,{\"children\":[\"$\",\"$L1c\",null,{\"href\":\"/\",\"children\":[\"$\",\"$L1d\",null,{\"src\":\"https://d15l3i9lwgubhl.cloudfront.net/chatotter/chatotter-stacked-light.png\",\"alt\":\"ChatOtter\",\"width\":1000,\"height\":800,\"quality\":100,\"unoptimized\":true,\"className\":\"h-32 w-auto lg:h-40\",\"priority\":true}]}]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-y-4\",\"children\":[[\"$\",\"div\",null,{\"children\":[\"$\",\"p\",null,{\"className\":\"text-muted-foreground text-sm\",\"children\":[[\"$\",\"$L1e\",null,{\"fallback\":\"marketing.footerDescription\",\"children\":\"$L1f\"}],[\"$\",\"span\",null,{\"className\":\"mt-3 block space-y-0.5 text-xs\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-medium\",\"children\":\"AgentAxis Corp\"}],[\"$\",\"span\",null,{\"className\":\"block\",\"children\":[[\"$\",\"$L1e\",null,{\"fallback\":\"marketing.footerMailAddressLabel\",\"children\":\"$L20\"}],\" \",\"Austin, TX, USA\"]}],[\"$\",\"span\",null,{\"className\":\"block\",\"children\":[[\"$\",\"$L1e\",null,{\"fallback\":\"marketing.footerOperationsLabel\",\"children\":\"$L21\"}],\" \",\"20/5 Hà Thị Thân Street, Đà Nẵng, Việt Nam\"]}],[\"$\",\"span\",null,{\"className\":\"block\",\"children\":[\"$\",\"a\",null,{\"href\":\"mailto:[email protected]\",\"className\":\"hover:underline\",\"children\":\"[email protected]\"}]}]]}]]}]}],[\"$\",\"div\",null,{\"className\":\"text-muted-foreground flex text-xs\",\"children\":[\"$\",\"p\",null,{\"children\":[\"$\",\"$L1e\",null,{\"fallback\":\"marketing.copyright\",\"children\":\"$L22\"}]}]}]]}]]}]}],[\"$\",\"nav\",null,{\"aria-label\":\"Footer navigation\",\"className\":\"flex w-full flex-1 flex-col gap-y-4 lg:flex-row lg:justify-end lg:gap-x-6 lg:gap-y-0 xl:gap-x-12\",\"children\":[[\"$\",\"div\",\"0\",{\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-y-1\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-heading text-secondary-foreground/90 text-sm font-medium\",\"children\":[\"$\",\"$L1e\",null,{\"fallback\":\"marketing.about\",\"children\":\"$L23\"}]}],[\"$\",\"ul\",null,{\"className\":\"flex flex-col gap-y-1\",\"children\":[[\"$\",\"li\",\"0\",{\"className\":\"text-muted-foreground text-sm font-medium hover:underline [\u0026\u003ea]:transition-colors\",\"children\":[\"$\",\"a\",null,{\"href\":\"/blog\",\"className\":\"$undefined\",\"children\":[\"$\",\"$L1e\",null,{\"fallback\":\"marketing.blog\",\"children\":\"$L24\"}]}]}],[\"$\",\"li\",\"1\",{\"className\":\"text-muted-foreground text-sm font-medium hover:underline [\u0026\u003ea]:transition-colors\",\"children\":[\"$\",\"a\",null,{\"href\":\"/help\",\"className\":\"$undefined\",\"children\":[\"$\",\"$L1e\",null,{\"fallback\":\"marketing.help\",\"children\":\"$L25\"}]}]}],[\"$\",\"li\",\"2\",{\"className\":\"text-muted-foreground text-sm font-medium hover:underline [\u0026\u003ea]:transition-colors\",\"children\":[\"$\",\"a\",null,{\"href\":\"/changelog\",\"className\":\"$undefined\",\"children\":[\"$\",\"$L1e\",null,{\"fallback\":\"marketing.changelog\",\"children\":\"$L26\"}]}]}],[\"$\",\"li\",\"3\",{\"className\":\"text-muted-foreground text-sm font-medium hover:underline [\u0026\u003ea]:transition-colors\",\"children\":[\"$\",\"a\",null,{\"href\":\"/faq\",\"className\":\"$undefined\",\"children\":[\"$\",\"$L1e\",null,{\"fallback\":\"marketing.faq\",\"children\":\"$L27\"}]}]}],[\"$\",\"li\",\"4\",{\"className\":\"text-muted-foreground text-sm font-medium hover:underline [\u0026\u003ea]:transition-colors\",\"children\":[\"$\",\"a\",null,{\"href\":\"https://status.chatotter.ai\",\"className\":\"$undefined\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[\"$\",\"$L1e\",null,{\"fallback\":\"marketing.status\",\"children\":\"$L28\"}]}]}]]}]]}]}],[\"$\",\"div\",\"1\",{\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-y-1\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-heading text-secondary-foreground
1/90 text-sm font-medium\",\"children\":[\"$\",\"$L1e\",null,{\"fallback\":\"marketing.legal\",\"children\":\"$L29\"}]}],[\"$\",\"ul\",null,{\"className\":\"flex flex-col gap-y-1\",\"children\":[[\"$\",\"li\",\"0\",{\"className\":\"text-muted-foreground text-sm font-medium hover:underline [\u0026\u003ea]:transition-colors\",\"children\":[\"$\",\"a\",null,{\"href\":\"/terms-of-service\",\"className\":\"$undefined\",\"children\":[\"$\",\"$L1e\",null,{\"fallback\":\"marketing.termsOfService\",\"children\":\"$L2a\"}]}]}],[\"$\",\"li\",\"1\",{\"className\":\"text-muted-foreground text-sm font-medium hover:underline [\u0026\u003ea]:transition-colors\",\"children\":[\"$\",\"a\",null,{\"href\":\"/privacy-policy\",\"className\":\"$undefined\",\"children\":[\"$\",\"$L1e\",null,{\"fallback\":\"marketing.privacyPolicy\",\"children\":\"$L2b\"}]}]}],[\"$\",\"li\",\"2\",{\"className\":\"text-muted-foreground text-sm font-medium hover:underline [\u0026\u003ea]:transition-colors\",\"children\":\"$L2c\"}],\"$L2d\",\"$L2e\"]}]]}]}]]}]]}]}]}]\n"])</script>
1<script>self.__next_f.push([1,"2c:[\"$\",\"a\",null,{\"href\":\"/cookie-policy\",\"className\":\"$undefined\",\"children\":[\"$\",\"$L1e\",null,{\"fallback\":\"marketing.cookiePolicy\",\"children\":\"$L2f\"}]}]\n2d:[\"$\",\"li\",\"3\",{\"className\":\"text-muted-foreground text-sm font-medium hover:underline [\u0026\u003ea]:transition-colors\",\"children\":[\"$\",\"a\",null,{\"href\":\"/refund-policy\",\"className\":\"$undefined\",\"children\":[\"$\",\"$L1e\",null,{\"fallback\":\"marketing.refundPolicy\",\"children\":\"$L30\"}]}]}]\n2e:[\"$\",\"li\",\"4\",{\"className\":\"text-muted-foreground text-sm font-medium hover:underline [\u0026\u003ea]:transition-colors\",\"children\":[\"$\",\"a\",null,{\"href\":\"#\",\"className\":\"cookiebot-renew-link\",\"children\":\"Your Privacy Choices\"}]}]\n1f:\"Build and deploy your AI lead agent into multiple channels in under 30 minutes. Works with WhatsApp, Zalo, Telegram, LINE, Messenger and your website — plus the tools you already use. Source-cited, never invents. Built for SMEs.\"\n20:\"Mail Address:\"\n21:\"Operations:\"\n22:\"Copyright © AgentAxis Corp 2026. All Rights Reserved.\"\n23:\"About\"\n24:\"Blog\"\n25:\"Help Center\"\n26:\"Changelog\"\n27:\"FAQ\"\n28:\"Status\"\n29:\"Legal\"\n2a:\"Terms of Service\"\n2b:\"Privacy Policy\"\n2f:\"Cookie Policy\"\n30:\"Refund Policy\"\n32:Td04,"])</script>
1<script>self.__next_f.push([1,"window['__ENV'] = {\"NEXT_PUBLIC_AGENT_BUILDER_READY\":\"true\",\"NEXT_PUBLIC_ANALYTICS_READY\":\"false\",\"NEXT_PUBLIC_API_URL\":\"https://api.agentaxis.io\",\"NEXT_PUBLIC_BOOK_DEMO_URL\":\"https://calendly.com/henry-ag/discovery\",\"NEXT_PUBLIC_CAPTCHA_SITE_KEY\":\"0x4AAAAAADNSNBwfVS79ltYr\",\"NEXT_PUBLIC_COMING_SOON\":\"false\",\"NEXT_PUBLIC_COOKIEBOT_CBID\":\"36a6c7ba-02c1-49de-8fcf-72c6619d2b0c\",\"NEXT_PUBLIC_ENABLE_CUSTOM_ROLES\":\"true\",\"NEXT_PUBLIC_FACEBOOK_PIXEL_ID\":\"1481701683262338\",\"NEXT_PUBLIC_FB_OAUTH_ENABLED\":\"true\",\"NEXT_PUBLIC_GTM_ID\":\"GTM-MDK39KK3\",\"NEXT_PUBLIC_INSTAGRAM_ENABLED\":\"true\",\"NEXT_PUBLIC_LEGAL_ADDRESS\":\"Austin, TX, USA\",\"NEXT_PUBLIC_LEGAL_COMPANY_NAME\":\"AgentAxis Corp\",\"NEXT_PUBLIC_LINE_ENABLED\":\"true\",\"NEXT_PUBLIC_MESSENGER_ENABLED\":\"true\",\"NEXT_PUBLIC_META_APP_ID\":\"968570972626452\",\"NEXT_PUBLIC_META_WHATSAPP_CONFIG_ID\":\"1639673910579987\\n\",\"NEXT_PUBLIC_PREMIUM_READY\":\"true\",\"NEXT_PUBLIC_PRODUCT_NAME\":\"ChatOtter AI\",\"NEXT_PUBLIC_PRO_READY\":\"true\",\"NEXT_PUBLIC_SITE_URL\":\"https://app.chatotter.ai\",\"NEXT_PUBLIC_STRIPE_LIVE_MODE\":\"true\",\"NEXT_PUBLIC_STRIPE_PREMIUM_MONTHLY_PLAN_ID\":\"price_1TWtgtPilM08HSjvhUZImD1d\",\"NEXT_PUBLIC_STRIPE_PREMIUM_MONTHLY_PLAN_ID_LIVE\":\"price_1TbcnhBErVvW6epnVwAazafx\",\"NEXT_PUBLIC_STRIPE_PREMIUM_YEARLY_PLAN_ID\":\"price_1TbciNPilM08HSjvn5QhqWqt\",\"NEXT_PUBLIC_STRIPE_PREMIUM_YEARLY_PLAN_ID_LIVE\":\"price_1TbcnsBErVvW6epnedqNiRrQ\",\"NEXT_PUBLIC_STRIPE_PRO_MONTHLY_PLAN_ID\":\"price_1TbchtPilM08HSjviRbC8687\",\"NEXT_PUBLIC_STRIPE_PRO_MONTHLY_PLAN_ID_LIVE\":\"price_1TbcwKBErVvW6epnV4EC5B27\",\"NEXT_PUBLIC_STRIPE_PRO_YEARLY_PLAN_ID\":\"price_1Tbci2PilM08HSjvcFhUZ0Yc\",\"NEXT_PUBLIC_STRIPE_PRO_YEARLY_PLAN_ID_LIVE\":\"price_1TbcllBErVvW6epnPSCUY1TK\",\"NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY\":\"pk_test_51TEhxZPilM08HSjvm0ywtb0KchLmWGCYhZKn1Mpuj6e1f4ZsMMGUOWYNeTBqLyOTMtRb6IOyOYurnofWtjqJU3B2005Dzfh83W\",\"NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY_LIVE\":\"pk_live_51TEhxPBErVvW6epnmXVF9uyhZbRS2p0ptF34EJChFAzyUKkJ0svErWRg3xSbRbhbCcJ0xFN8fFg7ySnHGG13i8BE00hdp6qDa9\",\"NEXT_PUBLIC_STRIPE_STARTER_MONTHLY_PLAN_ID\":\"price_1Tbch8PilM08HSjvHdX5Nyr9\",\"NEXT_PUBLIC_STRIPE_STARTER_MONTHLY_PLAN_ID_LIVE\":\"price_1TcS4uBErVvW6epnclcFtTKr\",\"NEXT_PUBLIC_STRIPE_STARTER_YEARLY_PLAN_ID\":\"price_1TbchKPilM08HSjv7fXp3exY\",\"NEXT_PUBLIC_STRIPE_STARTER_YEARLY_PLAN_ID_LIVE\":\"price_1TbclQBErVvW6epn9JLAwGg4\",\"NEXT_PUBLIC_SUPPORT_EMAIL\":\"[email protected]\",\"NEXT_PUBLIC_TELEGRAM_ENABLED\":\"true\",\"NEXT_PUBLIC_WIDGET_CDN_URL\":\"https://cdn.chatotter.ai/v1\",\"NEXT_PUBLIC_ZALO_APP_ID\":\"2510014586229544322\",\"NEXT_PUBLIC_DEFAULT_LOCALE\":\"en\",\"NEXT_PUBLIC_DEFAULT_THEME_MODE\":\"light\",\"NEXT_PUBLIC_AUTH_PASSWORD\":\"true\",\"NEXT_PUBLIC_AUTH_MAGIC_LINK\":\"false\",\"NEXT_PUBLIC_AUTH_OAUTH_PROVIDERS\":\"google\",\"NEXT_PUBLIC_BILLING_PROVIDER\":\"stripe\",\"NEXT_PUBLIC_ENABLE_THEME_TOGGLE\":\"true\",\"NEXT_PUBLIC_ACCOUNT_MODE\":\"organizations-only\",\"NEXT_PUBLIC_DISPLAY_TERMS_AND_CONDITIONS_CHECKBOX\":\"false\",\"NEXT_PUBLIC_PASSWORD_REQUIRE_SPECIAL_CHARS\":\"false\",\"NEXT_PUBLIC_PASSWORD_REQUIRE_NUMBERS\":\"false\",\"NEXT_PUBLIC_PASSWORD_REQUIRE_UPPERCASE\":\"false\",\"NEXT_PUBLIC_ENABLE_VERSION_UPDATER\":\"false\",\"NEXT_PUBLIC_VERSION_UPDATER_REFETCH_INTERVAL_SECONDS\":\"3600\",\"NEXT_PUBLIC_KEYSTATIC_CONTENT_PATH\":\"./content\",\"NEXT_PUBLIC_KEYSTATIC_STORAGE_KIND\":\"local\",\"NEXT_PUBLIC_MONITORING_PROVIDER\":\"\",\"NEXT_PUBLIC_SENTRY_DSN\":\"\",\"NEXT_PUBLIC_SENTRY_ENVIRONMENT\":\"development\"}"])</script>
1<script>self.__next_f.push([1,"5:[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"bg-background min-h-screen antialiased md:overscroll-y-none roboto_87f1a2bc-module__Rir4Aa__variable light\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"$L31\",null,{\"strategy\":\"beforeInteractive\",\"nonce\":\"$undefined\",\"dangerouslySetInnerHTML\":{\"__html\":\"$32\"}}]}],\"$L33\"]}]\n4:[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"light\",\"children\":[\"$\",\"body\",null,{\"className\":\"bg-background\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex h-screen flex-col items-center justify-center gap-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-3xl font-semibold\",\"children\":\"404 - Not Found\"}],[\"$\",\"div\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Sorry, the page you are looking for does not exist.\"}],[\"$\",\"a\",null,{\"className\":\"flex items-center gap-x-2 rounded-md border p-2 text-sm\",\"href\":\"/\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-left size-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1l729n\",{\"d\":\"m12 19-7-7 7-7\"}],[\"$\",\"path\",\"x3x0zl\",{\"d\":\"M19 12H5\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Return to home\"}]]}]]}]}]}]\n"])</script>
1<script>self.__next_f.push([1,"33:[\"$\",\"body\",null,{\"children\":[[\"$\",\"$L34\",null,{\"color\":\"#EF680C\",\"height\":2,\"showSpinner\":false,\"shadow\":\"0 0 8px #EF680C, 0 0 4px #EF680C\"}],[\"$\",\"$L35\",null,{\"theme\":\"light\",\"locale\":\"en\",\"messages\":{\"common\":{\"homeTabLabel\":\"Home\",\"homeTabDescription\":\"Welcome to your home page\",\"accountMembers\":\"Team Members\",\"membersTabDescription\":\"Here you can manage the members of your team.\",\"billingTabLabel\":\"Billing\",\"billingTabDescription\":\"Manage your billing and subscription\",\"dashboardTabLabel\":\"Dashboard\",\"settingsTabLabel\":\"Settings\",\"profileSettingsTabLabel\":\"Profile\",\"pricing\":\"Pricing\",\"subscriptionSettingsTabLabel\":\"Subscription\",\"dashboardTabDescription\":\"An overview of your account's activity and performance across all your projects.\",\"settingsTabDescription\":\"Manage your settings and preferences.\",\"emailAddress\":\"Email Address\",\"password\":\"Password\",\"modalConfirmationQuestion\":\"Are you sure you want to continue?\",\"imageInputLabel\":\"Click here to upload an image\",\"imageRequirements\":\"Max 2MB. Formats: JPEG, PNG, GIF, WebP.\",\"removingImage\":\"Removing image...\",\"cancel\":\"Cancel\",\"clear\":\"Clear\",\"notFound\":\"Not Found\",\"backToHome\":\"Back to Home\",\"backToHomePage\":\"Back to Home Page\",\"goBack\":\"Go Back\",\"genericServerError\":\"Sorry, something went wrong.\",\"genericServerErrorHeading\":\"Sorry, something went wrong while processing your request. Please contact us if the issue persists.\",\"pageNotFound\":\"Sorry, this page does not exist.\",\"pageNotFoundSubHeading\":\"Apologies, the page you were looking for was not found\",\"genericError\":\"Sorry, something went wrong.\",\"genericErrorSubHeading\":\"Apologies, an error occurred while processing your request. Please contact us if the issue persists.\",\"anonymousUser\":\"Anonymous\",\"tryAgain\":\"Try Again\",\"theme\":\"Theme\",\"themeDescription\":\"Choose how the app looks to you. Select a single theme, or sync with your system and automatically switch between day and night themes.\",\"lightTheme\":\"Light\",\"darkTheme\":\"Dar
1k\",\"systemTheme\":\"System\",\"language\":\"Language\",\"languageDescription\":\"Select your preferred language for the application interface.\",\"expandSidebar\":\"Expand Sidebar\",\"collapseSidebar\":\"Collapse Sidebar\",\"documentation\":\"Documentation\",\"getStarted\":\"Get Started\",\"getStartedWithPlan\":\"Get Started with {plan}\",\"retry\":\"Retry\",\"contactUs\":\"Contact Us\",\"loading\":\"Loading. Please wait...\",\"yourAccounts\":\"Your Accounts\",\"continueKey\":\"Continue\",\"skip\":\"Skip\",\"info\":\"Info\",\"signedInAs\":\"Signed in as\",\"pageOfPages\":\"Page {page} of {total}\",\"showingRecordCount\":\"Showing {pageSize} of {totalCount} rows\",\"noData\":\"No data available\",\"pageNotFoundHeading\":\"Ouch! :|\",\"errorPageHeading\":\"Ouch! :|\",\"newVersionAvailable\":\"New version available\",\"newVersionAvailableDescription\":\"A new version of the app is available. It is recommended to refresh the page to get the latest updates and avoid any issues.\",\"newVersionSubmitButton\":\"Reload and Update\",\"back\":\"Back\",\"routes\":{\"account\":\"Account\",\"members\":\"Members\",\"billing\":\"Billing\",\"dashboard\":\"Dashboard\",\"settings\":\"Settings\",\"profile\":\"Profile\",\"application\":\"Application\",\"organizationSettings\":\"Workspace\",\"security\":\"Security\",\"preferences\":\"Preferences\",\"roles\":\"Roles\",\"notifications\":\"Notifications\",\"activity\":\"Activity\",\"guardrails\":\"Guardrails\",\"yourAccount\":\"Your Account\"},\"roles\":{\"owner\":{\"label\":\"Owner\"},\"member\":{\"label\":\"Member\"}},\"otp\":{\"requestVerificationCode\":\"Request Verification Code\",\"requestVerificationCodeDescription\":\"We must verify your identity to continue with this action. We'll send a verification code to the email address {email}.\",\"sendingCode\":\"Sending Code...\",\"sendVerificationCode\":\"Send Verification Code\",\"enterVerificationCode\":\"Enter Verification Code\",\"codeSentToEmail\":\"We've sent a verification code to the email address {email}.\",\"verificationCode\":\"Verification Code\",\"enterCodeFromEmail\":\"Enter the 6-digit code we sent to your email.\",\"verifying\":\"Verifying...\",\"verifyCode\":\"Verify Code\",\"requestNewCode\":\"Request New Code\",\"errorSendingCode\":\"Error sending code. Please try again.\",\"errors\":{\"invalidEmail\":\"Please enter a valid email address\",\"codeLength\":\"Code must be exactly 6 digits\"}},\"cookieBanner\":{\"title\":\"Hey, we use cookies 🍪\",\"description\":\"This website uses cookies to ensure you get the best experience on our website.\",\"reject\":\"Reject\",\"accept\":\"Accept\"},\"docsSearch\":{\"triggerLabel\":\"Search docs...\",\"dialogTitle\":\"Search documentation\",\"dialogDescription\":\"Search through help articles and documentation\",\"placeholder\":\"Search documentation...\",\"emptyState\":\"Start typing to search the documentation\",\"searching\":\"Searching...\",\"noResults\":\"No results found for \\\"{query}\\\"\",\"navigate\":\"Navigate\",\"select\":\"Select\",\"close\":\"Close\"}},\"auth\":{\"signUpHeading\":\"Create an account\",\"signUp\":\"Sign Up\",\"signUpSubheading\":\"Fill the form below to create an account.\",\"signInHeading\":\"Sign in to your account\",\"signInSubheading\":\"Welcome back! Please enter your details\",\"signIn\":\"Sign In\",\"getStarted\":\"Get started\",\"updatePassword\":\"Update Password\",\"signOut\":\"Sign out\",\"signingIn\":\"Signing in...\",\"signingUp\":\"Signing up...\",\"loadingCaptcha\":\"Making sure you're not a robot...\",\"doNotHaveAccountYet\":\"Do not have an account yet?\",\"alreadyHaveAnAccount\":\"Already have an account?\",\"signUpToAcceptInvite\":\"Please sign in/up to accept the invite\",\"clickToAcceptAs\":\"Click the button below to accept the invite with as \u003cb\u003e{email}\u003c/b\u003e\",\"acceptInvite\":\"Accept invite\",\"acceptingInvite\":\"Accepting Invite...\",\"acceptInviteSuccess\":\"Invite successfully accepted\",\"acceptInviteError\":\"Error encountered while accepting invite\",\"acceptInviteWithDifferentAccount\":\"Want to accept the invite with a different account?\",\"alreadyHaveAccountStatement\":\"I already have an account, I want to sign in instead\",\"doNotHaveAccountStatement\":\"I do not have an account, I want to sign up instead\",\"signInWithProvider\":\"Sign in with {provider}\",\"signInWithPhoneNumber\":\"Sign in with Phone Number\",\"signInWithEmail\":\"Sign in with Email\",\"signUpWithEmail\":\"Sign up with Email\",\"passwordHint\"
1:\"Ensure it's at least 8 characters\",\"repeatPasswordHint\":\"Type your password again\",\"repeatPassword\":\"Repeat password\",\"passwordForgottenQuestion\":\"Forgot Password?\",\"passwordResetLabel\":\"Reset Password\",\"passwordResetSubheading\":\"Enter your email address below. You will receive a link to reset your password.\",\"passwordResetSuccessMessage\":\"If an account exists for that email, we've sent a password reset link. Check your inbox (and spam) in a few minutes. If nothing arrives, the address may not be registered — try signing up instead.\",\"passwordRecoveredQuestion\":\"Password recovered?\",\"resetPasswordHeading\":\"Set a new password\",\"resetPasswordSubheading\":\"Enter your new password below to reset your account password.\",\"resetPassword\":\"Reset Password\",\"resettingPassword\":\"Resetting password...\",\"passwordResetSuccessToast\":\"Password successfully reset! You can now sign in.\",\"passwordLengthError\":\"Please provide a password with at least 6 characters\",\"sendEmailLink\":\"Send Email Link\",\"sendingEmailLink\":\"Sending Email Link...\",\"sendLinkSuccessDescription\":\"Check your email, we just sent you a link. Follow the link to sign in.\",\"sendLinkSuccess\":\"We sent you a link by email\",\"sendLinkSuccessToast\":\"Link successfully sent\",\"getNewLink\":\"Get a new link\",\"verifyCodeHeading\":\"Verify your account\",\"verificationCode\":\"Verification Code\",\"verificationCodeHint\":\"Enter the code we sent you by SMS\",\"verificationCodeSubmitButtonLabel\":\"Submit Verification Code\",\"sendingMfaCode\":\"Sending Verification Code...\",\"verifyingMfaCode\":\"Verifying code...\",\"sendMfaCodeError\":\"Sorry, we couldn't send you a verification code\",\"verifyMfaCodeSuccess\":\"Code verified! Signing you in...\",\"verifyMfaCodeError\":\"Ops! It looks like the code is not correct\",\"reauthenticate\":\"Reauthenticate\",\"reauthenticateDescription\":\"For security reasons, we need you to re-authenticate\",\"errorAlertHeading\":\"Sorry, something went wrong\",\"emailNotVerifiedHeading\":\"Email not verified\",\"emailNotVerifiedBody\":\"Your email address has not been verified yet. Please check your inbox for the verification link, or click below to resend it.\",\"emailConfirmationAlertHeading\":\"We sent you a confirmation email.\",\"emailConfirmationAlertBody\":\"Welcome! Please check your email and click the link to verify your account.\",\"emailConfirmationAlertSentTo\":\"Sent to:\",\"resendLink\":\"Resend link\",\"resendLinkSuccessDescription\":\"We sent you a new link to your email! Follow the link to sign in.\",\"resendLinkSuccess\":\"Check your email!\",\"authenticationErrorAlertHeading\":\"Authentication Error\",\"authenticationErrorAlertBody\":\"Sorry, we could not authenticate you. Please try again.\",\"sendEmailCode\":\"Get code to your Email\",\"sendingEmailCode\":\"Sending code...\",\"resetPasswordError\":\"Sorry, we could not reset your password. Please try again.\",\"emailPlaceholder\":\"[email protected]\",\"inviteAlertHeading\":\"You have been invited to join a team\",\"inviteAlertBody\":\"Please sign in or sign up to accept the invite and join the team.\",\"acceptTermsAndConditions\":\"I accept the \u003cTermsOfServiceLink /\u003e and \u003cPrivacyPolicyLink /\u003e\",\"termsOfService\":\"Terms of Service\",\"privacyPolicy\":\"Privacy Policy\",\"orContinueWith\":\"Or continue with\",\"redirecting\":\"You're in! Please wait...\",\"useBackupCode\":\"Use a backup code instead\",\"useBackupCodeHeading\":\"Use a backup code\",\"backupCodeDescription\":\"Enter one of your backup codes to access your account. The format is XXXX-XXXX.\",\"invalidBackupCode\":\"Invalid backup code. Please try again.\",\"verifyingBackupCode\":\"Verifying backup code...\",\"verifyBackupCode\":\"Verify Backup Code\",\"useAuthenticatorApp\":\"Use authenticator app instead\",\"trustThisDevice\":\"Trust this device for 60 days\",\"trustThisDeviceDescription\":\"Don't ask for codes on this device for 60 days\",\"mfaSessionExpired\":\"Your verification session expired. Please sign in again.\",\"lastUsedMethodPrefix\":\"You last signed in with\",\"methodPassword\":\"email and password\",\"methodOtp\":\"OTP code\",\"methodMagicLink\":\"email link\",\"methodOauth\":\"social sign-in\",\"methodEthereum\"
1:\"Ethereum\",\"methodOauthWithProvider\":\"\u003cprovider\u003e{provider}\u003c/provider\u003e\",\"methodDefault\":\"another method\",\"existingAccountHint\":\"You previously signed in with \u003cmethod\u003e{methodName}\u003c/method\u003e. \u003csignInLink\u003eAlready have an account?\u003c/signInLink\u003e\",\"linkAccountToSignIn\":\"Link account to sign in\",\"linkAccountToSignInDescription\":\"Add one or more sign-in methods to your account\",\"noIdentityLinkedTitle\":\"No authentication method added\",\"noIdentityLinkedDescription\":\"You haven't added any authentication methods yet. Are you sure you want to continue? You can set up sign-in methods later in your personal workspace settings.\",\"emailLockedForInvitation\":\"This email is required for your invitation\",\"sessionExpiredTitle\":\"Session expired\",\"sessionExpiredDescription\":\"For your security we signed you out after a period of inactivity. Sign back in to pick up where you left off.\",\"errors\":{\"passwordsDoNotMatch\":\"Passwords do not match\",\"minPasswordSpecialChars\":\"Password must contain at least {minSpecialChars} special characters\",\"minPasswordNumbers\":\"Password must contain at least 1 number\",\"uppercasePassword\":\"Password must contain at least 1 uppercase letter\",\"minPasswordLength\":\"Password must be at least {minLength} characters\",\"maxPasswordLength\":\"Password must be at most {maxLength} characters\",\"same_password\":\"The password cannot be the same as the current password\",\"weakPassword\":{\"title\":\"Password is too weak\",\"description\":\"Your password does not meet the security requirements:\",\"reasons\":{\"length\":\"Password must be at least 8 characters long\",\"characters\":\"Password must contain lowercase, uppercase, numbers, and special characters\",\"pwned\":\"This password has been found in a data breach. Please choose a different password\"}}},\"useSmsCode\":\"Text me a code\",\"smsCodeHeading\":\"Enter the code we texted you\",\"smsCodeDescription\":\"We sent a 6-digit code to your phone.\",\"smsCodeSent\":\"Code sent — check your phone.\",\"smsCodeSendFailed\":\"We couldn't send an SMS code. Try your authenticator app instead.\",\"resendSmsCode\":\"Resend code\"},\"account\":{\"updatePasswordSuccess\":\"Password updated successfully\",\"updatePasswordSuccessMessage\":\"Your password has been successfully updated!\",\"updatePasswordError\":\"Encountered an error. Please try again\",\"updatePasswordLoading\":\"Updating password...\",\"updatePasswordCardTitle\":\"Update your Password\",\"updatePasswordCardDescription\":\"Update your password to keep your account secure.\",\"currentPassword\":\"Current Password\",\"newPassword\":\"New Password\",\"repeatPassword\":\"Repeat New Password\",\"updatePasswordSubmitLabel\":\"Update Password\",\"updateEmailCardTitle\":\"Update your Email\",\"updateEmailCardDescription\":\"Update your email address. For security, both your current and new email addresses must be verified.\",\"currentEmailLabel\":\"Current email:\",\"newEmail\":\"Your New Email\",\"emailsNotMatching\":\"The emails you entered do not match\",\"passwordNotMatching\":\"The passwords you entered do not match\",\"repeatEmail\":\"Repeat Email\",\"updateEmailSubmitLabel\":\"Update Email Address\",\"updateEmailSuccess\":\"Email change request submitted\",\"updateEmailSuccessMessage\":\"We've sent an approval request to your current email address. After you approve, a verification email will be sent to your new address. Both steps are required to complete the change.\",\"updateEmailLoading\":\"Updating your email...\",\"updateEmailError\":\"Email not updated. Please try again\",\"verifyActivationCodeDe
1scription\":\"Enter the 6-digit code generated by your authenticator app in the field above\",\"submitVerificationCode\":\"Submit Verification Code\",\"verifyingCode\":\"Verifying code...\",\"errors\":{\"invalidEmail\":\"Invalid email address\",\"passwordRequired\":\"Password is required\",\"codeLength\":\"Code must be exactly 6 digits\"}},\"organizations\":{\"membersPageHeading\":\"Members\",\"membersPageHeadingDescription\":\"Manage your workspace members and invitations\",\"inviteMembersButton\":\"Invite Members\",\"inviteMemberDescription\":\"Send an invitation to add a new member to your workspace.\",\"inviteMemberHelpText\":\"The invited user will receive an email with instructions to join your workspace.\",\"sendInvite\":\"Send Invite\",\"invitingMembers\":\"Inviting...\",\"errorLoadingRolesConfig\":\"Error loading roles config\",\"errorLoadingRolesConfigDescription\":\"Sorry, we couldn't load the roles for your workspace. Please try again later.\",\"roles\":{\"owner\":\"Owner\",\"admin\":\"Admin\",\"member\":\"Member\",\"defaults\":{\"owner\":{\"description\":\"Full access to all workspace resources and settings\"},\"admin\":{\"description\":\"Can manage members, billing, and most workspace settings\"},\"member\":{\"description\":\"Basic access with ability to invite others\"}},\"noRole\":\"No role\",\"pageTitleSuffix\":\" - Roles\",\"pageHeading\":\"Roles\",\"pageDescription\":\"Manage, create, and edit roles and their permissions for your workspace\",\"defaultRole\":\"Default\",\"columnName\":\"Name\",\"columnPosition\":\"Position\",\"columnMembers\":\"Members\",\"columnInvitations\":\"Invitations\",\"columnDescription\":\"Description\",\"memberCount\":\"member\",\"membersCount\":\"members\",\"pending\":\"pending\",\"noRoles\":\"No roles configured\",\"noRolesDescription\":\"Create custom roles to define specific permissions for your team\",\"createRoleButton\":\"Create Role\",\"createRoleTitle\":\"Create Custom Role\",\"createRoleDescription\":\"Create a new role with specific permissions for your workspace\",\"editRoleTitle\":\"Edit Role\",\"editRoleDescription\":\"Edit the {roleName} role settings and permissions\",\"viewRoleTitle\":\"{roleName} Permissions\",\"viewRoleDescription\":\"Permissions assigned to this role\",\"viewPermissions\":\"View Role\",\"editRole\":\"Edit Role\",\"deleteRole\":\"Delete Role\",\"roleNameLabel\":\"Role Name\",\"roleNamePlaceholder\":\"e.g., project-manager\",\"roleNameHelp\":\"Lowercase letters, numbers, hyphens, and underscores only\",\"roleNameReadOnly\":\"Role names cannot be changed after creation\",\"positionLabel\":\"Hierarchy Position\",\"positionAbove\":\"Above\",\"positionBelow\":\"Below\",\"positionHelp\":\"Position this role {relation} {role}\",\"level\":\"Level {level}\",\"descriptionLabel\":\"Description\",\"descriptionPlaceholder\":\"Brief description of this role's purpose\",\"permissionsLabel\":\"Permissions\",\"noPermissions\":\"This role has no permissions assigned\",\"creatingRole\":\"Creating role...\",\"createRole\":\"Create Role\",\"createRoleSuccess\":\"Role created successfully\",\"createRoleError\":\"Failed to create role\",\"updatingRole\":\"Updating role...\",\"updateRoleSuccess\":\"Role updated successfully\",\"updateRoleError\":\"Failed to update role\",\"saveChanges\":\"Save Changes\",\"deleteRoleTitle\":\"Delete Role\",\"cannotDeleteRoleTitle\":\"Cannot Delete Role\",\"deleteRoleConfirmation\":\"Are you sure you want to delete the \\\"{roleName}\\\" role? This action cannot be undone.\",\"deletingRole\":\"Deleting role...\",\"deleteRoleSuccess\":\"Role deleted successfully\",\"deleteRoleError\":\"Failed to delete role\",\"roleInUse\":\"This role is currently in use\",\"roleInUseDescription\":\"You cannot delete a role that has members or pending invitations assigned to it.\",\"membersUsingRole\":\"{count} {count, plural, one {member} other {members}} using this role\",\"invitationsUsingRole\":\"{count} pending {count, plural, one {invitation} other {invitations}} using this role\",\"reassignBeforeDelete\":\"Please reassign all members and cancel pending invitations before deleting this role.\",\"noPermissionTitle\":\"Permission Required\",\"noPermissionDescription\":\"You don't have permission to manage roles. Contact your workspace owner for access.\",\"errors\":{\"nameMinLength\":\"Role name must be at least 2 characters\",\"nameMaxLength\":\"Role name must be at most 50 characters\",\"nameFormat\":\"Role name must start with a letter and contain only lowercase letters, numbers, hyphens, and underscores\",\"reservedName\":\"Cannot use reserved role name (owner, admin, member)\",\"descriptionMaxLength\":\"Description must be at most 200 characters\",\"roleIdRequired\":\"Role ID is required\"}},\"permissions\":{\"selectDescription\":\"Select the permissions this role should have for each resource.\",\"resources\":{\"organization\":\"Workspace\",\"member\":\"Members\",\"invitation\":\"Invitations\",\"billing\":\"Billing\"},\"resourceDescriptions\":{\"organization\":\"Workspace settings and data\",\"member\":\"Member management\",\"invitation\":\"Invitation management\",\"billing\":\"Billing and subscriptions\"},\"actions\":{\"create\":\"Create\",\"read\":\"Read\",\"update\":\"Update\",\"delete\":\"Delete\",\"cancel\":\"Cancel\"}},\"members\":{\"pageTitle\":\"Members\",\"pageTitleSuffix\":\" - Members\",\"pageDescription\":\"Manage your workspace members and invitations\",\"noMembers\":\"No members yet\",\"noMembersDescription\":\"Invite members to collaborate on this workspace\",\"errors\":{\"invali
1dEmail\":\"Invalid email address\",\"invalidRoleCustom\":\"Invalid role. Must be a valid role name (lowercase alphanumeric, max 50 chars)\",\"invalidRoleDefault\":\"Invalid role. Must be one of: owner, admin, member\",\"memberIdRequired\":\"Member ID is required\",\"memberIdOrEmailRequired\":\"Member ID or email is required\",\"invitationIdRequired\":\"Invitation ID is required\"}},\"billing\":{\"pageTitle\":\"Billing\"},\"personalWorkspace\":\"Personal Workspace\",\"organizationWorkspace\":\"Workspace\",\"searchWorkspace\":\"Search Workspace...\",\"noWorkspacesFound\":\"No workspaces found.\",\"workspacesHeading\":\"Workspaces\",\"organizationsHeading\":\"Workspaces\",\"createOrganizationButton\":\"Create Workspace\",\"switchWorkspace\":\"Switch Workspace\",\"switchingWorkspace\":\"Switching workspace\",\"backToAgency\":\"Back to agency\",\"copyShareLink\":\"Copy Sharable Link\",\"copyShareLinkSuccess\":\"Workspace link copied\",\"copyShareLinkFailed\":\"Could not copy link\",\"copyWorkspaceId\":\"Copy Workspace ID\",\"copyWorkspaceIdSuccess\":\"Workspace ID copied\",\"copyWorkspaceIdFailed\":\"Could not copy workspace ID\",\"signOut\":\"Sign out\",\"superAdmin\":\"Super Admin\",\"stopImpersonation\":\"Stop Impersonation\",\"membersTabLabel\":\"Members\",\"memberName\":\"Name\",\"youLabel\":\"You\",\"emailLabel\":\"Email\",\"roleLabel\":\"Role\",\"joinedAtLabel\":\"Joined at\",\"invitedAtLabel\":\"Invited at\",\"cancelButton\":\"Cancel\",\"settingsPageLabel\":\"General\",\"changeRole\":\"Change Role\",\"removeMember\":\"Remove from Account\",\"inviteMembersSuccess\":\"Member was successfully invited!\",\"inviteMembersError\":\"Sorry, we encountered an error! Please try again\",\"inviteMembersLoading\":\"Inviting members...\",\"seatLimitReachedInviteError\":\"Seat limit reached. Upgrade seats in Billing to invite more members.\",\"seatLimitReachedTitle\":\"Seat limit reached\",\"manageBilling\"
1:\"Manage billing\",\"removeInviteButtonLabel\":\"Remove invite\",\"addAnotherMemberButtonLabel\":\"Add another one\",\"createOrganizationDialogHeading\":\"Create Workspace\",\"resendInvitation\":\"Resend Invitation\",\"cancelInvitation\":\"Cancel Invitation\",\"cancelInvitationDescription\":\"Are you sure you want to cancel this invitation? The invited user will no longer be able to join.\",\"cancelInvitationSubmit\":\"Cancel Invitation\",\"cancellingInvitation\":\"Cancelling...\",\"cancelInvitationSuccess\":\"Invitation cancelled successfully\",\"cancelInvitationError\":\"Failed to cancel invitation: {error}\",\"acceptInvitation\":\"Accept Invitation\",\"acceptInvitationHeading\":\"You've been invited\",\"acceptInvitationDescription\":\"You've been invited to join this workspace. Accept to become a member.\",\"joinTeamAccount\":\"Join Workspace\",\"resendInvitationSuccess\":\"Invitation resent successfully\",\"resendingInvitation\":\"Resending invitation...\",\"resendInvitationError\":\"Sorry, we encountered an error! Please try again\",\"createOrganizationDialogDescription\":\"Create a new workspace to manage your team and projects.\",\"organizationNamePlaceholder\":\"Workspace name\",\"organizationNameDescription\":\"Choose a name for your workspace.\",\"createOrganizationSubmitLabel\":\"Create Workspace\",\"createOrganizationLoading\":\"Creating...\",\"createOrganizationErrorHeading\":\"Error creating workspace\",\"createOrganizationErrorMessage\":\"Something went wrong while creating the workspace. Please try again.\",\"upgradePlanCta\":\"Upgrade plan\",\"inviteMembersButtonLabel\":\"Send Invites\",\"removeMemberModalHeading\":\"You are removing this user\",\"removeMemberTitle\":\"Remove Member\",\"removeMemberDescription\":\"Are you sure you want to remove {name} ({email}) from the workspace? This action cannot be undone. The member will immediately lose access to the workspace.\",\"removeMemberSuccessMessage\":\"Member removed successfully\",\"removeMemberErrorMessage\":\"Sorry, we encountered an error. Please try again\",\"removeMemberError\":\"Failed to remove member: {error}\",\"removeMemberErrorHeading\":\"Sorry, we couldn't remove the selected member.\",\"removeMemberLoadingMessage\":\"Removing member...\",\"removingMember\":\"Removing member...\",\"removing\":\"Removing...\",\"leaveOrganizationTitle\":\"Leave Workspace\",\"leaveOrganizationDescription\":\"Are you sure you want to leave this workspace? You will lose access to all workspace resources.\",\"leaveOrganization\":\"Leave Workspace\",\"chooseDifferentRoleError\":\"Role is the same as the current one\",\"updateRole\":\"Update Role\",\"updateRoleLoadingMessage\":\"Updating role...\",\"updateRoleSuccessMessage\":\"Role updated successfully\",\"updatingRoleErrorMessage\":\"Sorry, we encountered an error. Please try again.\",\"updateMemberRoleModalHeading\":\"Update Member's Role\",\"updateMemberRoleModalDescription\":\"Change the role of the selected member. The role determines the permissions of the member.\",\"roleMustBeDifferent\":\"Role must be different from the current one\",\"memberRoleInputLabel\":\"Member role\",\"updateRoleDescription\":\"Pick a role for this member.\",\"updateRoleSubmitLabel\":\"Update Role\",\"updatingRole\":\"Updating role...\",\"roleUpdatedSuccess\":\"Member role updated successfully\",\"roleUpdateError\":\"Sorry, we couldn't update the role of the selected member. Please try again.\",\"currentRole\":\"Current Role\",\"newRole\":\"New Role\",\"selectRole\":\"Select role\",\"updateRoleWarning\":\"This will update the member's permissions immediately.\",\"transferOwnership\":\"Transfer Ownership\",\"deleteInvitation\":\"Delete Invitation\",\"deleteInviteSuccessMessage\":\"Invite deleted successfully\",\"deleteInviteErrorMessage\":\"Invite not deleted. Please try again.\",\"deleteInviteLoadingMessage\":\"Deleting invite. Please wait...\",\"confirmDeletingMemberInvite\":\"You are deleting the invite to \u003cb\u003e{email}\u003c/b\u003e\",\"deleteInviteSubmitLabel\":\"Delete Invite\",\"youBadgeLabel\":\"You\",\"emailPlaceholder\":\"[email protected]\",\"unknown\":\"Unknown\",\"unknownError\":\"Unknown error\",\"columnMember\":\"Member\",\"columnEmail\":\"Email\",\"columnInvitedBy\":\"Invited By\",\"columnStatus\":\"Status\",\"columnExpires\":\"Expires\",\"columnActions\":\"Actions\",\"columnRole\":\"Role\",\"columnJoined\":\"Joined\",\"invitationsTitle\":\"Pending Invitations\",\"invitationsDescription\":\"{count} {count, plural, one {invitation} other {invitations}} pending\",\"noInvitations\":\"No pending invitations\",\"noInvitationsDescription\":\"All invitations have been accepted or canceled\",\"expired\":\"Expired\",\"noMembers\":\"No members found\",\"noMembersDescription\":\"This workspace has no members yet\",\"openMenu\":\"Open menu\",\"noActionsAvailable\":\"No actions available\",\"invitedBy\":\"Invited By\",\"expiresLabel\":\"Expires\",\"declining\":\"Declining...\",\"declineInvitation\":\"Decline Invitation\",\"joinedSuccessfully\":\"Welcome to {organization}!\",\"failedToJoinTeam\":\"Failed to join team\",\"seatLimitReachedJoinError\":\"This workspace is at its seat limit. Ask an admin to upgrade seats, then try again.\",\"decliningInvitation\":\"Declining invitation...\",\"invitationDeclinedSuccessfully\":\"Invitation declined 
1successfully\",\"failedToDeclineInvitation\":\"Failed to decline invitation\",\"joiningOrganization\":\"Joining workspace...\",\"redirectingToDashboard\":\"Redirecting to dashboard...\",\"emailMismatch\":\"Email Mismatch\",\"invitationSentTo\":\"This invitation was sent to {email}\",\"currentlySignedInAs\":\"You are currently signed in as {email}\",\"signInWithCorrectEmail\":\"Please sign in with the email address that received this invitation.\",\"signInWithDifferentAccount\":\"Sign in with a different account\",\"invitationExpired\":\"This invitation has expired\",\"expiredOn\":\"Expired on {date}\",\"askAdminForNewInvitation\":\"Ask a workspace administrator to send you a new invitation.\",\"alreadyMember\":\"You're already a member of {organization}\",\"alreadyMemberDescription\":\"You have access to this workspace.\",\"goToOrganizationDashboard\":\"Go to Workspace Dashboard\",\"invitationNotFound\":\"Invitation not found\",\"invitationNotFoundDescription\":\"This invitation does not exist or has been canceled.\",\"invitationDeclined\":\"This invitation was declined\",\"invitationDeclinedDescription\":\"You previously declined this invitation.\",\"organizationDeleted\":\"Workspace not found\",\"organizationDeletedWithName\":\"The workspace {organization} no longer exists.\",\"organizationDeletedDescription\":\"This workspace no longer exists.\",\"yourOrganizations\":\"Your Workspaces\",\"selectOrganizationDescription\":\"Select a workspace to continue\",\"searchOrganizations\":\"Search for a workspace\",\"noOrganizationsFound\":\"No workspaces found\",\"noOrganizationsFoundDescription\":\"We couldn't find any workspaces matching \\\"{query}\\\"\",\"noOrganizations\":\"Let's get started\",\"noOrganizationsDescription\":\"Get started by creating your first workspace to invite teammates and start collaborating.\",\"noOrganizationsFeatureInviteTitle\":\"Invite teammates\",\"noOrganizationsFeatureInviteDescription\":\"Add members and collaborate.\",\"noOrganizationsFeatureRolesTitle\":\"Assign roles\",\"noOrganizationsFeatureRolesDescription\":\"Keep access organized.\",\"noOrganizationsFeatureBuildTitle\":\"Launch your workspace\",\"noOrganizationsFeatureBuildDescription\":\"Set up your team's home base.\"},\"billing\":{\"billing\":\"Billing\",\"billingDescription\":\"Manage your subscription and billing settings\",\"parentCompanyDisclosure\":\"ChatOtter is a product of AgentAxis Corp. Charges appear as 'AgentAxis Corp' on your card statement and invoices.\",\"subscriptionTabSubheading\":\"Manage your Subscription and Billing\",\"planCardTitle\":\"Your Plan\",\"planCardDescription\":\"Below are the details of your current plan. You can change your plan or cancel your subscription at any time.\",\"planRenewal\":\"Renews every {interval} at {price}\",\"planDetails\":\"Plan Details\",\"checkout\":\"Proceed to Checkout\",\"trialAlertTitle\":\"Your Trial is ending soon\",\"trialInProgress\":\"You're on a trial plan\",\"trialAlertDescription\":\"Your trial ends on {date}. Upgrade to a paid plan to continue using all features.\",\"billingPortalCardButton\":\"Visit Billing Portal\",\"billingPortalCardTitle\":\"Manage your Billing Details\",\"billingPortalCardDescription\":\"Visit your Billing Portal to manage your subscription and billing. You can update or cancel your plan, or download your invoices.\",\"cancelAtPeriodEndDescription\":\"Your subscription is scheduled to be canceled on {endDate}.\",\"renewAtPeriodEndDescription\":\"Your subscription is scheduled to be renewed on {endDate}\",\"noPermissionsAlertHeading\":\"You don't have permissions to change the billing settings\",\"noPermissionsAlertBody\":\"Please contact your account owner to change the billing settings for your account.\",\"checkoutSuccessTitle\":\"Done! You're all set.\",\"checkoutSuccessDescription\":\"Thank you for subscribing, we have successfully processed your subscription! A confirmation email will be sent to {customerEmail}.\",\"checkoutSuccessBackButton\":\"Proceed to App\",\"cannotManageBillingAlertTitle\":\"You cannot manage billing\",\"cannotManageBillingAlertDescription\":\"You do not have permissions to manage billing. Please contact your account owner.\",\"manageTeamPlan\":\"Manage your Team Plan\",\"manageTeamPlanDescription\":\"Choose a plan that fits your team's needs. You can upgrade or downgrade your plan at any time.\",\"basePlan\":\"Base Plan\",\"billingInterval\":{\"label\":\"Choose your billing interval\",\"month\":\"Billed monthly\",\"year\":\"Billed yearly\"},\"yearlySaveBadge\":\"Save {pct}%\",\"perMonth\":\"month\",\"perYear\":\"year\",\"perWeek\":\"week\",\"perDay\":\"day\",\"plusUsage\":\"+ usage\",\"billedYearlyAt\":\"Billed yearly at {price}\",\"custom\":\"Custom Plan\",\"lifetime\":\"Lifetime\",\"trialPeriod\":\"{period}
1 day trial\",\"perPeriod\":\"per {period}\",\"redirectingToPayment\":\"Redirecting to checkout. Please wait...\",\"proceedToPayment\":\"Proceed to Payment\",\"startTrial\":\"Start Trial\",\"perTeamMember\":\"Per team member\",\"perUnit\":\"Per {unit} usage\",\"teamMembers\":\"Team Members\",\"includedUpTo\":\"Up to {upTo} {unit} included\",\"fromPreviousTierUpTo\":\"for next {upTo} {unit}\",\"andAbove\":\"above {previousTier} {unit}\",\"startingAtPriceUnit\":\"From {price}/{unit}\",\"priceUnit\":\"{price}/{unit}\",\"forEveryUnit\":\"for every {unit}\",\"setupFee\":\"plus a {setupFee} setup fee\",\"perUnitIncluded\":\"({included} included)\",\"features\":\"Features\",\"featuresLabel\":\"Features\",\"detailsLabel\":\"Details\",\"planPickerLabel\":\"Pick your preferred plan\",\"planCardLabel\":\"Manage your Plan\",\"planPickerAlertErrorTitle\":\"Error requesting checkout\",\"planPickerAlertErrorDescription\":\"There was an error requesting checkout. Please try again later.\",\"subscriptionCancelled\":\"Subscription Cancelled\",\"cancelSubscriptionDate\":\"Your subscription will be cancelled at the end of the billing period on {date}\",\"noPlanChosen\":\"Please choose a plan\",\"noIntervalPlanChosen\":\"Please choose a billing interval\",\"status\":{\"free\":{\"badge\":\"Free Plan\",\"heading\":\"You are currently on the Free Plan\",\"description\":\"You're on a free plan. You can upgrade to a paid plan at any time.\"},\"active\":{\"badge\":\"Active\",\"heading\":\"Your subscription is active\",\"description\":\"Your subscription is active. You can manage your subscription and billing in the Customer Portal.\"},\"trialing\":{\"badge\":\"Trial\",\"heading\":\"You're on a trial\",\"description\":\"You can enjoy the benefits of plan until the trial ends\"},\"past_due\":{\"badge\":\"Past Due\",\"heading\":\"Your invoice is past due\",\"description\":\"Your invoice is past due. Please update your payment method.\"},\"canceled\":{\"badge\":\"Canceled\",\"heading\":\"Your subscription is canceled\",\"description\":\"Your subscription is canceled. It is scheduled to end at end of the billing period.\"},\"unpaid\":{\"badge\":\"Unpaid\",\"heading\":\"Your invoice is unpaid\",\"description\":\"Your invoice is unpaid. Please update your payment method.\"},\"incomplete\":{\"badge\":\"Incomplete\",\"heading\":\"We're waiting for your payment\",\"description\":\"We're waiting for your payment to go through. Please bear with us.\"},\"incomplete_expired\":{\"badge\":\"Expired\",\"heading\":\"Your payment has expired\",\"description\":\"Your payment has expired. Please update your payment method.\"},\"paused\":{\"badge\":\"Paused\",\"heading\":\"Your subscription is paused\",\"description\":\"Your subscription is paused. You can resume it at any time.\"},\"succeeded\":{\"badge\":\"Succeeded\",\"heading\":\"Your payment was successful\",\"description\":\"Your payment was successful. Thank you for subscribing!\"},\"pending\":{\"badge\":\"Pending\",\"heading\":\"Your payment is pending\",\"description\":\"Your payment is pending. Please bear with us.\"},\"failed\":{\"badge\":\"Failed\",\"heading\":\"Your payment failed\",\"description\":\"Your payment failed. Please update your payment method.\"}},\"subscriptionCard\":{\"currentSubscription\":\"Current Subscription\",\"currentPlanDescription\":\"This is your current active plan.\",\"currentPlan\":\"Current Plan\",\"billingCycleCard\":\"Billing Cycle\",\"trialInProgress\":\"You're on a trial plan\",\"trialEndsOn\":\"Your trial ends on {date}. You'll be charged automatically after the trial period. You can cancel your subscription at any time.\",\"paymentFailed\":\"Your last payment attempt failed.\",\"paymentFailedDescription\":\"Please update your payment method to avoid service interruption or contact support if you need help.\",\"subscriptionPaused\":\"Your subscription is paused\",\"subscriptionPausedDescription\":\"Your subscription is paused. You can resume it at any time.\",\"subscriptionWillEndTitle\":\"Your subscription was cancelled\",\"subscriptionWillEnd\":\"Your subscription will end on {date}. You can reactivate it before this date.\",\"canceledOn\":\"Your subscription was canceled on {date}.\",\"hoursRemaining\":\"{hours} hours remaining\",\"billingCycle\":\"Current period\",\"nextPayment\":\"Next payment\",\"daysRemaining\":\"{days} days remaining\",\"teamSeats\":\"Team seats\",\"includedSeats\":\"Seats included\",\"seatsCount\":\"{seats} seats\",\"seatsCountDescription\":\"You are paying for {seats} seats\",\"seatsUnlimited\":\"Unlimited\",\"seatsIncludedUpTo\":\"Up to {seats} seats included\",\"seatsIncludedUnlimited\":\"Unlimited seats included\",\"cancelSubscription\":\"Cancel Subscription\",\"restoreSubscription\":\"Restore Subscription\",\"restoring\":\"Restoring...\",\"restoreSuccess\":\"Subscription restored successfully\",\"restoreError\":\"Failed to restore subscription. Please try again.\",\"switchPlan\":\"Switch Plan\",\"switchPlanDisabledMultipleItems\":\"To switch plans, cancel your current subscription first, then subscribe to a new plan.\",\"choosePlan\":\"Choose a Plan\",\"notAvailable\":\"Not available\",\"pricePerInterval\":\"{price} / {interval}\",\"billingPeriodRange\":\"{startDate} - {endDate}\",\"planNameWithInterval\":\"{plan} ({interval})\"},\"interval\":{\"month\":\"Monthly\",\"year\":\"Annual\"},\"billingPortal\":{\"title\":\"Billing Portal\",\"manageBilling\"
1:\"Manage Billing\",\"open\":\"Go to Billing Portal\",\"loading\":\"Loading...\",\"error\":\"Failed to open billing portal. Please try again.\",\"description\":\"Access your Stripe Customer Portal to view invoices, update payment methods, manage your subscription, and download receipts.\",\"descriptionShort\":\"Manage your subscription and billing, such as updating plan, cancelling subscription, or viewing invoices and payment history\",\"descriptionNoAccess\":\"Portal access available after first subscription\",\"quickLinks\":{\"viewInvoices\":\"View invoices and payment history\",\"updatePayment\":\"Update payment methods\",\"manageSubscription\":\"Manage subscription settings\"}},\"successPage\":{\"title\":\"Subscription Activated!\",\"description\":\"Your subscription has been successfully created. It may take a few moments for your subscription to be fully activated.\",\"emailConfirmation\":\"You'll receive a confirmation email with your subscription details and receipt.\",\"viewBillingDashboard\":\"View Billing Dashboard\",\"goToDashboard\":\"Go to Dashboard\",\"nextSteps\":\"What's Next?\",\"trialInfo\":\"Your 14-day free trial starts now. Cancel anytime before it ends to avoid charges.\",\"billingInfo\":\"Manage your subscription and billing in the Billing Dashboard.\",\"supportInfo\":\"Need help? Our support team is here for you.\"},\"cancelPage\":{\"title\":\"Checkout Canceled\",\"description\":\"Your checkout was canceled. No charges have been made to your account.\",\"helpText\":\"If you have any questions or need help choosing a plan, please contact our support team.\",\"backToBilling\":\"Back to Billing\",\"viewPlans\":\"View Plans\"},\"billingPage\":{\"choosePlan\":\"Choose a Plan\",\"changePlan\":\"Change Plan\",\"choosePlanHeading\":\"Choose a Plan\",\"changePlanHeading\":\"Change Your Plan\",\"planDescription\":\"Select the plan that best fits your needs. You can upgrade or downgrade at any time.\",\"viewPlans\":\"View Plans\",\"hidePlans\":\"Hide Plans\"},\"cancelSubscriptionDialog\":{\"title\":\"Cancel Subscription\",\"description\":\"Are you sure you want to cancel your subscription? You will be redirected to the billing portal.\",\"confirmationEndOfPeriod\":\"Your subscription will remain active until the end of your current billing period. You can reactivate it at any time before then.\",\"confirmationImmediate\":\"Your subscription will be canceled immediately. You will lose access to all features and your data will be deleted.\",\"confirmButton\":\"Yes, Cancel Subscription\",\"cancelButton\":\"Keep Subscription\",\"canceling\":\"Redirecting...\",\"success\":\"Subscription canceled successfully\",\"error\":\"Failed to cancel subscription. Please try again.\"},\"restoreSubscriptionDialog\":{\"title\":\"Restore Subscription\",\"description\":\"Would you like to restore your subscription?\",\"confirmation\":\"Your subscription will be reactivated and will continue to renew at the end of the current billing period.\",\"confirmButton\":\"Yes, Restore Subscription\",\"cancelButton\":\"Keep Canceled\",\"restoring\":\"Restoring...\",\"success\":\"Subscription restored successfully\",\"error\":\"Failed to restore subscription. Please try again.\"},\"checkoutButton\":{\"subscribe\":\"Subscribe\",\"loading\":\"Redirecting to checkout...\",\"currentPlan\":\"Current Plan\",\"comingSoon\":\"Coming Soon\",\"checkoutError\":\"Failed to start checkout. Please try again.\",\"error\":\"Failed to start checkout. Please try again.\"},\"tierGate\":{\"required\":\"Upgrade required to unlock\",\"requiredAtLimit\":\"Upgrade required to unlock more\"},\"trialExpiredBanner\":{\"title\":\"Pick a plan to continue\",\"body\":\"Your trial has ended. Choose a plan below to keep your agent live and your data accessible.\",\"bodyWithDate\":\"Your trial ended on {date}. Choose a plan below to keep your agent live and your data accessible.\"},\"newSignupBanner\":{\"title\":\"Start your 14-day free trial\",\"body\":\"Cancel anytime. Pick the Starter trial below to unlock lead capture, Zalo OA chat, and 1,000 chat sessions per month.\"},\"agencyView\":{\"headerTitle\":\"You're on the Agency package\",\"headerLoading\":\"Loading your client workspaces…\",\"headerBody\":\"{used} of {limit} client workspaces in use. Billing is managed manually — use the contact link on Manage clients to change your package.\",\"rollupTitle\":\"Client roll-up\",\"rollupLoading\":\"Loading roll-up…\",\"rollupError\":\"Couldn't load client roll-up. Refresh or check /agency for per-client detail.\",\"statClients\":\"Clients\",\"statAgents\":\"Agents\",\"statSessions30d\":\"Sessions (30d
1)\",\"statLeads30d\":\"Leads (30d)\",\"manageClientsCta\":\"Manage clients\",\"changePackageCta\":\"Change my package\",\"expiresTitle\":\"Contract expires\",\"expiresBody\":\"Your agency package is active through {date}. Reach out via Manage clients to renew before the end date.\"},\"upgradeModal\":{\"title\":\"Upgrade required\",\"body\":\"{feature} is on a higher plan. Upgrade to unlock it for your workspace.\",\"bodyGeneric\":\"This feature is on a higher plan. Upgrade to unlock it for your workspace.\",\"cta\":\"View plans\",\"dismiss\":\"Maybe later\",\"features\":{\"lead_forms\":\"Lead capture forms\",\"white_label\":\"Remove ChatOtter branding\",\"hosted_page_indexing\":\"Search-engine indexing of hosted pages\",\"leads_csv_export\":\"Lead CSV export\",\"webhooks_api\":\"Webhooks \u0026 REST API access\",\"handoff_human\":\"Human handoff\",\"channel_whatsapp\":\"WhatsApp channel\",\"channel_zalo\":\"Zalo channel\",\"channel_line\":\"LINE channel\",\"channel_calcom\":\"Cal.com scheduling\",\"agents\":\"Additional AI agents\",\"documents\":\"Additional knowledge-base documents\",\"urls\":\"Additional URL sources\",\"sessions_per_month\":\"Additional monthly chat sessions\",\"mcp_tools\":\"MCP tool integrations\",\"seats\":\"Additional team seats\"}}},\"marketing\":{\"site\":{\"title\":\"ChatOtter — AI Agent Orchestration Platform\",\"description\":\"ChatOtter automates your outbound, inbound, and recruiting workflows with AI-powered agents. Connect your tools, deploy agents, and scale your operations.\"},\"blog\":\"Blog\",\"blogSubtitle\":\"News and updates about the platform\",\"changelog\":\"Changelog\",\"changelogSubtitle\":\"Latest updates and improvements to the platform\",\"noChangelogEntries\":\"No changelog entries found\",\"changelogPaginationNext\":\"Next Page\",\"changelogPaginationPrevious\":\"Previous Page\",\"changelogNavigationPrevious\":\"Previous\",\"changelogNavigationNext\":\"Next\",\"help\":\"Help Center\",\"helpSubtitle\":\"All you need to learn more about the platform and get support\",\"backToProduct\":\"Back to {product}\",\"faq\":\"FAQ\",\"faqSubtitle\":\"Frequently asked questions about the platform\",\"status\":\"Status\",\"pricing\":\"Pricing\",\"pricingSubtitle\":\"Pricing plans and payment options\",\"backToBlog\":\"Back to blog\",\"noPosts\":\"No posts found\",\"blogPaginationNext\":\"Next Page\",\"blogPaginationPrevious\":\"Previous Page\",\"readMore\":\"Read more\",\"contactFaq\":\"If you have any questions, please contact us\",\"contact\":\"Contact\",\"howItWorks\":\"How It Works\",\"features\":\"Features\",\"navSignIn\":\"Sign In\",\"about\":\"About\",\"product\":\"Product\",\"legal\":\"Legal\",\"termsOfService\":\"Terms of Service\",\"termsOfServiceDescription\":\"Our terms and conditions\",\"cookiePolicy\":\"Cookie Policy\",\"cookiePolicyDescription\":\"Our cookie policy and how we use them\",\"privacyPolicy\":\"Privacy Policy\",\"privacyPolicyDescription\":\"Our privacy policy and how we use your data\",\"refundPolicy\":\"Refund Policy\",\"refundPolicyDescription\":\"Cancellation, refunds, and prorations for paid plans\",\"contactDescription\":\"Contact us for any questions or feedback\",\"contactHeading\":\"Send us a message\",\"contactSubheading\":\"We will get back to you as soon as possible\",\"contactName\":\"Your Name\",\"contactEmail\":\"Your Email\",\"contactMessage\":\"Your Message\",\"sendMessage\":\"Send Message\",\"contactSuccess\":\"Your message has been sent successfully\",\"contactError\":\"An error occurred while sending your message\",\"contactSuccessDescription\":\"We have received your message and will get back to you as soon as possible\",\"contactErrorDescription\":\"An error occurred while sending your message. Please try again later\",\"footerDescription\":\"Build and deploy your AI lead agent into multiple channels in under 30 minutes. Works with WhatsApp, Zalo, Telegram, LINE, Messenger and your website — plus the tools you already use. Source-cited, never invents. Built for SMEs.\",\"footerMailAddressLabel\":\"Mail Address:\",\"footerOperationsLabel\":\"Operations:\",\"copyright\":\"Copyright © {product} {year}. All Rights Reserved.\",\"faqQuestion1\":\"Do you offer a free trial?\",\"faqAnswer1\":\"Yes, we offer a 14-day free trial. Cancel anytime before it ends to avoid charges.\",\"faqQuestion2\":\"Can I cancel my subscription?\",\"faqAnswer2\":\"You can cancel your subscription at any time. You can do this from your account settings.\",\"faqQuestion3\":\"Where can I find my invoices?\",\"faqAnswer3\":\"You can find your invoices in your account settings.\",\"faqQuestion4\":\"What payment methods do you accept?\",\"faqAnswer4\":\"We accept all major credit cards and PayPal.\",\"faqQuestion5\":\"Can I upgrade or downgrade my plan?\",\"faqAnswer5\":\"Yes, you can upgrade or downgrade your plan at any time. You can do this from your account settings.\",\"faqQuestion6\":\"Do you offer discounts for non-profits?\",\"faqAnswer6\":\"Yes, we offer a 50% discount for non-profits. Please contact us to learn more.\",\"pricingPageMetaTitle\":\"Pricing — ChatOtter\",\"pricingPageMetaDescription\":\"The AI chatbot that physically can't make things up about your business. Start free with a knowledge-base-grounded chatbot. Add multi-agent workflows and MCP tool integrations as you grow.\",\"pricingPageTitle\":\"Pricing\",\"pricingPageSubtitle\":\"The chatbot that can't make things up about your business. Start free, add multi-agent workflows as you grow — your price stays locked.\",\"pricingPageJsonLdName\":\"ChatOtter Pricing\",\"pricingPageJsonLdDescription\":\"Pricing plans for ChatOtter — the all-in-one AI agent platform for SMEs.\",\"pricingPageProHeading\":\"Why ChatOtter Pro beats a generic AI chatbot\",\"pricingPageProIntro\":\"Most AI chatbots happily make things up and bury the source. ChatOtter Pro can't — every answer is grounded in your knowledge base and shows where it came from — and bundles WhatsApp, human handoff, 3 agents, and LINE + Zalo ZNS at \u003cstrong\u003e$149/mo\u003c/strong\u003e, with no add-on stacking.\",\"pricingPageColFeature\":\"Feature\",\"pricingPageColAgentaxis\":\"ChatOtter Pro — $149/mo\",\"pricingPageColOthers\":\"Typical AI chatbot\",\"pricingPageRow1
1Feature\":\"Grounded answers — physically can't hallucinate\",\"pricingPageRow1Agentaxis\":\"Hardcoded — can't be turned off\",\"pricingPageRow1Others\":\"Optional toggle, usually off\",\"pricingPageRow2Feature\":\"Source shown on every answer\",\"pricingPageRow2Agentaxis\":\"Default on\",\"pricingPageRow2Others\":\"Rarely, if at all\",\"pricingPageRow3Feature\":\"WhatsApp Business API\",\"pricingPageRow3Others\":\"Add-on or higher tier\",\"pricingPageRow4Feature\":\"3 AI agents + remove branding\",\"pricingPageRow4Others\":\"Per-agent fees + white-label add-on\",\"pricingPageRow5Feature\":\"Existing-customer price lock\",\"pricingPageIncluded\":\"Included\",\"pricingPageNotAvailable\":\"Not available\",\"pricingPageFaqHeading\":\"Frequently Asked Questions\",\"pricingPageFaqQ1\":\"How does ChatOtter prevent hallucinations?\",\"pricingPageFaqA1\":\"Our chat agent has no permissive code path — it can only answer from your knowledge base. When the knowledge base doesn't have the answer, the bot refuses rather than inventing one. Every grounded reply shows the source chunk it came from, so you (and your visitors) can verify every claim.\",\"pricingPageFaqQ2\":\"What counts as a chat session?\",\"pricingPageFaqA2\":\"A session is one visitor's continuous conversation with your chatbot. We count by visitor, not by individual messages — so a customer asking 20 follow-up questions counts as 1 session, not 20. Sessions reset after 30 minutes of idle time.\",\"pricingPageFaqQ3\":\"Can I change plans at any time?\",\"pricingPageFaqA3\":\"Yes. Upgrade or downgrade from Settings → Billing. Upgrades are pro-rated immediately. Downgrades take effect at the end of your current billing cycle.\",\"pricingPageFaqQ4\":\"What are MCP tool integrations?\",\"pricingPageFaqA4\":\"MCP (Model Context Protocol) lets your AI agent call external tools — HubSpot, Slack, calendars, your own APIs — during conversations. Turns a chatbot into a business assistant that can actually take action.\",\"pricingPageFaqQ5\":\"Is there a free trial?\",\"pricingPageFaqA5\":\"Yes. The Free plan is forever-free (1 chatbot, 50 chat sessions / month). Starter includes a 14-day free trial — cancel anytime before it ends to avoid charges.\",\"pricingPageFaqQ6\":\"Will my price change when you add Outbound or Marketing agents?\",\"pricingPageFaqA6\":\"No. Existing customers keep their current tier price forever, even when we introduce new tiers above. New customers may pay new prices, but you won't.\",\"pricingPageFooterNote1\":\"Starter includes a 14-day free trial. Cancel anytime.\",\"pricingPageFooterNote2\":\"Existing customers keep their tier price forever, even when we add new tiers.\"},\"settings\":{\"backToDashboard\":\"Back to Dashboard\",\"preferences\":{\"pageTitle\":\"Preferences\"},\"personalSettings\":{\"name\":{\"title\":\"Display Name\",\"description\":\"Update your display name that appears across the application\",\"label\":\"Name\",\"placeholder\":\"John Doe\",\"save\":\"Save Changes\",\"saving\":\"Saving...\",\"updating\":\"Updating name...\",\"success\":\"Name updated successfully\",\"errors\":{\"minLength\":\"Name must be at least 2 characters\",\"maxLength\":\"Name must be less than 100 characters\"},\"error\":{\"title\":\"Error Updating Name\",\"description\":\"An error occurred while updating your name. Please try again.\",\"updateFailed\":\"Failed to update name. Please try again.\"}},\"image\":{\"title\":\"Profile Image\",\"description\":\"Update your profile image that appears across the application\",\"label\":\"Image\",\"uploadLabel\":\"Click to upload or drag and drop\",\"save\":\"Save Changes\",\"saving\":\"Saving...\",\"success\":\"Image updated successfully\",\"error\":{\"title\":\"Error Updating Image\",\"description\":\"An error occurred while updating your image. Please try again.\",\"updateFailed\":\"Failed to update image. Please try again.\",\"sizeLimit\":\"Image size must be less than 2MB\",\"invalidType\":\"Invalid image type. Please use JPEG, PNG, GIF, or WebP.\"}},\"security\":{\"title\":\"Security\"},\"mfa\":{\"title\":\"Multi-Factor Authentication\",\"description\":\"Add an extra layer of security to your account\",\"status\":{\"enabled\":\"Enabled\",\"disabled\":\"Not Enabled\"},\"enable\":{\"button\":\"Enable MFA\",\"title\":\"Enable Multi-Factor Authentication\",\"description\":\"Secure your account with TOTP-based authentication\",\"step1\":{\"title\":\"Verify Your Password\",\"description\":\"Enter your password to continue\",\"password\":\"Password\",\"continue\":\"Continue\",\"verifying\":\"Verifying...\"},\"step2\":{\"title\":\"Scan QR Code\",\"description\":\"Scan this QR code with your authenticator app (Google Authenticator, Authy, 1Password, etc.)\",\"manualEntry\":\"Or enter this code manually:\",\"continue\":\"Continue\"},\"step3\":{\"title\":\"Verify Code\",\"description\":\"Enter the 6-digit code from your authenticator app\",\"code\":\"Enter the 6-digit code from your authenticator app\",\"verify\":\"Verify \u0026 Enable\",\"verifying\":\"Verifying...\",\"back\":\"Back\"},\"step4\":{\"title\":\"Backup Codes\",\"description\":\"Save these backup codes in a safe place. You can use them to access your account if you lose access to your authenticator app.\",\"warning\":\"These codes will only be shown once. Make sure to save them now.\",\"copy\":\"Copy Codes\",\"download\":\"Download Codes\",\"copied\":\"Copied!\",\"copyError\":\"Failed to copy codes. Please try again.\",\"downloadError\":\"Failed to download codes. Please try again.\",\"done\":\"Done\"},\"error\":{\"title\":\"Error Enabling MFA\",\"description\":\"An error occurred while enabling MFA. Please try again.\",\"invali
1dPassword\":\"Invalid password. Please try again.\",\"invalidCode\":\"Invalid verification code\",\"invalidCodeDescription\":\"The verification code you entered is incorrect. Please try again.\",\"enableFallback\":\"Failed to enable MFA\",\"verifyFallback\":\"Invalid verification code\"}},\"disable\":{\"button\":\"Disable MFA\",\"title\":\"Disable Multi-Factor Authentication\",\"description\":\"Are you sure you want to disable MFA? This will make your account less secure.\",\"warningTitle\":\"This reduces your account security\",\"warning\":\"You will no longer be required to enter a code when signing in. Do you want to continue?\",\"password\":\"Enter your password to confirm\",\"confirm\":\"Disable MFA\",\"cancel\":\"Cancel\",\"disabling\":\"Disabling...\",\"error\":{\"title\":\"Error Disabling MFA\",\"description\":\"An error occurred while disabling MFA. Please try again.\",\"invalidPassword\":\"Invalid password. Please try again.\",\"disableFallback\":\"Failed to disable MFA\"}},\"success\":{\"enabled\":\"MFA successfully enabled\",\"disabled\":\"MFA successfully disabled\"},\"sms\":{\"sectionTitle\":\"Text message (SMS)\",\"sectionDescription\":\"Also receive codes by text message.\",\"enabledFor\":\"SMS codes on for {phone}\",\"addPhone\":\"Add phone\",\"changeNumber\":\"Change number\",\"enableMfaFirst\":\"Enable two-factor authentication above to also receive codes by SMS.\",\"add\":{\"title\":\"Add a phone for SMS codes\",\"description\":\"We'll text a verification code to confirm your number.\",\"phoneLabel\":\"Mobile number\",\"phonePlaceholder\":\"+1 415 555 2671\",\"invalidPhone\":\"Enter a valid phone number, including country code.\",\"consent\":\"I agree to receive SMS verification codes from ChatOtter at this number. Message and data rates may apply. Message frequency varies. Reply STOP to opt out, HELP for help.\",\"sendCode\":\"Send code\",\"sending\":\"Sending…\",\"consentPolicies\":\"See our \u003cprivacy\u003ePrivacy Policy\u003c/privacy\u003e and \u003cterms\u003eTerms\u003c/terms\u003e.\"},\"verify\":{\"title\":\"Enter the verification code\",\"description\":\"Enter the 6-digit code we texted to your phone.\",\"codeLabel\":\"Verification code\",\"confirm\":\"Verify \u0026 enable\",\"verifying\":\"Verifying…\",\"back\":\"Back\"},\"success\":{\"added\":\"SMS codes enabled.\"},\"error\":{\"sendFailed\":\"We couldn't send the code. Check the number and try again.\",\"verifyFailed\":\"That code was incorrect or expired. Try again.\"},\"removeHint\":\"To remove SMS, disable two-factor authentication.\"}},\"smsMfa\":{\"title\":\"Text Message (SMS)\",\"description\":\"Get verification codes by text message as a two-factor method.\",\"status\":{\"disabled\":\"Not Enabled\"},\"enable\":{\"description\":\"Add your mobile number to receive one-time verification codes by text message.\",\"phoneLabel\":\"Mobile number\",\"phonePlaceholder\":\"+1 415 555 2671\",\"invalidPhone\":\"Enter a valid phone number, including country code.\",\"consent\":\"I agree to receive SMS verification codes from ChatOtter at the number provided. Message and data rates may apply. Message frequency varies. Reply STOP to opt out, HELP for help.\",\"submit\":\"Send verification code\",\"comingSoon\":\"SMS verification is being finalized — your number hasn't been saved yet.\",\"consentPolicies\":\"See our \u003cprivacy\u003ePrivacy Policy\u003c/privacy\u003e and \u003cterms\u003eTerms\u003c/terms\u003e.\"},\"optInPage\":{\"title\":\"SMS Verification Code Opt-In\",\"subtitle\":\"Agree to receive two-factor authentication codes by text message.\",\"intro\":\"ChatOtter can send one-time verification codes to your mobile number as a second factor when you sign in. Enter your number and agree to the terms below to opt in. This is an account-security feature — we never use it for marketing.\"}},\"trustedDevices\":{\"title\":\"Trusted Devices\",\"description\":\"Manage devices that can skip two-factor authentication\",\"empty\":\"No trusted devices found\",\"emptyDescription\":\"Devices you mark as trusted will appear here\",\"howItWorks\":{\"title\":\"How Trusted Devices Work\",\"description\":\"When you sign in with two-factor authentication, you can choose to trust your device for 60 days. Trusted devices won't require a verification code during this period.\",\"removeInstructions\":\"To remove trust from a device, simply sign out or clear your browser cookies on that device.\"},\"device\":{\"current\":\"This Device\",\"lastUsed\":\"Last used {date}\",\"revoke\":\"Revoke\",\"revoking\":\"Revoking...\"},\"revoke\":{\"title\":\"Revoke Trusted Device\",\"description\":\"Are you sure you want to revoke this device? You'll need to verify your identity next time you sign in from this device.\",\"confirm\":\"Revoke Device\",\"cancel\":\"Cancel\"},\"error\":{\"title\":\"Error Loading Devices\",\"description\":\"An error occurred while loading trusted devices. Please try again.\",\"revokeError\":\"Failed to revoke device. Please try again.\"},\"success\":{\"revoked\":\"Device successfully revoked\"}},\"oauth\":{\"title\":\"Connected Accounts\",\"description\":\"Link your account with OAuth providers to sign in more easily\",\"linkedAccounts\":\"Linked A
1ccounts\",\"availableProviders\":\"Available Providers\",\"connected\":\"Connected\",\"linkProvider\":\"Link {provider} Account\",\"unlink\":\"Unlink\",\"cannotUnlinkLast\":\"You cannot unlink your only sign-in method\",\"empty\":\"No OAuth providers are configured\",\"loading\":\"Loading accounts...\",\"unlinkDialog\":{\"title\":\"Unlink {provider} Account\",\"description\":\"Are you sure you want to unlink your {provider} account? You'll need to use another sign-in method to access your account.\",\"confirm\":\"Unlink Account\",\"cancel\":\"Cancel\",\"unlinking\":\"Unlinking...\"},\"error\":{\"loadError\":\"Failed to load connected accounts. Please try again.\",\"linkError\":\"Failed to link account. Please try again.\",\"unlinkError\":\"Failed to unlink account. Please try again.\",\"invalidProvider\":\"Invalid OAuth provider\"},\"success\":{\"linked\":\"Account successfully linked\",\"unlinked\":\"Account successfully unlinked\"}}},\"deleteAccount\":{\"title\":\"Delete Account\",\"description\":\"Permanently delete your account and all associated data\",\"button\":\"Delete My A
1ccount\",\"ownerWarningTitle\":\"You are the sole owner of one or more workspaces\",\"ownerWarning\":\"You cannot delete your account while you are the sole owner of one or more workspaces. Please transfer ownership or delete those workspaces first.\",\"activeSubscriptionsTitle\":\"Active Subscriptions\",\"activeSubscriptionsWarning\":\"You have {count, plural, one {# active subscription} other {# active subscriptions}}. Please cancel all subscriptions before deleting your account.\",\"blockedOrganizationsTitle\":\"Workspaces Blocking Deletion\",\"blockedOrganizationsWarning\":\"You are the sole owner of {count, plural, one {# workspace} other {# workspaces}} with other members. Please transfer ownership or remove other members first.\",\"organizationsToDeleteTitle\":\"Workspaces That Will Be Deleted\",\"organizationsToDeleteInfo\":\"{count, plural, one {# workspace} other {# workspaces}} where you are the sole member will be permanently deleted along with your account.\",\"dialog\":{\"title\":\"Delete Your Account\",\"warning\":\"⚠️ This action cannot be undone\",\"consequences\":{\"title\":\"This will permanently delete:\",\"personalData\":\"Your profile and personal information\",\"sessions\":\"All active sessions\",\"memberships\":\"Your membership in all workspaces\",\"oauth\":\"Connected OAuth accounts\"},\"organizationOwnerWarning\":\"You cannot delete your account while you are the sole owner of one or more workspaces. Please transfer ownership or delete those workspaces first.\",\"activeSubscriptionsWarning\":\"You have {count, plural, one {# active subscription} other {# active subscriptions}}. Cancel all subscriptions before proceeding.\",\"blockedOrganizationsWarning\":\"You are the sole owner of {count, plural, one {# workspace} other {# workspaces}} with other members. Transfer ownership or remove members before proceeding.\",\"organizationsToDelete\":\"{count, plural, one {# workspace} other {# workspaces}} where you are the sole member will also be deleted.\",\"confirmationLabel\":\"Type DELETE to confirm\",\"passwordLabel\":\"Password\",\"passwordDescription\":\"Enter your password to verify your identity\",\"emailVerificationTitle\":\"Email Confirmation Required\",\"emailVerificationDescription\":\"After submitting, we will send a confirmation link to your email. You must click this link to permanently delete your account.\",\"emailSentTitle\":\"Check Your Email\",\"emailSentDescription\":\"We've sent a verification link to {email}. Please check your email and click the link to complete your account deletion. You will be signed out when you close this dialog.\",\"tokenStep\":{\"title\":\"Enter Verification Code\",\"description\":\"We've sent a verification code to {email}. Please check your email and enter the code below.\",\"tokenLabel\":\"Verification Code\",\"tokenPlaceholder\":\"Enter code from email\",\"resend\":\"Resend Email\",\"verify\":\"Confirm Deletion\",\"verifying\":\"Verifying...\"}
1,\"cancel\":\"Cancel\",\"confirm\":\"Delete My Account\",\"requesting\":\"Sending...\",\"deleting\":\"Deleting...\",\"close\":\"Close\"},\"success\":{\"deleted\":\"Account deleted successfully\",\"verificationEmailSent\":\"Verification email sent. Please check your inbox to complete account deletion.\"},\"error\":{\"title\":\"Error Deleting Account\",\"description\":\"Failed to delete account. Please try again.\",\"organizationOwner\":\"Cannot delete account. Transfer workspace ownership first.\",\"sendOtp\":\"Failed to send verification code. Please try again.\",\"verifyOtp\":\"Invalid or expired verification code. Please try again.\",\"noEmail\":\"Unable to verify email address\",\"sendOtpFailed\":\"Failed to send verification code. Please try again.\",\"deleteFailed\":\"Failed to delete account. Please try again.\",\"tokenInvalid\":\"Invalid or expired verification code. Please try again.\",\"tokenMinLength\":\"Token must be at least 10 characters\",\"tokenMaxLength\":\"Token must be at most 50 characters\"}},\"organizationSettings\":{\"pageTitle\":\"Settings\",\"pageDescription\":\"Manage your workspace settings\",\"workspaceId\":{\"title\":\"Workspace ID\",\"description\":\"Share this ID or the link below with teammates to invite them to this workspace.\",\"copyId\":\"Copy workspace ID\",\"copyLink\":\"Copy share link\",\"copied\":\"Copied to clipboard\",\"copyFailed\":\"Could not copy — try selecting the text manually\"},\"image\":{\"title\":\"Workspace Logo\",\"description\":\"Update your workspace logo that appears across the application\",\"label\":\"Logo\",\"uploadLabel\":\"Click to upload or drag and drop\",\"save\":\"Save Changes\",\"saving\":\"Saving...\",\"success\":\"Logo updated successfully\",\"error\":{\"title\":\"Error Updating Logo\",\"description\":\"An error occurred while updating your workspace logo. Please try again.\",\"updateFailed\":\"Failed to update logo. Please try again.\",\"sizeLimit\":\"Logo size must be less than 2MB\",\"invalidType\":\"Invalid image type. Please use JPEG, PNG, GIF, or WebP.\"}},\"name\":{\"title\":\"Workspace Name \u0026 Slug\",\"description\":\"Update your workspace's display name and unique URL slug\",\"label\":\"Workspace Name\",\"placeholder\":\"Acme Inc.\",\"save\":\"Save Changes\",\"saving\":\"Saving...\",\"updating\":\"Updating workspace name...\",\"success\":\"Workspace updated successfully\",\"errors\":{\"minLength\":\"Workspace name must be at least 2 characters\",\"maxLength\":\"Workspace name must be less than 50 characters\"},\"slug\":{\"label\":\"Workspace Slug\",\"placeholder\":\"acme-inc\",\"description\":\"Your workspace's unique identifier. Lowercase letters, numbers, and hyphens.\",\"errors\":{\"minLength\":\"Slug must be at least 2 characters\",\"maxLength\":\"Slug must be less than 50 characters\",\"taken\":\"That slug is already taken — pick another\"}},\"error\":{\"title\":\"Error Updating Workspace\",\"description\":\"An error occurred while updating your workspace. Please try again.\",\"updateFailed\":\"Failed to update workspace. Please try again.\"}},\"language\":{\"title\":\"Support Channel Language\",\"description\":\"Language used for transactional emails sent to workspace members (trial reminders, capacity alerts, lifecycle nudges). Pick the language your team operates in.\",\"label\":\"Language\",\"ownerOnlyHint\":\"Only the workspace owner can change this — it affects emails sent to every member.\",\"options\":{\"en\":\"English\",\"vi\":\"Tiếng Việt\"},\"save\":\"Save\",\"saving\":\"Saving...\",\"success\":\"Language updated to {language}\",\"error\":{\"loadFailed\":\"Could not load current language. Refresh the page to try again.\",\"updateFailed\":\"Could not save language. Try again or refresh the page.\",\"notOwner\":\"Only the workspace owner can change this setting.\"}},\"delete\":{\"title\":\"Delete Workspace\",\"description\":\"Permanently delete this workspace and all associated data\",\"buttonLabel\":\"Delete Workspace\",\"confirmTitle\":\"Confirm Workspace Deleti
1on\",\"confirmDescription\":\"This action cannot be undone. All data will be permanently deleted.\",\"typeToConfirmLabel\":\"Workspace Name\",\"typeToConfirmPlaceholder\":\"Type workspace name to confirm\",\"sendCodeButton\":\"Send Verification Code\",\"sendingCode\":\"Sending...\",\"codeSent\":\"Verification code sent to your email\",\"verifyTitle\":\"Enter Verification Code\",\"verifyDescription\":\"Check {email} for the 6-digit code\",\"codeDescription\":\"Enter the 6-digit code from your email\",\"deleteButton\":\"Delete Workspace\",\"deleting\":\"Deleting...\",\"success\":\"Workspace deleted successfully\",\"errors\":{\"nameDoesNotMatch\":\"Workspace name does not match\",\"invalidCode\":\"Invalid or expired verification code\",\"failed\":\"Failed to delete workspace\",\"organizationNameRequired\":\"Workspace name is required\",\"codeMustBeSixDigits\":\"Code must be 6 digits\",\"codeMustBeNumeric\":\"Code must contain only numbers\"},\"warnings\":{\"activeSubscriptions\":{\"title\":\"Active Subscriptions\",\"description\":\"This workspace has {count} active subscription(s). Cancel all subscriptions before deleting.\"}},\"consequences\":{\"title\":\"This will permanently delete:\",\"organizationData\":\"All workspace data and settings\",\"members\":\"{count} member(s) will lose access\",\"membersNote\":\"Members remain as users with their personal workspaces\",\"invitations\":\"All pending invitations\",\"irreversible\":\"This action cannot be undone\"}}},\"personalWorkspaceSettings\":{\"pageTitle\":\"Settings\",\"pageDescription\":\"Manage your workspace settings\"}},\"goodbye\":{\"title\":\"Account Deleted\",\"description\":\"Your account has been successfully deleted\",\"message1\":\"We're sorry to see you go. Your account and all associated data have been permanently deleted from our systems.\",\"message2\":\"Thank you for using our service. If you decide to come back, you're always welcome to create a new account.\",\"returnHome\":\"Return to Home\",\"signInAgain\":\"Create New Account\"},\"errors\":{\"default\":\"An unexpected error occurred. Please try again.\",\"USER_NOT_FOUND\":\"User not found\",\"FAILED_TO_CREATE_USER\":\"Failed to create user\",\"FAILED_TO_CREATE_SESSION\":\"Failed to create session\",\"FAILED_TO_UPDATE_USER\":\"Failed to update user\",\"FAILED_TO_GET_SESSION\":\"Failed to get session\",\"INVALID_PASSWORD\":\"Invalid password\",\"INVALID_EMAIL\":\"Invalid email\",\"INVALID_EMAIL_OR_PASSWORD\":\"Invalid email or password\",\"SOCIAL_ACCOUNT_ALREADY_LINKED\":\"Social account already linked\",\"PROVIDER_NOT_FOUND\":\"Provider not found\",\"INVALID_TOKEN\":\"Invalid token\",\"ID_TOKEN_NOT_SUPPORTED\":\"id_token not supported\",\"THAT_ROLE_NAME_IS_ALREADY_TAKEN\":\"That role name is already taken\",\"FAILED_TO_GET_USER_INFO\":\"Failed to get user info\",\"USER_EMAIL_NOT_FOUND\":\"User email not found\",\"EMAIL_NOT_VERIFIED\":\"Email not verified\",\"PASSWORD_TOO_SHORT\":\"Password too short\",\"PASSWORD_TOO_LONG\":\"Password too long\",\"USER_ALREADY_EXISTS\":\"This email is not available.\",\"USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL\":\"This email is not available. Please try another one.\",\"EMAIL_CAN_NOT_BE_UPDATED\":\"Email can not be updated\",\"CREDENTIAL_ACCOUNT_NOT_FOUND\":\"Credential account not found\",\"SESSION_EXPIRED\":\"Session expired. Re-authenticate to perform this action.\",\"FAILED_TO_UNLINK_LAST_ACCOUNT\":\"You can't unlink your last account\",\"ACCOUNT_NOT_FOUND\":\"Account not found\",\"USER_ALREADY_HAS_PASSWORD\":\"User already has a password. Provide that to delete the account.\",\"MEMBER_NOT_FOUND\":\"Member not found\",\"ROLE_NOT_FOUND\":\"Role not found\",\"YOU_ARE_NOT_ALLOWED_TO_CREATE_A_NEW_TEAM\":\"You are not allowed to create a new team\",\"TEAM_ALREADY_EXISTS\":\"Team already exists\",\"TEAM_NOT_FOUND\":\"Team not found\",\"YOU_CANNOT_LEAVE_THE_ORGANIZATION_AS_THE_ONLY_OWNER\":\"You cannot leave the workspace as the only owner\",\"YOU_CANNOT_LEAVE_THE_ORGANIZATION_WITHOUT_AN_OWNER\":\"You cannot leave the workspace without an owner\",\"YOU_ARE_NOT_ALLOWED_TO_DELETE_THIS_MEMBER\":\"You are not allowed to delete this member\",\"YOU_ARE_NOT_ALLOWED_TO_INVITE_USERS_TO_THIS_ORGANIZATION\":\"You are not allowed to invite users to this workspace\",\"USER_IS_ALREADY_INVITED_TO_THIS_ORGANIZATION\":\"User is already invited to this workspace\",\"INVITATION_NOT_FOUND\":\"Invitation not found\",\"YOU_ARE_NOT_THE_RECIPIENT_OF_THE_INVITATION\":\"You are not the recipient of the invitation\",\"EMAIL_VERIFICATION_REQUIRED_BEFORE_ACCEPTING_OR_REJECTING_INVITATION\":\"Email verification required before accepting or rejecting invitation\",\"YOU_ARE_NOT_ALLOWED_TO_CANCEL_THIS_INVITATION\":\"You are not allowed to cancel this invitation\",\"INVITER_IS_NO_LONGER_A_MEMBER_OF_THE_ORGANIZATION\":\"Inviter is no longer a member of the workspace\",\"YOU_ARE_NOT_ALLOWED_TO_INVITE_USER_WITH_THIS_ROLE\":\"You are not allowed to invite a user with this role\",\"FAILED_TO_RETRIEVE_INVITATION\":\"Failed to retrieve invitation\",\"YOU_HAVE_REACHED_THE_MAXIMUM_NUMBER_OF_TEAMS\":\"You have reached the maximum number of teams\",\"UNABLE_TO_REMOVE_LAST_TEAM\":\"Unable to remove last team\",\"YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_MEMBER\":\"You are not allowed to update this member\",\"ORGANIZATION_MEMBERSHIP_LIMIT_REACHED\":\"Workspace membership limit reached\",\"YOU_ARE_NOT_ALLOWED_TO_CREATE_TEAMS_IN_THIS_ORGANIZATION\":\"You are not allowed to create teams in this workspace\",\"YOU_ARE_NOT_ALLOWED_TO_DELETE_TEAMS_IN_THIS_ORGANIZATION\":\"You are not allowed to delete teams in this workspace\",\"YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_TEAM\":\"You are not allowed to update this team\",\"YOU_ARE_NOT_ALLOWED_TO_DELETE_THIS_TEAM\":\"You are not allowed to delete this team\",\"INVITATION_LIMIT_REACHED\":\"Invitation limit reached\",\"TEAM_MEMBER_LIMIT_REACHED\":\"Team member limit reached\",\"USER_IS_NOT_A_MEMBER_OF_THE_TEAM\":\"User is not a member of the team\",\"YOU_CAN_NOT_ACCESS_THE_MEMBERS_OF_THIS_TEAM\":\"You are not allowed to list the members of this team\",\"YOU_DO_NOT_HAVE_AN_ACTIVE_TEAM\":\"You do not have an active team\",\"YOU_ARE_NOT_ALLOWED_TO_CREATE_A_NEW_TEAM_MEMBER\":\"You are not allowed to create a new member\",\"YOU_ARE_NOT_ALLOWED_TO_REMOVE_A_TEAM_MEMBER\":\"You are not allowed to remove a team member\",\"YOU_ARE_NOT_ALLOWED_TO_ACCESS_THIS_ORGANIZATION\":\"You are not allowed to access this workspace as an owner\",\"YOU_ARE_NOT_A_MEMBER_OF_THIS_ORGANIZATION\":\"You are not a member of this workspace\",\"MISSING_AC_INSTANCE\":\"Dynamic Access Control requires a pre-defined ac instance on the server auth plugin. Read server logs for more information\",\"YOU_MUST_BE_IN_AN_ORGANIZATION_TO_CREATE_A_ROLE\":\"You must be in a workspace to create a role\",\"YOU_ARE_NOT_ALLOWED_TO_CREATE_A_ROLE\":\"You are not allowed to create a role\",\"YOU_ARE_NOT_ALLOWED_TO_UPDATE_A_ROLE\":\"You are not allowed to update a role\",\"YOU_ARE_NOT_ALLOWED_TO_DELETE_A_ROLE\":\"You are not allowed to delete a role\",\"YOU_ARE_NOT_ALLOWED_TO_READ_A_ROLE\":\"You are not allowed to read a role\",\"YOU_ARE_NOT_ALLOWED_TO_LIST_A_ROLE\":\"You are not allowed to list a role\",\"YOU_ARE_NOT_ALLOWED_TO_GET_A_ROLE\":\"You are not allowed to get a role\",\"TOO_MANY_ROLES\":\"This workspace has too many roles\",\"INVALID_RESOURCE\":\"The provided permission includes an invali
1d resource\",\"ROLE_NAME_IS_ALREADY_TAKEN\":\"That role name is already taken\",\"CANNOT_DELETE_A_PRE_DEFINED_ROLE\":\"Cannot delete a pre-defined role\",\"YOU_CANNOT_BAN_YOURSELF\":\"You cannot ban yourself\",\"YOU_ARE_NOT_ALLOWED_TO_CHANGE_USERS_ROLE\":\"You are not allowed to change users role\",\"YOU_ARE_NOT_ALLOWED_TO_CREATE_USERS\":\"You are not allowed to create users\",\"YOU_ARE_NOT_ALLOWED_TO_LIST_USERS\":\"You are not allowed to list users\",\"YOU_ARE_NOT_ALLOWED_TO_LIST_USERS_SESSIONS\":\"You are not allowed to list users sessions\",\"YOU_ARE_NOT_ALLOWED_TO_BAN_USERS\":\"You are not allowed to ban users\",\"YOU_ARE_NOT_ALLOWED_TO_IMPERSONATE_USERS\":\"You are not allowed to impersonate users\",\"YOU_ARE_NOT_ALLOWED_TO_REVOKE_USERS_SESSIONS\":\"You are not allowed to revoke users sessions\",\"YOU_ARE_NOT_ALLOWED_TO_DELETE_USERS\":\"You are not allowed to delete users\",\"YOU_ARE_NOT_ALLOWED_TO_SET_USERS_PASSWORD\":\"You are not allowed to set users password\",\"BANNED_USER\":\"You have been banned from this application\",\"YOU_ARE_NOT_ALLOWED_TO_GET_USER\":\"You are not allowed to get user\",\"NO_DATA_TO_UPDATE\":\"No data to update\",\"YOU_ARE_NOT_ALLOWED_TO_UPDATE_USERS\":\"You are not allowed to update users\",\"YOU_CANNOT_REMOVE_YOURSELF\":\"You cannot remove yourself\",\"YOU_ARE_NOT_ALLOWED_TO_SET_NON_EXISTENT_VALUE\":\"You are not allowed to set a non-existent role value\",\"ACCOUNT_DELETION_BLOCKED\":\"Cannot delete account\",\"ACCOUNT_HAS_ACTIVE_SUBSCRIPTIONS\":\"You have {count} active subscription(s). Please cancel all subscriptions before deleting your account.\",\"ACCOUNT_SOLE_OWNER_OF_ORGANIZATIONS\":\"You are the sole owner of {count} workspace(s) with other members. Please transfer ownership or remove other members first.\",\"ORGANIZATION_DELETION_BLOCKED\":\"Cannot delete workspace\",\"ORGANIZATION_HAS_ACTIVE_SUBSCRIPTIONS\":\"This workspace has {count} active subscription(s). Cancel all subscriptions before deleting.\",\"SUBSCRIPTION_NOT_FOUND\":\"Subscription not found\",\"SUBSCRIPTION_PLAN_NOT_FOUND\":\"Subscription plan not found\",\"ALREADY_SUBSCRIBED_PLAN\":\"You're already subscribed to this plan\",\"UNABLE_TO_CREATE_CUSTOMER\":\"Unable to create customer\",\"FAILED_TO_FETCH_PLANS\":\"Failed to fetch plans\",\"EMAIL_VERIFICATION_REQUIRED\":\"Email verification is required before you can subscribe to a plan\",\"SUBSCRIPTION_NOT_ACTIVE\":\"Subscription is not active\",\"SUBSCRIPTION_NOT_SCHEDULED_FOR_CANCELLATION\":\"Subscription is not scheduled for cancellation\"},\"app\":{\"channelHealth\":{\"configLabel\":\"Configuration check\",\"checking\":\"Checking configuration…\",\"checkFailed\":\"Couldn't check configuration — try again shortly.\",\"unverified\":\"Some checks couldn't be verified — try again shortly.\",\"reconnect\":\"Reconnect\",\"checks\":{\"token\":\"Access token valid\",\"webhook\":\"Subscribed to message webhook\",\"ig_link\":\"Instagram linked to this Page\",\"webhook_url\":\"Webhook points to us\",\"webhook_delivery\":\"No recent delivery errors\",\"webhook_active\":\"Webhook is active\",\"phone_registered\":\"Phone number registered\",\"token_fresh\":\"Access token not expired\"},\"reasons\":{\"token\":\"The saved access token no longer works. Reconnect this channel.\",\"webhook\":\"This isn't subscribed to the message webhook. Reconnect to re-subscribe.\",\"ig_link\":\"This Facebook Page isn't linked to this Instagram account. Re-link it in Instagram settings, or reconnect and pick the right Page.\",\"webhook_url\":\"The webhook isn't pointing to us. Reconnect to reset it.\",\"webhook_delivery\":\"The provider reported a recent delivery error — see the detail below.\",\"webhook_active\":\"The webhook is turned off. Turn it on, or reconnect.\",\"phone_registered\":\"This phone number isn't registered on the connected WhatsApp account. Reconnect and pick the right number.\",\"token_fresh\":\"The access token has expired. Reconnect to refresh it.\"}},\"activity\":{\"title\":\"Activity Log\",\"subtitle\":\"A record of who changed what in this workspace. Available on the Pro plan and above.\",\"adminOnly\":\"The activity log is available to workspace owners and admins.\",\"loading\":\"Loading activity…\",\"error\":\"Couldn't load the activity log. Please try again.\",\"empty\":\"No activity yet. Actions like connecting a channel or updating your widget will show up here.\",\"upsellTitle\":\"See your workspace activity\",\"upsellBody\":\"Track who connected channels, changed settings, and more. Upgrade to {tier} to view the activity log.\",\"upsellCta\":\"Upgrade to {tier}
1\",\"actions\":{\"channel_connected\":\"Connected a channel\",\"channel_agent_bound\":\"Assigned an agent to a channel\",\"channel_agent_unbound\":\"Unassigned an agent from a channel\",\"integration_connected\":\"Connected an integration\",\"integration_disconnected\":\"Disconnected an integration\",\"widget_config_updated\":\"Updated widget settings\",\"agent_created\":\"Created an agent\",\"agent_deleted\":\"Deleted an agent\",\"kb_document_added\":\"Added a knowledge base document\",\"kb_document_removed\":\"Removed a knowledge base document\",\"lead_form_created\":\"Created a lead form\",\"member_invited\":\"Invited a member\",\"member_joined\":\"Member joined\",\"member_removed\":\"Removed a member\",\"member_login\":\"Logged in\",\"role_change\":\"Changed a member's role\",\"plan_changed\":\"Changed the plan\"}},\"nav\":{\"agentBuilder\":\"Agent Builder\",\"chatAgent\":\"Chat Agent\",\"settings\":\"Settings\",\"deploy\":\"Deploy\",\"knowledgeBase\":\"Knowledge Base\",\"tools\":\"Tools\",\"leads\":\"Leads\",\"handoffs\":\"Handoffs\",\"analytics\":\"Analytics\",\"sessions\":\"Sessions\",\"integrations\":\"Integrations\",\"workflowEngines\":\"Workflow Engines\",\"support\":\"Support\",\"help\":\"Help\",\"csInbox\":\"Inbox\",\"agency\":\"Agency\",\"demoGenerator\":\"Demo Generator\",\"contacts\":\"Contacts\"},\"agents\":{\"pageTitle\":\"My Agents\",\"subtitle\":\"Manage and monitor your automation agents\",\"createAgent\":\"Create Agent\",\"createChatAgent\":\"Create Your Chat Agent\",\"emptyState\":\"No agents yet. Deploy your first one to get started.\",\"searchPlaceholder\":\"Search agents...\",\"noSearchMatch\":\"No agents match your search.\",\"columns\":{\"name\":\"Name\",\"type\":\"Type\",\"status\":\"Status\",\"created\":\"Created\"},\"actions\":{\"agentActions\":\"Agent actions\",\"open\":\"Open\",\"activate\":\"Activate\",\"resume\":\"Resume\",\"pause\":\"Pause\",\"addToMenu\":\"Add to menu\",\"removeFromMenu\":\"Remove from menu\",\"menuCapReached\":\"Menu limit reached (10/10) — unpin one first\"},\"toasts\":{\"activated\":\"Agent activated\",\"activateFailed\":\"Failed to activate\",\"paused\":\"Agent paused\",\"pauseFailed\":\"Failed to pause\",\"addedToMenu\":\"Added to menu\",\"addToMenuFailed\":\"Failed to add to menu\",\"removedFromMenu\":\"Removed from menu\",\"removeFromMenuFailed\":\"Failed to remove from menu\"},\"createSheet\":{\"title\":\"Create new Agent\",\"description\":\"Name your agent and pick a template. You can change these later.\",\"nameLabel\":\"Agent name\",\"namePlaceholder\":\"e.g. Sales Concierge\",\"nameHint\":\"Up to {max} characters.\",\"nameRequired\":\"Name is required.\",\"nameTooLong\":\"Name must be {max} characters or fewer.\",\"typeLabel\":\"Template\",\"cancel\":\"Cancel\",\"confirm\":\"Create Agent\",\"creating\":\"Creating...\",\"toastCreated\":\"Agent created\",\"toastFailed\":\"Failed to create agent\",\"startingPointLabel\":\"Starting point\",\"startingPointHint\":\"Pick a ready-made persona to seed the instructions, or start blank.\",\"blankName\":\"Blank\",\"blankDescription\":\"No preset instructions — write your own.\"}},\"templates\":{\"kbChatbot\":\"Knowledge Base Agent\",\"outboundSales\":\"Outbound Sales\",\"marketing\":\"Marketing\",\"content\":\"Content\",\"customerSuccess\":\"Customer Success\",\"recruiting\":\"Recruiting\"},\"dashboard\":{\"loading\":\"Loading dashboard...\",\"noAgentsYet\":\"No agents yet\",\"createFirstButton\":\"Create Your Chat Agent\",\"yourAgents\":\"Your Agents\",\"new\":\"New\",\"updatedAgo\":\"Updated {when}\",\"quickActionsTitle\":\"Quick Actions\",\"gettingStarted\":\"Getting Started ({completed}/{total})\",\"onboarding\":{\"createOrg\":\"Create an organization\",\"connectWorkflow\":\"Connect Workflow Engine (n8n, etc)\",\"createFirstAgent\":\"Create your first agent\",\"optionalBadge\":\"Optional\"},\"statusLabels\":{\"active\":\"Active\",\"paused\":\"Paused\",\"draft\":\"Draft\",\"deactivated\":\"Inactive\"},\"actions\":{\"workflowEnginesLabel\":\"Workflow Engines\",\"workflowEnginesManage\":\"Manage n8n connection\",\"workflowEnginesConnect\":\"Connect n8n to get started\",\"chatAgentLabel\":\"Chat Agent\",\"chatAgentDescription\":\"Configure your agent\",\"settingsLabel\":\"Settings\",\"settingsDescription\":\"Workspace settings\"}},\"datasets\":{\"subtitle\":\"Manage your knowledge bases and documents for your agent\",\"create\":\"Create\"},\"integrations\":{\"bookingCta\":{\"heading\":\"Booking button\",\"label\":\"Booking button label\",\"placeholder\":\"Book a demo\",\"description\":\"When a scheduler is connected, visitors see a one-tap booking button in the chat. Leave blank to use the default.\",\"save\":\"Save\",\"saving\":\"Saving…\",\"saveSuccess\":\"Booking button updated\",\"saveFailed\":\"Failed to update booking button\",\"notOwner\":\"Only the workspace owner can change this.\"},\"calendlyEvent\":{\"heading\":\"Default booking type\",\"description\":\"Pick which Calendly event the agent books. \\\"Let the agent choose\\\" lets it pick from your event types per conversation.\",\"agentChooses\":\"Let the agent choose\",\"booksVia\":\"Books via: {name}\",\"loadFailed\":\"Couldn't load your Calendly event types — try reconnecting.\",\"saveSuccess\":\"Default booking type updated\",\"saveFailed\":\"Failed to update the booking type\",\"notOwner\":\"Only the workspace owner can change this.\"},\"title\":\"Integrations\",\"subtitle\":\"Give your agent capabilities — connect tools it can call during a conversation\"},\"line\":{\"pageTitle\":\"LINE\",\"subtitle\":\"Connect a LINE Official Account so your agent answers chats with the same knowledge it uses on your website.\",\"connect\":{\"heading\":\"Connect a LINE channel\",\"step1\":\"At developers.line.biz, open (or create) your Messaging API channel.\",\"step2\":\"Basic settings tab → copy the Channel secret. Messaging API tab → under \\\"Channel access token\\\", select Issue and copy the long-lived token.\",\"step3\":\"Paste both below and Connect — we'll then show your Webhook URL to copy into the LINE console (turn \\\"Use webhook\\\" ON). Also turn Auto-reply / Greeting messages OFF so they don't clash with the agent.\",\"consoleLink\":\"Open LINE Developers console\",\"webhookPreviewLabel\":\"Your Webhook URL (generated after you connect)\",\"webhookPreviewHint\":\"We create your unique URL on connect — you'll copy it into the LINE console's Webhook URL field then, and turn on \\\"Use webhook\\\".\",\"secretPlaceholder\":\"Channel secret\",\"tokenPlaceholder\":\"Channel access token (long-lived)\",\"channelIdPlaceholder\":\"Channel ID (optional)\",\"cta\":\"Connect\",\"connectingState\":\"Connecting…\",\"toastConnected\":\"Connected {name}\",\"toastFailed\":\"Couldn't connect that LINE channel. Check the secret + token and try again.\"},\"connectedHeading\":\"Connected channels\",\"empty\":{\"title\":\"No LINE channel connected yet\",\"body\":\"Paste your Messaging API channel secret + access token above to deploy your agent to LINE.\"},\"status\":{\"connected\":\"Connected\",\"disconnected\":\"Disconnected\"},\"lastError\":\"Last error: {message}\",\"disconnectCta\":\"Disconnect\",\"disconnectingState\":\"Disconnecting…\",\"disconnectConfirmTitle\":\"Disconnect this channel?\",\"disconnectConfirmBody\":\"Your agent will stop replying on this LINE channel. You can reconnect it later with the same credentials.\",\"disconnectConfirmCta\":\"Disconnect\",\"disconnectConsequence1\":\"Your agent stops answering messages on this LINE channel.\",\"disconnectConsequence2\":\"Connected leads and chat history are kept.\",\"disconnectReconnectNote\":\"You can reconnect this channel anytime — visitors just won't get replies until you do.\",\"toastDisconnected\":\"Channel disconnected\",\"managePanel\":{\"expand\":\"Manage\",\"collapse\":\"Hide details\",\"webhookUrlLabel\":\"Webhook URL\",\"webhookUrlHint\":\"Paste this into the LINE console's Webhook URL field and turn on \\\"Use webhook\\\".\",\"webhookUrlSetupRequired\":\"Action needed: copy this Webhook URL into the LINE console and turn on \\\"Use webhook\\\" — until then your agent receives no LINE messages.\",\"copy\":\"Copy\",\"copied\":\"Copied\",\"channelIdLabel\":\"Channel ID\",\"lastActivityLabel\":\"Last activity\",\"lastActivityNever\":\"No activity yet\",\"lastActivityNow\":\"just now\",\"lastActivityMinutes\":\"{value, plural, one {# minute ago} other {# minutes ago}}\",\"lastActivityHours\":\"{value, plural, one {# hour ago} other {# hours ago}}\",\"lastActivityDays\":\"{value, plural, one {# day ago} other {# days ago}}\",\"boundAgentLabel\":\"Bound agent\",\"boundAgentUnbound\":\"Not bound — uses your first agent\"},\"errors\":{\"loadFailed\":\"Something went wrong. Please try again.\"}},\"fbPagePicker\":{\"title\":\"Choose a Facebook Page\",\"body\":\"Your account manages more than one Page. Pick the one to connect.\",\"connect\":\"Connect Page\",\"connectAll\":\"Connect all Pages\",\"connecting\"
1:\"Connecting…\",\"cancel\":\"Cancel\"},\"messenger\":{\"pageTitle\":\"Messenger\",\"subtitle\":\"Connect a Facebook Page so your agent answers Messenger DMs with the same knowledge it uses on your website.\",\"connect\":{\"heading\":\"Connect a Facebook Page\",\"step1\":\"In Meta Business settings, generate a long-lived Page access token for the Page.\",\"step2\":\"Paste the token below and select Connect.\",\"step3\":\"We subscribe the Page to messages automatically — make sure the app's Messenger webhook is configured.\",\"tokenPlaceholder\":\"Page access token (long-lived)\",\"pageIdPlaceholder\":\"Page ID (optional)\",\"cta\":\"Connect\",\"connectingState\":\"Connecting…\",\"toastConnected\":\"Connected {name}\",\"toastFailed\":\"Couldn't connect that Page. Check the token and try again.\",\"fbCta\":\"Connect with Facebook\",\"fbConnecting\":\"Redirecting to Facebook…\",\"orPasteToken\":\"or paste a token manually\",\"connectAnother\":\"Connect another account\"},\"oauth\":{\"success\":\"Facebook Page connected.\",\"connectAllDone\":\"Connected {count} of {total} Pages.\",\"errorNoPages\":\"No Facebook Page was found on your account.\",\"errorNoIgPages\":\"None of your Facebook Pages has an Instagram account linked. Link your Instagram to a Page in Instagram settings, then reconnect.\",\"errorMultiplePages\":\"Your account manages multiple Pages — paste a token below to connect one (multi-Page selection is coming soon).\",\"errorDenied\":\"Facebook login was cancelled.\",\"errorGeneric\":\"Couldn't connect to Facebook. Please try again.\",\"errorConnectFailed\":\"Couldn't connect that Page. Please try again.\",\"errorConnectedElsewhere\":\"This Facebook Page is already connected in another workspace — messages route there, not here.\",\"moveItHere\":\"Move it here\"},\"connectedHeading\":\"Connected Pages\",\"empty\":{\"title\":\"No Facebook Page connected yet\",\"body\":\"Paste a long-lived Page access token above to deploy your agent to Messenger.\"},\"status\":{\"connected\":\"Connected\",\"disconnected\":\"Disconnected\"},\"lastError\":\"Last error: {message}\",\"disconnectCta\":\"Disconnect\",\"disconnectingState\":\"Disconnecting…\",\"cancel\":\"Cancel\",\"disconnectConfirmTitle\":\"Disconnect this Page?\",\"disconnectConfirmBody\":\"Your agent will stop replying on this Page. You can reconnect it later with the same token.\",\"disconnectConfirmCta\":\"Disconnect\",\"disconnectConsequence1\":\"Your agent stops answering Messenger DMs for this Page.\",\"disconnectConsequence2\":\"Connected leads and chat history are kept.\",\"disconnectReconnectNote\":\"You can reconnect this Page anytime — visitors just won't get replies until you do.\",\"toastDisconnected\":\"Page disconnected\",\"managePanel\":{\"expand\":\"Manage\",\"collapse\":\"Hide details\",\"pageIdLabel\":\"Page ID\",\"lastActivityLabel\":\"Last activity\",\"lastActivityNever\":\"No activity yet\",\"lastActivityNow\":\"just now\",\"lastActivityMinutes\":\"{value, plural, one {# minute ago} other {# minutes ago}}\",\"lastActivityHours\":\"{value, plural, one {# hour ago} other {# hours ago}}\",\"lastActivityDays\":\"{value, plural, one {# day ago} other {# days ago}}\",\"boundAgentLabel\":\"Bound agent\",\"boundAgentUnbound\":\"Not bound — uses your first agent\",\"testChatLabel\":\"Test chat\",\"testChatCta\":\"Message this Page\"},\"errors\":{\"loadFailed\":\"Something went wrong. Please try again.\"}},\"instagram\":{\"pageTitle\":\"Instagram\",\"subtitle\":\"Connect your Instagram professional account so your agent answers Instagram DMs with the same knowledge it uses on your website.\",\"connect\":{\"heading\":\"Connect an Instagram account\",\"step1\":\"Link your Instagram professional account to a Facebook Page, then generate a long-lived Page access token in Meta Business settings.\",\"step2\":\"Paste the token below and select Connect — we resolve the linked Instagram account automatically.\",\"step3\":\"We subscribe the Page to messages automatically — make sure the app's Instagram webhook is configured.\",\"tokenPlaceholder\":\"Page access token (long-lived)\",\"pageIdPlaceholder\":\"Page ID (optional)\",\"cta\":\"Connect\",\"connectingState\":\"Connecting…\",\"toastConnected\":\"Connected {name}\",\"toastFailed\":\"Couldn't connect that account. Check the token and the linked Instagram account, then try again.\",\"fbCta\":\"Connect with Facebook\",\"fbConnecting\"
1:\"Redirecting to Facebook…\",\"orPasteToken\":\"or paste a token manually\",\"prereqHeading\":\"Before you connect\",\"prereqBusinessTitle\":\"Your Instagram must be a Business account.\",\"prereqBusinessBody\":\"In the Instagram app: Settings → Account type and tools → Switch to professional account → Business. If it only offers “Switch to creator/personal”, you're already a Business account.\",\"prereqLinkTitle\":\"It must be linked to a Facebook Page you admin.\",\"prereqLinkBody\":\"Connect the account to a Facebook Page: Facebook Page → Settings → Linked accounts → Instagram. Use the Page you'll pick below (a dedicated Page is fine). We resolve the linked Instagram account off that Page.\",\"prereqLinkCta\":\"Open Facebook linked accounts\",\"connectAnother\":\"Connect another account\"},\"oauth\":{\"success\":\"Instagram account connected.\",\"errorNoPages\":\"No Facebook Page was found on your account.\",\"errorNoIgPages\":\"None of your Facebook Pages has an Instagram account linked. Link your Instagram to a Page in Instagram settings, then reconnect.\",\"errorMultiplePages\":\"Your account manages multiple Pages — paste a token below to connect one (multi-Page selection is coming soon).\",\"errorDenied\":\"Facebook login was cancelled.\",\"errorGeneric\":\"Couldn't connect to Facebook. Please try again.\",\"errorConnectFailed\":\"Couldn't connect that Page — make sure you picked the Page linked to your Instagram Business account.\",\"errorConnectedElsewhere\":\"This Instagram account is already connected in another workspace — messages route there, not here.\",\"moveItHere\":\"Move it here\"},\"connectedHeading\":\"Connected accounts\",\"empty\":{\"title\":\"No Instagram account connected yet\",\"body\":\"Paste a long-lived Page access token above to deploy your agent to Instagram DMs.\"},\"status\":{\"connected\":\"Connected\",\"disconnected\":\"Disconnected\"},\"lastError\":\"Last error: {message}\",\"disconnectCta\":\"Disconnect\",\"disconnectingState\":\"Disconnecting…\",\"disconnectConfirmTitle\":\"Disconnect this account?\",\"disconnectConfirmBody\":\"Your agent will stop replying on this Instagram account. You can reconnect it later with the same token.\",\"disconnectConfirmCta\":\"Disconnect\",\"disconnectConsequence1\":\"Your agent stops answering Instagram DMs for this account.\",\"disconnectConsequence2\":\"Connected leads and chat history are kept.\",\"disconnectReconnectNote\":\"You can reconnect this account anytime — visitors just won't get replies until you do.\",\"toastDisconnected\":\"Account disconnected\",\"managePanel\":{\"expand\":\"Manage\",\"collapse\":\"Hide details\",\"igIdLabel\":\"Instagram account ID\",\"lastActivityLabel\":\"Last activity\",\"lastActivityNever\":\"No activity yet\",\"lastActivityNow\":\"just now\",\"lastActivityMinutes\":\"{value, plural, one {# minute ago} other {# minutes ago}}\",\"lastActivityHours\":\"{value, plural, one {# hour ago} other {# hours ago}}\",\"lastActivityDays\":\"{value, plural, one {# day ago} other {# days ago}}\",\"boundAgentLabel\":\"Bound agent\",\"boundAgentUnbound\":\"Not bound — uses your first agent\",\"testChatLabel\":\"Test chat\",\"testChatCta\":\"Message this account\",\"openChatTitle\":\"Open the Instagram conversation\",\"pageLabel\":\"Connected Facebook Page\"},\"errors\":{\"loadFailed\":\"Something went wrong. Please try again.\"}},\"telegram\":{\"testChatCta\":\"Open the bot\",\"pageTitle\":\"Telegram bot\",\"subtitle\":\"Connect a Telegram bot so your agent answers DMs with the same knowledge it uses on your website.\",\"connect\":{\"heading\":\"Connect a bot\",\"step1\":\"In Telegram, open @BotFather and send /newbot. Give your bot a display name, then a username ending in \\\"bot\\\".\",\"step2\":\"BotFather replies with a token that looks like 123456789:AAE… — copy the whole line (that's your bot token).\",\"step3\":\"Paste the token below and select Connect. We register the webhook automatically — there's nothing else to set up.\",\"botfatherLink\":\"Open BotFather\",\"tokenPlaceholder\":\"Paste your bot token (123456789:ABC…)\",\"invali
1dToken\":\"That doesn't look like a Telegram bot token. It should look like 123456789:ABC…\",\"cta\":\"Connect\",\"connectingState\":\"Connecting…\",\"toastConnected\":\"Connected {name}\",\"toastFailed\":\"Couldn't connect that bot. Check the token and try again.\"},\"connectedHeading\":\"Connected bots\",\"empty\":{\"title\":\"No Telegram bot connected yet\",\"body\":\"Create a bot with BotFather and paste its token above to deploy your agent to Telegram.\"},\"status\":{\"connected\":\"Connected\",\"disconnected\":\"Disconnected\"},\"lastError\":\"Last error: {message}\",\"disconnectCta\":\"Disconnect\",\"disconnectingState\":\"Disconnecting…\",\"disconnectConfirmTitle\":\"Disconnect this bot?\",\"disconnectConfirmBody\":\"Your agent will stop replying on this bot. You can reconnect it later with the same token.\",\"disconnectConfirmCta\":\"Disconnect\",\"disconnectConsequence1\":\"Your agent stops answering messages on this Telegram bot.\",\"disconnectConsequence2\":\"Connected leads and chat history are kept.\",\"disconnectReconnectNote\":\"You can reconnect this bot anytime — visitors just won't get replies until you do.\",\"toastDisconnected\":\"Bot disconnected\",\"rotateSecretToast\":\"Webhook secret rotated\",\"managePanel\":{\"expand\":\"Manage\",\"collapse\":\"Hide details\",\"botIdLabel\":\"Bot ID\",\"lastActivityLabel\":\"Last activity\",\"lastActivityNever\":\"No activity yet\",\"lastActivityNow\":\"just now\",\"lastActivityMinutes\":\"{value, plural, one {# minute ago} other {# minutes ago}}\",\"lastActivityHours\":\"{value, plural, one {# hour ago} other {# hours ago}}\",\"lastActivityDays\":\"{value, plural, one {# day ago} other {# days ago}}\",\"boundAgentLabel\":\"Bound agent\",\"boundAgentUnbound\":\"Not bound — uses your first agent\",\"webhookSecretLabel\":\"Webhook secret\",\"rotateSecretCta\":\"Rotate secret\",\"rotatingState\":\"Rotating…\"},\"errors\":{\"loadFailed\":\"Something went wrong. Please try again.\"}},\"zalo\":{\"pageTitle\":\"Zalo Official Account\",\"subtitle\":\"Reply to inbound Zalo messages and send approved ZNS templates to your customers.\",\"connectCta\":\"Connect Zalo OA\",\"connectingState\":\"Connecting…\",\"connectedHeading\":\"Connected Official Accounts\",\"empty\":{\"title\":\"No Zalo Official Account connected yet\",\"body\":\"Connect your Zalo OA to reply to inbound messages and send ZNS templates. Your OA stays under your account on Zalo; ChatOtter just dispatches messages on your behalf.\",\"cta\":\"Connect Zalo OA\"},\"comingSoonNotice\":\"Zalo connect is in private beta. Set up your Zalo OA at oa.zalo.me first, then contact us to enable Connect.\",\"status\":{\"pending\":\"Pending first message\",\"pendingHint\":\"Status flips to Active when Zalo delivers the first webhook event.\",\"active\":\"Active\",\"disabled\":\"Disabled\"},\"disconnectCta\":\"Disconnect\",\"disconnectConfirmTitle\":\"Disconnect this Zalo OA?\",\"disconnectConfirmBody\":\"Inbound messages on this OA will stop reaching your agent. You can reconnect at any time — your saved settings stay.\",\"disconnectConfirmCta\":\"Disconnect\",\"disconnectingState\":\"Disconnecting…\",\"lastError\":\"Last error: {message}\",\"billing\":{\"noticeTitle\":\"About Zalo costs\",\"noticeBody\":\"Zalo OA reactive chat (replies within 7 days of the visitor's last message) is FREE. Proactive ZNS templates are billed by Zalo directly to your OA's payment method; ChatOtter caps usage per tier but adds no markup.\"},\"tierRequirement\":{\"title\":\"Zalo OA tier requirement\",\"body\":\"Your Zalo OA must be on Tăng trưởng tier or higher for ChatOtter to send agent replies. The Cơ bản (free) tier only allows manual replies via the Zalo mobile app.\",\"cta\":\"View Zalo OA pricing\",\"upgradeCta\":\"Upgrade your OA at Zalo\"},\"managePanel\":{\"expand\":\"Manage\",\"collapse\":\"Hide details\",\"oaIdLabel\":\"OA ID\",\"tierLabel\":\"Tier\",\"tier\":{\"basic\":\"Cơ bản\",\"standard\":\"Tiêu chuẩn\",\"growth\":\"Tăng trưởng\",\"comprehensive\":\"Toàn diện\",\"unknown\":\"Tier unknown\"},\"tierUpgradeRequired\":\"This OA can't send agent replies — upgrade to Tăng trưởng or higher at Zalo.\",\"tierUpgradeCta\":\"Upgrade your OA at Zalo\",\"lastActivityLabel\":\"Last activity\",\"lastActivityNow\":\"just now\",\"lastActivityMinutes\":\"{value, plural, one {# minute ago} other {# minutes ago}}\",\"lastActivityHours\":\"{value, plural, one {# hour ago} other {# hours ago}}\",\"lastActivityDays\":\"{value, plural, one {# day ago} other {# days ago}}\",\"lastActivityNever\":\"No inbound messages yet\",\"boundAgentLabel\":\"Routes to agent\",\"boundAgentUnbound\":\"Not bound — uses first-active agent fallback\",\"accessTokenLabel\":\"Access token expires\",\"refreshTokenLabel\":\"Refresh token expires\",\"tokenExpiringSoon\":\"expires in {value} hours — reconnect recommended\"},\"templates\":{\"heading\":\"ZNS templates\",\"subtitle\":\"Approved Zalo Notification Service templates available for proactive messages.\",\"empty\":\"No ZNS templates approved yet. Submit your first template via the Zalo OA dashboard.\",\"approved\":\"Approved\",\"pending\":\"Pending Zalo approval\"},\"errors\":{\"tierRequired\":\"Upgrade to Standard or higher to connect Zalo.\",\"alreadyConnected\":\"This Zalo OA is already connected to a different workspace. Disconnect there first.\",\"loadFailed\":\"Couldn't load your Zalo accounts. Refresh to try again.\"},\"connect\":{\"toastOk\":\"Zalo Official Account connected. We'll flip status to Active when the first webhook arrives.\",\"toastConfigMissing\":\"Zalo Connect isn't enabled on this environment yet — contact support to turn it on for your workspace.\",\"toastInvalidState\":\"Your Connect link expired. Try again from this page.\",\"toastProvisionFailed\":\"Couldn't finish connecting that Zalo OA. Try again or c
1ontact support if it persists.\"}},\"whatsapp\":{\"pageTitle\":\"WhatsApp Business\",\"connectCta\":\"Connect with Facebook\",\"connectingState\":\"Connecting…\",\"connectedHeading\":\"Connected numbers\",\"numbersHeading\":\"Your WhatsApp numbers\",\"addNumberCta\":\"Add WhatsApp Business account\",\"addNumberCtaShort\":\"Add number\",\"searchPlaceholder\":\"Search number, WABA, or Phone ID\",\"filterAll\":\"All\",\"filterActive\":\"Active\",\"filterPending\":\"Ready\",\"filterDisabled\":\"Disabled\",\"groupConnected\":\"Connected\",\"groupAvailable\":\"Available to add\",\"groupUnavailable\":\"Unavailable\",\"colNumber\":\"Number\",\"colStatus\":\"Status\",\"showMore\":\"Show {count} more\",\"noMatches\":\"No numbers match your search.\",\"alsoOnAccount\":{\"heading\":\"Also on your WhatsApp account\",\"subtitle\":\"On your account but not added yet — add with one tap.\",\"addCta\":\"Add\",\"adding\":\"Adding…\",\"reconnectCta\":\"Reconnect\",\"reconnecting\":\"Reconnecting…\",\"reconnectHint\":\"Previously connected here — Reconnect re-enables it in ChatOtter (it's still on Cloud API at Meta).\",\"lockedOtherWorkspace\":\"In use by another workspace — disconnect it there first to use it here.\",\"unavailable\":\"Unavailable\",\"added\":\"Added {phone}\",\"addFailed\":\"Couldn't add that number — try again\",\"willActivateHint\":\"Not on WhatsApp Cloud API yet — add it, then tap Activate and we'll register it for you.\",\"testHint\":\"Meta test number — you can add it for previews, but it only reaches an allow-list you set in Meta, not real customers.\",\"dismissUnavailable\":\"Dismiss\"},\"setupGuide\":{\"prereqs\":\"You'll need a Facebook/Meta login and a phone number that isn't currently active in the WhatsApp app.\",\"videoTitle\":\"Video walkthrough\",\"videoComingSoon\":\"Coming soon — full setup walked through end-to-end.\",\"metaAccountTitle\":\"1. Create a Meta Business account\",\"metaAccountBody\":\"Don't have one yet? Create a Meta Business Portfolio — Meta's name for a business account.\",\"metaAccountLink\":\"How to create a Business Portfolio →\",\"whatsappAccountTitle\":\"2. Add your WhatsApp Business account\",\"whatsappAccountBody\":\"In Meta Business Suite, add your number:\",\"whatsappAccountPath\":\"Business Settings → WhatsApp Accounts → Add\",\"whatsappAccountLink\":\"How to add WhatsApp on Meta →\",\"openMetaBusiness\":\"Open Meta Business →\",\"eligibilityWarning\":\"Connect a number that isn't already active in the consumer WhatsApp app — use a new number, or delete it from the app first.\",\"connectTitle\":\"3. Connect to ChatOtter\",\"costNoteTitle\":\"About messaging costs\",\"costNoteBody\":\"Messages you send from your own WhatsApp number are billed by Meta directly to you — you add a payment method during Meta setup, and ChatOtter adds no markup. Replies within the 24-hour customer window are free; business-initiated (template) messages are billed at Meta's rates.\",\"infoTitle\":\"Good to know\"},\"optins\":{\"toggle\":\"Customer opt-ins\",\"title\":\"Opt-ins\",\"description\":\"Mark numbers whose consent you captured outside WhatsApp (e.g. a web-form checkbox). They can be messaged without the WhatsApp opt-in prompt.\",\"testingHint\":\"Testing? Opt your own number in here first — then it gets a direct agent reply instead of the opt-in prompt. Needed to test a Meta test number end-to-end.\",\"pastePlaceholder\":\"Paste phone numbers, one per line\",\"addCta\":\"Save opt-ins\",\"adding\":\"Adding…\",\"noValidNumbers\":\"No valid phone numbers found.\",\"tooMany\":\"Add up to {max} numbers at a time.\",\"addedToast\":\"{count} number(s) opted in\",\"addFailed\":\"Couldn't opt in {phone}\",\"listHeading\":\"Current opt-ins\",\"loading\":\"Loading…\",\"empty\":\"No opt-ins yet.\",\"disableCta\":\"Disable\",\"disabledToast\":\"{phone} opted out\",\"disableFailed\":\"Couldn't disable {phone}\",\"sourceLegacy\":\"WhatsApp reply\",\"source\":{\"web_form_consent\":\"Web form consent\",\"imported_from_crm\":\"Imported from CRM\",\"operator_attest\":\"I attest consent was given\"},\"state\":{\"opted_in\":\"Opted in\",\"pending_opt_in\":\"Pending\",\"opted_out\":\"Opted out\"}},\"noAccountsYet\":\"No WhatsApp numbers connected yet. Click \\\"Connect with Facebook\\\" to get started.\",\"phoneNumberLabel\":\"Phone number\",\"phoneNumberIdLabel\":\"Phone ID\",\"statusLabel\":\"Status\",\"statusPending\":\"Pending first message\",\"statusReadyHint\"
1:\"You can deploy an agent now — it turns Active automatically after the first WhatsApp message.\",\"statusActive\":\"Active\",\"statusDisabled\":\"Disabled\",\"verifiedAtLabel\":\"Verified\",\"disableCta\":\"Disconnect\",\"disableConfirmTitle\":\"Disconnect this WhatsApp number?\",\"disableConfirmBody\":\"Inbound messages to this number will stop reaching your agent immediately. You can reconnect later by re-running setup.\",\"disableConfirmConfirm\":\"Disconnect\",\"disableConfirmCancel\":\"Cancel\",\"disableConsequenceMessaging\":\"Inbound WhatsApp messages on this number stop reaching your agent.\",\"disableConsequenceMeta\":\"The number stays connected to Cloud API at Meta — only ChatOtter pauses it.\",\"disableConsequenceReconnect\":\"Reconnect it anytime from \\\"Also on your account\\\" — no re-setup needed.\",\"disableDialogTitle\":\"Disconnect {name}?\",\"disableDialogIntro\":\"This pauses the number in ChatOtter. It stays connected at Meta, and you can reconnect anytime.\",\"moreActions\":\"More actions\",\"removeCta\":\"Remove permanently\",\"removing\":\"Removing…\",\"removeDialogTitle\":\"Remove {name}?\",\"removeDialogIntro\":\"Permanently removes this number from ChatOtter and frees it. This can't be undone.\",\"removeConsequenceFree\":\"Frees the number — it can be added again here or by another workspace.\",\"removeConsequenceHistory\":\"Past conversations and leads are kept — they stay in your Sessions.\",\"removeConsequenceMeta\":\"The number stays live on your WABA at Meta, so messages sent to it stop reaching you until you re-add it here (or deregister it in Meta).\",\"removeSuccess\":\"{phone} removed.\",\"removeFailed\":\"Couldn't remove that number — try again.\",\"disableSuccess\":\"WhatsApp number disconnected.\",\"disableFailed\":\"Could not disconnect this number. Try again in a moment.\",\"manualConnect\":{\"toggle\":\"Manual connect (no Facebook popup)\",\"toggleHint\":\"For App-Review-pending environments\",\"intro\":\"Skip Embedded Signup and wire a WhatsApp Business Account directly using the platform's System User token. Useful while the Meta App is still in Development mode.\",\"stepDashboard\":\"Open Meta App Dashboard → WhatsApp → API Setup.\",\"stepCopy\":\"Copy the WhatsApp Business Account ID, Phone Number ID, and From number.\",\"stepPaste\":\"Paste them below and submit. The platform validates with Meta before saving.\",\"wabaIdLabel\":\"WhatsApp Business Account ID (WABA ID)\",\"wabaIdPlaceholder\":\"e.g. 123456789012345\",\"phoneNumberIdLabel\":\"Phone Number ID\",\"phoneNumberIdPlaceholder\":\"e.g. 987654321098765\",\"displayPhoneLabel\":\"Display phone number\",\"displayPhonePlaceholder\":\"e.g. +15551234567\",\"displayPhoneHint\":\"What customers see — usually shown next to the test number in the API Setup panel.\",\"submitCta\":\"Connect this number\",\"connecting\":\"Validating with Meta…\",\"successToast\":\"WhatsApp number connected.\",\"failedToast\":\"Could not connect this number\",\"failedFallback\":\"Unknown error. Check the IDs and try again.\"},\"embeddedSignupHint\":\"A Facebook popup will open to confirm your WhatsApp Business Account and phone number. Close the popup to cancel.\",\"embeddedSignupNotConfigured\":\"WhatsApp setup is not configured on this environment. Set NEXT_PUBLIC_META_APP_ID and reload.\",\"provisionFailedTitle\":\"Could not connect this WhatsApp number\",\"provisionFailedRetry\":\"Try again\",\"provisionFailedReason\":\"Reason: {reason}\",\"popupClosedTitle\":\"Setup was cancelled\",\"popupClosedBody\":\"You closed the Facebook popup before connecting a number. Click \\\"Connect with Facebook\\\" to try again.\",\"testChatCta\":\"Message on WhatsApp\",\"testNumberBadge\":\"Test number\",\"testNumberHint\":\"This is a Meta test number (+1 555). It can only message a short allow-list you set in Meta and won't reach real customers — use it for previews only.\",\"activateCta\":\"Activate\",\"registerPinPromptTitle\":\"Existing PIN needed\",\"registerPinPrompt\":\"This number already has a WhatsApp two-step verification PIN. Enter that 6-digit PIN to finish activating it.\",\"registerPinLabel\":\"Existing 6-digit PIN\",\"registerSubmit\":\"Activate number\",\"registerSuccess\":\"{phone} is now live on WhatsApp Cloud API.\",\"registerFailedTitle\":\"Could not activate this number\",\"registerFailedReason\":\"Reason: {reason}\",\"registerBlockedTitle\":\"This number needs to be freed up first\",\"registerBlockedToast\":\"WhatsApp won't activate it yet — see the steps below the number.\",\"registerBlockedIntro\":\"WhatsApp couldn't activate this number. That almost always means one of these:\",\"registerBlockedInApp\":\"It's still signed in to the WhatsApp or WhatsApp Business app on a phone. Open that app → Settings → Account → Delete account for this number, then come back and tap Activate again.\",\"registerBlockedOtherProvider\":\"It's already connected to another WhatsApp provider. Ask them to release (deregister) the number, then tap Activate again.\",\"registerBlockedRetry\":\"If neither applies, WhatsApp may just be busy — wait a minute and tap Activate again.\",\"registerBlockedManagerLink\":\"Open WhatsApp Manager →\",\"registerBlockedDismiss\":\"Dismiss\",\"registrationUnavailable\":\"Couldn't check which numbers still need activating (WhatsApp may be temporarily unreachable). Refresh to try again.\"}
1,\"whatsappSend\":{\"title\":\"Send via WhatsApp\",\"subtitle\":\"Reply directly to {phone} — visitor will see this in their WhatsApp.\",\"tabText\":\"Free-form text\",\"tabTemplate\":\"Template\",\"textPlaceholder\":\"Type a message…\",\"queueOptInLabel\":\"If the 24-hour window is closed, queue this message and send it when the visitor next replies.\",\"sendText\":\"Send text\",\"sendTemplate\":\"Send template\",\"sending\":\"Sending…\",\"windowOpen\":\"Window open · {remaining} remaining\",\"windowClosed\":\"Window closed — template only\",\"templateLoading\":\"Loading templates…\",\"templateLoadFailed\":\"Could not load templates\",\"templatePick\":\"Pick a template\",\"templatePickPlaceholder\":\"— choose —\",\"outcomeSent\":\"Sent. Visitor will see this in WhatsApp.\",\"outcomeQueued\":\"Queued. Will deliver when the visitor next replies.\",\"outcomeOutOfWindow\":\"Out of window — switch to a template, or enable queue and try again.\",\"outcomeOptedOut\":\"Visitor opted out. They will not receive any messages.\",\"outcomeUnknown\":\"Unknown outcome.\",\"switchToTemplate\":\"Switch to template\",\"sendFailed\":\"Send failed\"},\"channels\":{\"title\":\"Channels\",\"subtitle\":\"Where this agent talks to your customers. Connect a channel once at the workspace level, then deploy it per-agent here.\",\"backToChannels\":\"Back to Channels\",\"status\":{\"deployed\":\"Deployed\",\"workspaceConnected\":\"Connected · not assigned\",\"notConnected\":\"Not connected\",\"upgrade\":\"Upgrade\"},\"cards\":{\"webWidget\":{\"name\":\"Web widget\",\"description\":\"The chat widget that lives on your website. Embed script + allowed-domains enforcement.\",\"cta\":{\"manage\":\"Manage\",\"bind\":\"Bind\",\"connect\":\"Connect\",\"upgrade\":\"Upgrade\",\"comingSoon\":\"Coming soon\"},\"form\":{\"deployTitle\":\"Deploy\"},\"drawer\":{\"title\":\"Web widget deployment\",\"description\":\"Drop the embed snippet on your site and lock down which domains can render the widget.\",\"domainsUpdated\":\"Allowed domains updated\",\"domainsFailed\":\"Failed to update allowed domains\",\"disableRequiresConfirm\":\"Removing the last allowlist row would disable enforcement. Use the Disable enforcement button to confirm.\"}},\"whatsapp\":{\"name\":\"WhatsApp\",\"description\":\"Reply to inbound WhatsApp messages from your customers through this agent.\",\"body\":{\"tierLocked\":\"Upgrade to unlock WhatsApp on this agent.\",\"notConnected\":\"Set up WhatsApp at the workspace level first, then assign a phone number to this agent.\",\"connectedUnbound\":\"WhatsApp is connected at the workspace. Assign a phone number to this agent.\",\"deployed\":\"Deployed · {phone}\",\"deployedNoPhone\":\"Deployed to this agent.\"},\"cta\":{\"manage\":\"Manage\",\"bind\":\"Assign a number\",\"connect\":\"Set up WhatsApp\",\"deploy\":\"Deploy\",\"upgrade\":\"Upgrade\",\"comingSoon\":\"Coming soon\",\"upgradeTierSuffix\":\"to {tier}\"},\"tooltip\":{\"upgrade\":\"WhatsApp is available on paid plans.\",\"phaseBComing\":\"Per-agent binding ships with the next backend release.\"},\"deployDrawer\":{\"title\":\"Deploy WhatsApp to this agent\",\"pickerSubtitle\":\"Choose which connected number routes to {agent}.\",\"rowBoundHere\":\"Routes to this agent\",\"rowBoundHereBadge\":\"Active\",\"rowBoundOther\":\"Routes to {agent}\",\"rowUnbound\":\"Not assigned\",\"rowDefaultRoute\":\"Routes here by default — not explicitly assigned\",\"actionBind\":\"Assign\",\"actionUnbind\":\"Unassign\",\"actionRebind\":\"Reassign\",\"bindConfirmBody\":\"Assign {phone} to {to}? Inbound WhatsApp messages will start routing to this agent.\",\"unbindConfirmBody\":\"Unassign {phone} from {agent}? Inbound WhatsApp messages will no longer reach this agent.\",\"rebindConfirmBody\":\"Reassign {phone} from {from} to {to}? Inbound to this number will route to this agent instead.\",\"rebindConfirmYes\":\"Reassign\",\"toastBound\":\"{phone} now routes to this agent\",\"toastUnbound\":\"{phone} unassigned\",\"unknownAgent\":\"another agent\",\"emptyNumbers\":\"No connected WhatsApp numbers yet. Set one up at the workspace level first.\",\"done\":\"Done\",\"bodyConfirmBind\":\"Bind {phone} to {agent}? Customers texting this number will be routed to this agent.\",\"confirm\":\"Confirm\",\"confirming\":\"Deploying…\",\"cancel\":\"Cancel\",\"toastDeployed\":\"WhatsApp deployed to this agent\",\"toastFailed\":\"Couldn't deploy this number — try again\",\"windowOpen\":\"Window open · {remaining} left\",\"windowClosed\":\"Window closed\",\"windowNone\":\"No messages yet\",\"lastMessageNow\":\"Active just now\",\"lastMessageMinutes\":\"Last message {value}m ago\",\"lastMessageHours\":\"Last message {value}h ago\",\"lastMessageDays\":\"Last message {value}d ago\",\"testSend\":\"Send test\",\"testSendConfirm\":\"Send\",\"testHint\":\"Send a quick test (e.g. to your own phone) to confirm this number works.\",\"testDestPlaceholder\":\"Destination number, e.g. +65 8123 4567\",\"testMessageBody\":\"Test message from ChatOtter ✅\",\"testSent\":\"Test sent to {phone}\",\"testQueued\":\"Queued — it sends once the recipient messages you first\",\"testOutOfWindow\":\"Outside the 24-hour window — the recipient must message you first\",\"testOptedOut\":\"That number has o
1pted out of WhatsApp messages\",\"testFailed\":\"Test send failed — try again\"}},\"zalo\":{\"name\":\"Zalo\",\"boundOaLabel\":\"Connected via {name}\",\"elsewhereLabel\":\"Bound to another agent ({name}) — open Manage to reassign.\",\"states\":{\"deployed\":{\"body\":\"Inbound Zalo messages on the bound OA route to this agent.\",\"badge\":\"Active\"},\"connected_at_workspace_unbound\":{\"body\":\"Zalo OAs are connected at the workspace. None are bound to this agent yet.\",\"badge\":\"Unbound\"},\"not_connected_at_workspace\":{\"body\":\"Connect your Zalo Official Account at the workspace level first.\"},\"tier_locked\":{\"body\":\"Upgrade to Standard or higher to deploy Zalo on this agent.\",\"badge\":\"Tier locked\"}},\"cta\":{\"manage\":\"Manage\",\"bind\":\"Assign to this agent\",\"connect\":\"Connect Zalo\",\"upgrade\":\"Upgrade\"},\"bindDrawer\":{\"title\":\"Zalo OA bindings\",\"pickerSubtitle\":\"Assign which Zalo OAs route inbound to {agent}.\",\"emptyAccounts\":\"No active Zalo OAs in this workspace. Connect one at Integrations → Zalo first.\",\"emptyAccountsPending\":\"Zalo OAs are connected but waiting for the first inbound message before they can carry traffic. Send a test message to the OA from Zalo to activate it.\",\"unknownAgent\":\"another agent\",\"rowBoundHere\":\"Routes to this agent\",\"rowBoundOther\":\"Routes to {agent}\",\"rowUnbound\":\"Not assigned — falls back to the first active agent.\",\"rowBoundHereBadge\":\"Active\",\"actionBind\":\"Assign\",\"actionUnbind\":\"Unassign\",\"actionRebind\":\"Reassign\",\"bindConfirmBody\":\"Route inbound from {oa} to {to}?\",\"unbindConfirmBody\":\"Stop routing {oa} to {agent}? Messages fall back to the first active agent.\",\"rebindConfirmBody\":\"Move {oa} from {from} to {to}? Inbound stops reaching {from}.\",\"rebindConfirmYes\":\"Reassign\",\"cancel\":\"Cancel\",\"done\":\"Done\",\"toastBound\":\"{oa} now routes to this agent.\",\"toastUnbound\":\"{oa} no longer routes to this agent.\",\"toastFailed\":\"Couldn't update the binding. Please try again.\"}},\"channelBind\":{\"boundLabel\":\"Connected via {name}\",\"elsewhereLabel\":\"Bound to another agent ({name}) — open Manage to reassign.\",\"states\":{\"deployed\":{\"body\":\"Inbound {channelName} messages on the bound account route to this agent.\",\"badge\":\"Active\"},\"connected_at_workspace_unbound\":{\"body\":\"{channelName} is connected at the workspace. None is bound to this agent yet.\",\"badge\":\"Unbound\"},\"not_connected_at_workspace\":{\"body\":\"Connect {channelName} at the workspace level first.\"},\"tier_locked\":{\"body\":\"Upgrade to {tier} to deploy {channelName} on this agent.\",\"badge\":\"Tier locked\"}},\"cta\":{\"manage\":\"Manage\",\"bind\":\"Assign to this agent\",\"connect\":\"Connect {channelName}\",\"upgrade\":\"Upgrade\"},\"bindDrawer\":{\"title\":\"{channelName} bindings\",\"pickerSubtitle\":\"Assign which {channelName} accounts route inbound to {agent}.\",\"emptyAccounts\":\"No active {channelName} accounts in this workspace. Connect one at Integrations first.\",\"emptyAccountsPending\":\"{channelName} is connected but waiting for the first inbound message before it can carry traffic.\",\"unknownAgent\":\"another agent\",\"rowBoundHere\":\"Routes to this agent\",\"rowBoundOther\":\"Routes to {agent}\",\"rowUnbound\":\"Not assigned — falls back to the first active agent.\",\"rowBoundHereBadge\":\"Active\",\"actionBind\":\"Assign\",\"actionUnbind\":\"Unassign\",\"actionRebind\":\"Reassign\",\"bindConfirmBody\":\"Route inbound from {name} to {to}?\",\"unbindConfirmBody\":\"Stop routing {name} to {agent}? Messages fall back to the first active agent.\",\"rebindConfirmBody\":\"Move {name} from {from} to {to}? Inbound stops reaching {from}.\",\"rebindConfirmYes\":\"Reassign\",\"cancel\":\"Cancel\",\"done\":\"Done\",\"toastBound\":\"{name} now routes to this agent.\",\"toastUnbound\":\"{name} no longer routes to this agent.\",\"toastFailed\":\"Couldn't update the binding. Please try again.\"}}},\"assignedElsewhereNotice\":{\"title\":\"WhatsApp is assigned to {agentName}, not this agent.\",\"cta\":\"Reassign to this agent →\",\"dismiss\":\"Dismiss\"}},\"chatAgent\":{\"pageTitle\":\"Chat Agent\",\"knowledgeBaseTitle\":\"Knowledge Base\",\"chatSessionsTitle\":\"Chat Sessions\",\"toolsTitle\":\"Tools\",\"settingsHeading\":\"Chat Agent\",\"settingsSubtitle\":\"Configure your AI chat agent, knowledge base, and actions.\",\"statusHeader\":{\"menuLabel\":\"More actions\",\"publish\":\"Publish\",\"viewOnAgents\":\"View on Agents\"},\"notLiveBanner\":{\"title\":\"This agent isn't live yet\",\"body\":\"Customers can't see it yet — publishing makes it live across all your channels.\"},\"settingUp\":\"Setting up your Chat Agent...\",\"widgetPreviewLabel\":\"Open widget preview\",\"tools\":{\"heading\":\"Tools\",\"subtitle\":\"Pick which tools the chat agent can call during a conversation. The model decides which tool to use from the descriptions, so review them before turning anything on.\",\"managedBadge\":\"Managed · auto-connected\",\"managedManageLink\":\"Manage in Integrations\",\"managedHint\"
1:\"Connected at the workspace level and used automatically (e.g. lead sync, notifications). It's not a tool the agent calls, so there's nothing to turn on here.\",\"comingSoon\":\"Coming soon\",\"comingSoonDescription\":\"Pick which tools — CRM, calendar, ticketing, custom MCP servers — this agent is allowed to invoke during a conversation.\",\"loading\":\"Loading tools…\",\"loadFailed\":\"Failed to load tools: {error}\",\"saveFailed\":\"Failed to save: {error}\",\"saved\":\"Tools updated\",\"noToolsDiscovered\":\"No tools discovered on this server. Try refreshing the server.\",\"enabledCount\":\"{enabled} of {total} enabled\",\"connectionUnhealthy\":\"Connection unhealthy\",\"connectionUnhealthyTitle\":\"This connection isn't working\",\"connectionUnhealthyBody\":\"These tools won't reach your agent until you reconnect this integration on the Integrations page. Toggles are locked until then.\",\"save\":\"Save changes\",\"discard\":\"Discard\",\"emptyDescriptionWarning\":\"Empty description — the model can't pick this tool reliably. Edit the description before enabling.\",\"shortDescriptionWarning\":\"Description is very short — the model may misfire. Consider an example or context.\",\"filterAll\":\"All tools\",\"filterAdded\":\"Show only tools added to this agent\",\"searchPlaceholder\":\"Search tools by name or description\",\"showTools\":\"Show tools\",\"hideTools\":\"Hide tools\",\"bookingToggleHint\":\"Let your agent share a booking link and available times during a chat. Pick one scheduler — the agent uses a single booking tool.\",\"schedulingTitle\":\"Scheduling\",\"booksVia\":\"Books via: {name}\",\"schedulingOff\":\"Off — don't let the agent book meetings\",\"visitorExposureTitle\":\"Allow anonymous visitors to use these tools\",\"visitorExposureWarning\":\"Your chat agent talks to anonymous website visitors. Turning this on lets a visitor's message trigger this server's tools. Only enable it for tools that are safe for the public — never CRM, internal, or write actions on private data.\",\"visitorExposureToggleLabel\":\"Expose this server's tools to anonymous visitors\",\"visitorExposureLockedHint\":\"Turn this on first to choose which of this server's tools your agent can use.\",\"visitorExposureEngineTitle\":\"Allow anonymous visitors to run these workflows\",\"visitorExposureEngineWarning\":\"Your chat agent talks to anonymous website visitors. Turning this on lets a visitor's message trigger this engine's workflows — which can take real actions. Only enable it once you're sure every exposed workflow is safe to run on a visitor's behalf.\",\"visitorExposureEngineToggleLabel\":\"Expose this engine's workflows to anonymous visitors\",\"visitorExposureEngineLockedHint\":\"Turn this on first to choose which of this engine's workflows your agent can run.\",\"requireApprovalLabel\":\"Require approval\",\"requireApprovalRecommended\":\"Recommended\",\"requireApprovalRecommendedHint\":\"The AI flagged this tool as high-risk — consider requiring approval.\",\"requireApprovalHint\":\"This tool always asks a teammate to approve before it runs.\",\"requireApprovalDisabledUnhealthy\":\"Reconnect this integration to change this.\",\"requireApprovalDisabledNotEnabled\":\"Enable this tool first to require approval.\",\"requireApprovalDisabledLocked\":\"Turn on visitor access first to require approval.\",\"noMatchesInServer\":\"No tools match the current filter and search.\",\"shownCount\":\"Showing {shown} of {total}\",\"engineGroupBadge\":\"{count, plural, one {# workflow} other {# workflows}}\",\"legacyN8nGroupTitle\":\"Legacy n8n workflows\",\"groups\":{\"collectLeads\":{\"title\":\"Collect leads\",\"desc\":\"Capture visitor details and send them straight to your CRM or outreach.\",\"teaser\":\"Turn chats into qualified leads — captured details flow to HubSpot or Instantly automatically.\"},\"bookMeetings\":{\"title\":\"Book meetings\",\"desc\":\"Let visitors check availability and book a time without leaving the chat.\",\"teaser\":\"Your agent shares open slots and books meetings on Calendly or Cal.com — no back-and-forth.\"},\"escalate\":{\"title\":\"Where handoffs go\",\"desc\":\"Choose where handoff alerts land when a visitor asks for a person.\",\"teaser\":\"Turn on \\\"Ask a person\\\" in Settings, then route the alert here — connect Slack, Zendesk or Zoho Desk so your team can take over.\"},\"customActions\":{\"title\":\"Custom actions \u0026 automation\",\"desc\":\"Connect your own APIs, MCP servers and workflows for the agent to call.\",\"teaser\":\"Give the agent custom tools — call your REST API, an MCP server, or run an n8n workflow.\"},\"commerce\":{\"title\":\"Sell \u0026 support orders\",\"desc\":\"Answer product and order questions live from your store.\",\"teaser\":\"Connect Shopify and your agent can search products, check stock, and look up order status mid-chat.\"}},\"discovery\":{\"connect\":\"Connect\",\"upgradeAction\":\"Upgrade to {tier}\",\"previewAction\":\"See preview\",\"lockedHint\":\"Not on your plan\",\"gateBanner\":\"Needs {tier} — your connected setup stays paused until you upgrade.\"},\"mockup\":{\"collectLeads\":{\"prompt\":\"I'd love to help — could you share your details?\",\"emailLabel\":\"Email\",\"phoneLabel\":\"Phone number\",\"submit\":\"Submit\"},\"bookMeetings\":{\"prompt\":\"Here are some open times — which works for you?\"},\"escalate\":{\"prompt\":\"Let me connect you with a teammate…\",\"status\":\"Connecting you to a person\"},\"customActions\":{\"prompt\":\"Let me check that order for you…\",\"resultTitle\":\"Order #1042\",\"resultBody\":\"Shipped — arriving Jun 20\"},\"commerce\":{\"prompt\":\"Do you have the blue hat in stock, and how much?\",\"productTitle\":\"Blue Hat\",\"productMeta\":\"$$19.00 · In stock\"}}},\"leads\":{\"backToForms\":\"Back to forms\",\"leadFormsCrumb\":\"Lead Forms\"},\"leadFormBuilder\":{\"loadFailed\":\"Failed to load lead form. Please try again.\",\"defaultDisplayName\":\"Lead Capture\",\"primaryBadge\":\"Primary\",\"collapseAria\":\"Collapse lead form\",\"expandAria\":\"Expand lead form\",\"fieldCount\":\"{count, plural, one {# field} other {# fields}}\",\"leadCaptureEnabled\":\"Lead capture enabled\",\"createFormFailed\":\"Failed to create lead form\",\"leadCaptureDisabled\":\"Lead capture disabled\",\"updateCaptureFailed\":\"Failed to update lead capture\",\"reorderFailed\":\"Failed to reorder fields\",\"deleteFieldTitle\":\"Delete this field?\",\"deleteFieldConfirm\":\"Delete\",\"fieldDeleted\":\"Field deleted\",\"deleteFieldFailed\":\"Failed to delete field\",\"intro\":\"Capture visitor information during chat conversations. Choose when the form appears: after a set number of messages, the first time the assistant declines a question, or both.\",\"formNameLabel\":\"Form name\",\"formNamePlaceholder\":\"e.g. Contact Us, Book Demo\",\"formNameHint\":\"Shown on the widget's \\\"Contact Us\\\" button. Pick something action-oriented.\",\"triggerSettings\":\"Trigger settings\",\"collapseTriggerAria\":\"Collapse trigger settings\",\"expandTriggerAria\":\"Expand trigger settings\",\"summary\":{\"afterMessages\":\"After {count, plural, one {# message} other {# messages}}\",\"onDecline\":\"On decline\",\"both\":\"Both\",\"keywordsOnly\":\"Keywords only\",\"msgs\":\"{count} msgs\",\"keywords\":\"{count, plural, one {# keyword} other {# keywords}}\",\"exitIntent\":\"exit intent\",\"idleSeconds\":\"{seconds}s idle\",\"consentRequired\":\"consent required\"},\"mode\":{\"label\":\"Mode\",\"afterMessagesTitle\":\"After N messages\",\"afterMessagesHelp\":\"Fire once the visitor has sent a set number of messages.\",\"onDeclineTitle\":\"On decline\",\"onDeclineHelp\":\"Fire the first time the assistant can't answer from your knowledge base. (Skipped on the visitor's first message.)\",\"bothTitle\":\"Both\",\"bothHelp\":\"Whichever signal fires first wins — the visitor is never prompted twice.\",\"keywordsOnlyTitle\":\"Only on keyword match\",\"keywordsOnlyHelp\":\"Fire only when a Smart Trigger keyword matches the visitor's message. C
1onfigure keywords below; the form never fires if the list is empty.\"},\"showFormAfter\":\"Show form after\",\"messages\":\"messages\",\"smartTriggers\":{\"label\":\"Smart triggers (optional)\",\"help\":\"Extra signals that fire the form in addition to the mode above. Leave blank to use only the mode.\",\"keywordsLabel\":\"Trigger keywords\",\"keywordsPlaceholder\":\"pricing, contact sales, demo\",\"keywordsHelp\":\"Comma-separated. Fires when the phrase appears in visitor input, or when its last word does (e.g. \\\"book demo\\\" also fires on just \\\"demo\\\"). Case-insensitive.\",\"exitIntentLabel\":\"Exit intent\",\"exitIntentHelp\":\"Fire when the visitor's cursor leaves the chat area after at least one message.\",\"durationLabel\":\"After idle duration\",\"durationHelp\":\"Fire after N seconds of silence (requires ≥1 exchanged message; resets on each visitor send).\",\"wait\":\"Wait\",\"seconds\":\"seconds\"},\"consent\":{\"label\":\"Require consent checkbox\",\"help\":\"For GDPR / CASL: visitors must tick the box before submitting. Choice is logged on the lead. Off by default — the chat footer banner covers passive notice.\",\"consentLabelLabel\":\"Consent label\",\"defaultLabel\":\"I agree to be contacted about my inquiry and to the processing of my data according to the {privacy_policy}.\",\"labelHelp\":\"Use \u003ccode\u003e{token}\u003c/code\u003e to insert a link to your privacy policy.\"},\"field\":{\"requiredBadge\":\"Required\",\"moveUpAria\":\"Move field up\",\"moveDownAria\":\"Move field down\",\"deleteAria\":\"Delete field\"},\"placeholderField\":{\"email\":\"Email\",\"name\":\"Name\",\"company\":\"Company\"},\"fieldAdded\":\"Field added\",\"addFieldFailed\":\"Failed to add field\",\"save\":\"Save\",\"saving\":\"Saving…\",\"saveSuccess\":\"Lead form saved\",\"saveFailed\":\"Failed to save lead form\",\"defaultFormName\":\"Default Lead Form\",\"addFieldDialog\":{\"trigger\":\"Add Field\",\"title\":\"Add Lead Form Field\",\"labelLabel\":\"Label\",\"labelPlaceholder\":\"e.g. Company Name\",\"typeLabel\":\"Type\",\"optionsLabel\":\"Options (comma-separated)\",\"optionsPlaceholder\":\"Option 1, Option 2, Option 3\",\"requiredLabel\":\"Required\",\"submit\":\"Add Field\"}},\"settings\":{\"identity\":{\"title\":\"Identity\",\"agentName\":\"Agent Name\",\"shortDescription\":\"Short Description\",\"shortDescriptionPlaceholder\":\"e.g. Customer support assistant for Acme Co.\",\"save\":\"Save Identity\",\"saveSuccess\":\"Identity saved\",\"saveFailed\":\"Failed to save identity\"},\"model\":{\"title\":\"LLM Settings\",\"saveSuccess\":\"Model settings saved\",\"saveFailed\":\"Failed to save model settings\"},\"appearance\":{\"title\":\"Appearance\",\"accentColor\":\"Accent Color\",\"position\":\"Widget Position\",\"positionRight\":\"Right\",\"positionLeft\":\"Left\",\"welcomeMessage\":\"Welcome Message\",\"initialState\":\"Initial State\",\"initialStateMinimized\":\"Minimized\",\"initialStateOpen\":\"Open\",\"autoOpenDelay\":\"Auto-open Delay (seconds)\",\"autoOpenDelayOff\":\"Off\",\"locale\":\"Widget Language\",\"localeAuto\":\"Auto (visitor's browser)\",\"localeEn\":\"English\",\"localeVi\":\"Vietnamese\",\"localeHint\":\"Auto picks English or Vietnamese from the visitor's browser. Use English or Vietnamese to force one regardless of locale.\",\"save\":\"Save Appearance\",\"saveSuccess\":\"Appearance saved\",\"saveFailed\":\"Failed to save appearance\"},\"legal\":{\"title\":\"Legal \u0026 Privacy\",\"privacyUrl\":\"Privacy Policy URL\",\"consentText\":\"Consent Text\",\"save\":\"Save Legal\",\"saveSuccess\":\"Legal settings saved\",\"saveFailed\":\"Failed to save legal settings\",\"citationsToggle\":\"Show source citations to visitors\",\"citationsDescription\":\"When on, visitors see which documents the bot cited. Default off because most KBs are private — filenames can leak internal doc inventory. You still see citations in session transcripts here regardless of this setting.\",\"citationsOn\":\"Citations will now show to visitors\",\"citationsOff\":\"Citations hidden from visitors\",\"citationsFailed\":\"Failed to update citation visibility\"},\"handoff\":{\"title\":\"Handoff\",\"handoffToggle\":\"\\\"Ask a person\\\" handoff\",\"handoffDescription\":\"When on, visitors see an \\\"Ask a person\\\" button. Your team gets notified and can take over the conversation. Requires Pro tier or above.\",\"handoffOn\":\"\\\"Ask a person\\\" button is now visible to visitors\",\"handoffOff\":\"\\\"Ask a person\\\" button hidden from visitors\",\"handoffFailed\":\"Failed to update handoff setting\",\"handoffUpgrade\":\"Upgrade to turn on\",\"handoffUpgradeToTier\":\"Upgrade to {tier} to turn on\"},\"deploy\":{\"domainsUpdated\":\"Allowed domains updated\",\"domainsFailed\":\"Failed to update allowed domains\",\"disableRequiresConfirm\":\"Removing the last allowlist row would disable enforcement. Use the Disable enforcement button to confirm.\"}},\"analytics\":{\"loading\":\"Loading analytics...\",\"last7Days\":\"Last 7 days\",\"last30Days\":\"Last 30 days\",\"sessions\":\"Sessions\",\"messages\":\"Me
1ssages\",\"groundingRate\":\"Grounding Rate\",\"cost\":\"Cost\",\"dailyActivity\":\"Daily Activity\",\"topQuestions\":\"Top Questions\",\"unanswered\":\"Unanswered\",\"costByModel\":\"Cost by Model\",\"costByModelHint\":\"Which LLM is driving spend\",\"costByModelModel\":\"Model\",\"costByModelSessions\":\"Sessions\",\"costByModelTokens\":\"Tokens\",\"costByModelCost\":\"Cost\",\"costByModelUnknown\":\"Unknown\",\"emptyState\":\"No chat data yet. Deploy your widget to start collecting analytics.\"},\"knowledgeRedirect\":{\"loadError\":\"Could not load knowledge base\",\"unknownError\":\"Unknown error\",\"emptyTitle\":\"No knowledge base linked yet\",\"emptyDescription\":\"This agent has no knowledge base attached. Add documents to start grounding answers in your own content.\",\"setUp\":\"Set up knowledge base\"},\"engine\":{\"title\":\"Agent type\",\"autoTitle\":\"Runs automatically\",\"autoHint\":\"Beyond the instructions below, this agent type does the following on its own:\",\"label\":{\"kb_chatbot\":\"Knowledge Base\",\"real_estate\":\"Real Estate Broker\",\"generic\":\"Custom agent\"},\"auto\":{\"qualifier\":\"Extracts budget, location \u0026 timeline from conversations\",\"followups\":\"Follows up on unbooked viewings (day 1 / 3 / 7)\",\"booking\":\"Offers a viewing link once the visitor shows intent\"}}},\"chatSessions\":{\"heading\":\"Sessions\",\"newSessionsAria\":\"{count} new sessions since you last viewed\",\"loading\":\"Loading sessions...\",\"emptyTitle\":\"No conversations yet\",\"emptyDescription\":\"Deploy your agent to start receiving conversations\",\"filters\":{\"allSources\":\"All sources\",\"chatWidget\":\"Chat Widget\",\"api\":\"API\",\"allLeadStatus\":\"All\",\"hasLead\":\"Has lead\",\"noLead\":\"No lead\"},\"exportCsv\":\"Export CSV\",\"columns\":{\"visitor\":\"Visitor\",\"started\":\"Started\",\"lastActivity\":\"Last activity\",\"messages\":\"Messages\",\"duration\":\"Duration\",\"lead\":\"Lead\",\"source\":\"Source\"},\"visitorPrefix\":\"Visitor {id}\",\"anonymous\":\"Anonymous\",\"totalSessions\":\"{count, plural, one {# session total} other {# sessions total}}\",\"previous\":\"Previous\",\"next\":\"Next\",\"pageOf\":\"Page {page} of {total}\"},\"language\":{\"switcherLabel\":\"Change language\",\"english\":\"English\",\"vietnamese\":\"Tiếng Việt\"},\"chatRetrievalStats\":{\"heading\":\"Chat Retrieval Health\",\"subtitle\":\"Decline-rate dashboard for chat KB retrieval. Reads `chat_messages.additional_kwargs.decision` populated since 2026-05-08 — older traffic is excluded from rollups.\",\"filters\":\"Filters\",\"workspaceId\":\"Workspace ID\",\"workspaceUuidError\":\"Workspace ID must be a UUID.\",\"window\":\"Window\",\"last7\":\"Last 7 days\",\"last30\":\"Last 30 days\",\"last90\":\"Last 90 days\",\"enterWorkspace\":\"Enter a workspace ID to load retrieval stats.\",\"loading\":\"Loading…\",\"loadError\":\"Failed to load retrieval stats. Check the workspace ID.\",\"overall\":\"Overall\",\"totalTurns\":\"Total turns\",\"declined\":\"Declined\",\"declineRate\":\"Decline rate\",\"byTokens\":\"By query length (tokens)\",\"byLanguage\":\"By detected language\",\"byAgent\":\"By agent\",\"similarityHistogram\":\"Similarity histogram (declined vs answered)\",\"topDeclined\":\"Top declined queries\",\"noDeclined\":\"No declined queries with text snapshots in this window.\",\"bucket\":\"Bucket\",\"total\":\"Total\",\"noData\":\"No data yet.\",\"answeredTitle\":\"{count} answered\",\"declinedTitle\":\"{count} declined\",\"histogramLegend\":\"Green = answered, red = declined. The threshold-cliff is the bin where declined dominates and the next bin up flips to answered-dominant.\"},\"adminPages\":{\"superAdmin\":\"Super Admin\",\"auditLog\":\"Admin | Audit Log\",\"chatRetrieval\":\"Admin | Chat Retrieval Health\",\"contentEngine\":\"Admin | Content Engine\",\"featureFlags\":\"Admin | Feature Flags\",\"llmConfig\":\"Admin | LLM Config\",\"organizations\":\"Admin | Organizations\",\"users\":\"Admin | Users\",\"platformOverview\":\"Platform Overview | Admin\",\"developerApps\":\"Admin | Developer Apps\"},\"adminDeveloperApps\":{\"title\":\"Developer Apps\",\"subtitle\":\"Quick links to the upstream developer dashboards we depend on. Open them in a new tab — these external 
1consoles are the source of truth for app credentials, scopes, and quotas.\",\"openCta\":\"Open dashboard\",\"setupGuideCta\":\"Setup guide\",\"appIdLabel\":\"App ID\",\"envLabel\":\"Env\",\"envProd\":\"Production\",\"envShared\":\"Shared (all envs)\",\"groupAuthAndMessaging\":\"Auth \u0026 Messaging\",\"groupPayments\":\"Payments\",\"groupInfra\":\"Infrastructure\",\"groupSource\":\"Source \u0026 CI\",\"groupObservability\":\"Observability\",\"groupLlmProviders\":\"LLM Providers\",\"groupAnalytics\":\"Analytics \u0026 Consent\",\"meta\":{\"name\":\"Meta App Dashboard\",\"description\":\"WhatsApp Embedded Signup, Facebook Login app config, App Review, webhook subscriptions.\"},\"slack\":{\"name\":\"Slack App Config\",\"description\":\"OAuth scopes, redirect URLs, slash commands, event subscriptions for the ChatOtter Slack app.\"},\"zalo\":{\"name\":\"Zalo App Console\",\"description\":\"Zalo Official Account Open API app: OAuth scopes, redirect URL, webhook callback, app secret rotation. Pairs with the Business OA at oa.zalo.me.\"},\"hubspot\":{\"name\":\"HubSpot Developer Portal\",\"description\":\"OAuth app credentials, scopes, install URLs for the ChatOtter HubSpot integration.\"},\"stripe\":{\"name\":\"Stripe Dashboard\",\"description\":\"Products, prices, webhooks, customers, payouts. Live mode.\"},\"vercel\":{\"name\":\"Vercel Project\",\"description\":\"Deployments, environment variables, domains, function logs for agent-axis-web.\"},\"aws\":{\"name\":\"AWS Console\",\"description\":\"ECS services, RDS, S3, CloudFront, SSM parameters for services + infra.\"},\"githubWeb\":{\"name\":\"GitHub — agent-axis-web\",\"description\":\"Web frontend repo. PRs, Actions, releases.\"},\"githubServices\":{\"name\":\"GitHub — agent-axis-services\",\"description\":\"FastAPI + Celery backend. PRs, Actions, releases.\"},\"notion\":{\"name\":\"Notion Integration Settings\",\"description\":\"OAuth client ID/secret, capabilities, redirect URIs for the ChatOtter Notion KB connector.\"},\"calendly\":{\"name\":\"Calendly Developer Portal\",\"description\":\"OAuth app credentials + webhook subscriptions for the Calendly tool tile.\"},\"google\":{\"name\":\"Google Cloud Console — Credentials\",\"description\":\"OAuth client ID/secret + authorized redirect URIs for Google sign-in.\"},\"supabase\":{\"name\":\"Supabase Dashboard\",\"description\":\"Auth users, Postgres pooler, project API keys, storage. Per environment.\"},\"browserless\":{\"name\":\"Browserless Account\",\"description\":\"Crawler JS-render fallback. Token, usage, concurrency.\"},\"cloudamqp\":{\"name\":\"CloudAMQP Console\",\"description\":\"Celery broker — queues, connections, message rates. Separate instances per env (staging/prod).\"},\"sentry\":{\"name\":\"Sentry\",\"description\":\"Error monitoring across web + services. Issues, alerts, releases, source-map uploads.\"},\"betterstack\":{\"name\":\"BetterStack Logs (Logtail)\",\"description\":\"Centralized log aggregation. Source tokens, queries, alerts.\"},\"anthropic\":{\"name\":\"Anthropic Console\",\"description\":\"Claude API keys, usage, spend caps, prompt c
1ache stats.\"},\"openai\":{\"name\":\"OpenAI Platform\",\"description\":\"API keys, usage, billing, model deprecation notices.\"},\"cookiebot\":{\"name\":\"Cookiebot Admin\",\"description\":\"Cookie consent banner config, GDPR/CCPA category mapping, audit log.\"},\"gtm\":{\"name\":\"Google Tag Manager\",\"description\":\"Container GTM-MDK39KK3. Tags, triggers, variables, version publishing.\"},\"ga\":{\"name\":\"Google Analytics\",\"description\":\"GA4 property — events, conversions, audiences, reports.\"},\"fbPixel\":{\"name\":\"Meta Events Manager\",\"description\":\"Facebook/Meta Pixel events, conversions API, audience definitions.\"}},\"createClientForm\":{\"clientName\":\"Client Name\",\"clientNamePlaceholder\":\"e.g. Acme Corp\",\"clientDomain\":\"Client Domain (optional)\",\"clientDomainPlaceholder\":\"e.g. acme.com\",\"planTier\":\"Plan Tier\",\"planFree\":\"Free\",\"planStarter\":\"Starter\",\"planGrowth\":\"Growth\",\"planPro\":\"Pro\",\"planPremium\":\"Premium\",\"cancel\":\"Cancel\",\"creating\":\"Creating...\",\"createClient\":\"Create Client\",\"createFailed\":\"Failed to create client workspace. Please try again.\"},\"leadAnalytics\":{\"noData\":\"No analytics data yet\",\"allTime\":\"All time\",\"totalLeads\":\"Total Leads\",\"periodLeads\":\"Period Leads\",\"conversionRate\":\"Conversion Rate\",\"leadsBySource\":\"Leads by Source\"},\"widgetPreviewFeature\":{\"desktopAria\":\"Desktop preview\",\"desktop\":\"Desktop\",\"mobileAria\":\"Mobile preview\",\"mobile\":\"Mobile\",\"iframeTitle\":\"Widget Preview\",\"previewNote\":\"Preview mode -- chat sessions are not counted in analytics\",\"testRealPage\":\"Test on a real page →\",\"closePreview\":\"Close preview\",\"restartConversation\":\"Restart conversation\",\"restartConversationAria\":\"Start a new preview chat session\"},\"widgetConfigPage\":{\"heading\":\"Chat Widget\",\"subtitle\":\"Configure and preview your embeddable chat widget.\",\"defaultGreeting\":\"Hello! How can I help you today?\",\"openPreview\":\"Open widget preview\"},\"widgetConfigForm\":{\"appearance\":\"Appearance\",\"accentColor\":\"Accent Color\",\"chooseAccent\":\"Choose accent color\",\"accentHint\":\"Used for the chat header, send button, and user message bubbles.\",\"welcomeMessage\":\"Welcome Message\",\"greeting\":\"Greeting\",\"greetingPlaceholder\":\"Hello! How can I help you today?\",\"greetingHint\":\"The first message visitors see when they open the chat widget.\"},\"preferencesContent\":{\"title\":\"Preferences\",\"description\":\"Customize your language and timezone settings.\",\"language\":\"Language\",\"timezone\":\"Timezone\",\"timezoneAbbr\":\"({abbr})\",\"placeholder\":\"Select timezone\",\"saved\":\"Timezone set to {abbr}\"},\"platformInstallGuide\":{\"heading\":\"Installation Guide\",\"platforms\":{\"wordpress\":\"WordPress\",\"shopify\":\"Shopify\",\"wix\":\"Wix\",\"squarespace\":\"Squarespace\",\"webflow\":\"Webflow\",\"html\":\"Custom HTML\",\"react\":\"React / Next.js\"},\"instructions\":{\"wordpress\":\"Use the \\\"Insert Headers and Footers\\\" plugin, or paste the script in Appearance \u003e Theme Editor \u003e footer.php before \u003c/body\u003e.\",\"shopify\":\"Go to Online Store \u003e Themes \u003e Edit Code \u003e theme.liquid. Paste the script before the closing \u003c/body\u003e tag.\",\"wix\":\"Go to Settings \u003e Custom Code \u003e Add Custom Code. Set placement to \\\"Body - end\\\" and apply to all pages.\",\"squarespace\":\"Go to Settings \u003e Advanced \u003e Code Injection. Paste the script in the Footer section.\",\"webflow\":\"Go to Project Settings \u003e Custom Code \u003e Footer Code. Paste the script and publish your site.\",\"html\":\"Paste the script tag before the closing \u003c/body\u003e tag in your HTML file.\",\"react\":\"Use Next.js \u003cScript strategy=\\\"afterInteractive\\\"\u003e component, or load dynamically via useEffect with duplicate prevention (check window.__ax_widget_loaded).\"}},\"sessionTranscript\":{\"backToSessions\":\"Back to Sessions\",\"loading\":\"Loading transcript...\",\"notFound\":\"Session not found\",\"source\":\"Source: {source}
1\",\"messages\":\"Messages: {count}\",\"visitor\":\"Visitor\",\"assistant\":\"Assistant\",\"leadCaptured\":\"Lead Captured\",\"visitorLabel\":\"Visitor {id}\",\"sessionLabel\":\"Session {id}\",\"downloadFile\":\"Download {name}\",\"openFile\":\"Open {name}\",\"answeredFromKb\":\"Answered from knowledge base\",\"declinedEmptyKb\":\"Declined — knowledge base is empty\",\"declinedRetrievalError\":\"Declined — retrieval error\",\"declinedNoMatch\":\"Declined — no confident match in KB\",\"modelKnowledge\":\"No source — model knowledge\",\"sourceLabel\":\"Source: {label}\",\"sourceFallback\":\"Source {n}\",\"openSource\":\"Open source\",\"viewReplay\":\"View replay →\"},\"replayView\":{\"loading\":\"Loading replay…\",\"errored\":\"Could not load replay — please retry.\",\"errorNotFound\":\"Session not found.\",\"errorForbidden\":\"You don't have access to this session.\",\"errorUnauthenticated\":\"Please sign in again to view this replay.\",\"errorRateLimited\":\"Too many replay requests — please wait a moment and try again.\",\"errorServer\":\"Server error — please retry shortly.\",\"emptySession\":\"This session has no captured turns yet.\",\"sessionLabel\":\"Session {id}\",\"modeCaptured\":\"Captured\",\"modeLiveLlm\":\"Live-LLM\",\"turnLabel\":\"Turn {current} of {total}\",\"sliderAriaLabel\":\"Turn selector\",\"userMessage\":\"User message\",\"agentInitiated\":\"Agent-initiated turn\",\"noUserMessagePlaceholder\":\"(none)\",\"ragContext\":\"Knowledge Base context\",\"untitledSource\":\"Untitled source\",\"toolActivity\":\"Tool activity\",\"toolCalls\":\"Tool calls\",\"toolResults\":\"Tool results\",\"assistantMessage\":\"Assistant response\"},\"messageDebug\":{\"debug\":\"Debug\",\"declined\":\"Declined\",\"noDebugInfo\":\"No debug info for this message (recorded before the debug columns were added).\",\"modelTokens\":\"Model \u0026 tokens\",\"decision\":\"Decision\",\"model\":\"Model\",\"tokens\":\"Tokens\",\"cost\":\"Cost (USD)\",\"declinedField\":\"Declined\",\"yes\":\"yes\",\"no\":\"no\",\"retrieval\":\"Retrieval\",\"maxSimilarity\":\"Max similarity\",\"threshold\":\"Threshold\",\"chunksReturned\":\"Chunks returned\",\"chunksAboveThreshold\":\"Chunks above threshold\",\"document\":\"Document\",\"preview\":\"Preview\",\"similarity\":\"Similarity\",\"knowledgeBase\":\"Knowledge Base\",\"declinedHeading\":\"Declined: {reason}\",\"unknownReason\":\"unknown\",\"tools\":\"Tools called\",\"toolArguments\":\"Arguments\",\"toolResult\":\"Result\",\"toolSuccess\":\"Success\",\"toolError\":\"Error\",\"toolPending\":\"Pending\",\"toolHttp\":\"HTTP\",\"toolResponse\":\"Response body\",\"toolErrorMessage\":\"Error detail\",\"toolCurl\":\"Reproduce\",\"toolCurlCopy\":\"Copy curl\",\"toolCurlCopied\":\"Copied!\"},\"widgetPreview\":{\"desktopAria\":\"Desktop preview\",\"desktop\":\"Desktop\",\"mobileAria\":\"Mobile preview\",\"mobile\":\"Mobile\",\"iframeTitle\":\"Widget Preview\",\"previewNote\":\"Preview mode -- chat sessions are not counted in analytics\"},\"agentsError\":{\"title\":\"Something went wrong\",\"fallbackMessage\":\"Failed to load the pipeline dashboard.\",\"tryAgain\":\"Try again\"},\"timezoneCard\":{\"title\":\"Timezone\",\"description\":\"Used for displaying schedule times and activity timestamps. Currently \u003cabbr\u003e{abbr}\u003c/abbr\u003e.\",\"label\":\"Your timezone\",\"placeholder\":\"Select timezone\",\"saved\":\"Timezone set to {abbr}\",\"saveFailed\":\"Failed to save timezone\"},\"chatTranscriptPage\":{\"loading\":\"Loading transcript...\",\"notFound\":\"Session not found\",\"takeOver\":\"Take over\",\"takingOver\":\"Taking over…\",\"takeOverFailed\":\"Couldn't take over this conversation.\",\"breadcrumbChatSessions\":\"Chat Sessions\",\"breadcrumbTranscript\":\"Transcript\",\"source\":\"Source: {source}\",\"messages\":\"Messages: {count}\",\"visitor\":\"Visitor\",\"assistant\":\"Assistant\",\"tokens\":\"{count} tokens\",\"sources\":\"Sources:\",\"sourceFallback\":\"Source\",\"leadCaptured\":\"Lead Captured\"},\"templateSelector\":{\"comingSoon\":\"Coming Soon\",\"recommended\":\"Recommended\",\"limitReached\":\"Limit reached\",\"selected\":\"Selected\",\"createAgent\":\"Create Agent\"},\"customMcpDialog\":{\"zohoGuide\":{\"title\":\"Connecting Zoho CRM?\",\"step1\":\"Go to zoho.com/mcp, sign in with your Zoho account, and create an MCP server.\",\"step2\":\"Add the Zoho CRM tools (Leads, Contacts, Deals) to that server.\",\"step3\":\"Open the \\\"Connect\\\" tab on your server — that's where the Server URL appears.\",\"step4\":\"Authorize access when Zoho prompts, then copy the Server URL.\",\"step5\":\"Paste that URL into Server URL below.\",\"openZoho\":\"Open Zoho MCP →\",\"secretNote\":\"The Server URL contains an API key — treat it like a password. Regenerate it in Zoho if it leaks.\"},\"editTitle\":\"Edit custom MCP server\",\"newTitle\":\"Connect a custom MCP server\",\"editDescription\":\"Update the connection. We re-discover tools when the URL or auth changes.\",\"newDescription\":\"Point to an MCP server URL. We auto-detect the transport (Streamable HTTP or legacy HTTP+SSE) — just paste the URL and Test.\",\"name\":\"Name\",\"namePlaceholder\":\"e.g. My company knowledge base\",\"serverUrl\":\"Server URL\",\"urlHint\":\"The MCP server must be a public HTTPS URL we can reach (not localhost or a private network).\",\"detectedTransport\":\"Transport\",\"transportStreamableHttp\":\"Streamable HTTP\",\"transportSse\":\"HTTP+SSE (legacy)\",\"authentication\":\"Authentication\",\"changeCredentials\":\"Change credentials\",\"storedCredentials\":\"Using stored credentials. Leave as-is or change them above.\",\"none\":\"None\",\"bearerToken\":\"Bearer token\",\"apiKeyHeader\":\"API key header\",\"token\":\"Token\",\"headerName\":\"Header name\",\"apiKey\":\"API key\",\"connectedFound\":\"{count, plural, one {Connected — found # tool} other {Connected — found # tools}}\",\"andMore\":\"... and {count} more\",\"nameUrlRequired\":\"Name and server URL are required.\",\"connectionFailed\":\"Connection failed\",\"savedChanges\":\"Saved changes to \\\"{name}\\\"\",\"connectedName\":\"Connected \\\"{name}\\\"\",\"saveFailed\":\"Save failed\",\"testConnection\":\"Test Connection\",\"save\":\"Save\"},\"connectedServerDetail\":{\"noUrl\":\"(no URL)\",\"edit\":\"Edit\",\"refreshTools\":\"Refresh tools\",\"disconnect\":\"Disconnect\",\"lastHealthCheck\":\"Last health check {time}\",\"lastErrorTitle\":\"Last error\",\"toolsHeading\":\"Tools ({count})\",\"everyToolCallable\":\"Every tool below is callable by the agent\",\"loadingTools\":\"Loading tools...\",\"loadToolsFailed\":\"Failed to load tools: {error}\",\"noToolsMcp\":\"No tools discovered yet. Try refreshing.\",\"noToolsOpenapi\":\"No tools discovered yet. Try disconnecting and re-uploading the spec.\",\"toolsRefreshed\":\"Tools refreshed\",\"refreshFailed\":\"Refresh failed\",\"disconnectTitle\":\"Disconnect \\\"{name}\\\"?\",\"disconnectDescription\":\"The agent will lose access to these tools.\",\"disconnected\":\"Disconnected \\\"{name}\\\"\",\"disconnectFailed\":\"Disconnect failed\"},\"integrationCard\":{\"connected\":\"Connected\",\"error\":\"Error\",\"unhealthy\":\"Unhealthy\",\"actionNeeded\":\"Action needed\",\"toolsAvailable\":\"{count, plural, one {# tool available to your agent} other {# tools available to your agent}}\",\"lastCheckedAgo\":\"Checked {time}\",\"comingSoon\":\"Coming soon\",\"notifyMe\":\"Notify me\"},\"integrationsV2Providers\":{\"categoryCRM\":\"CRM\",\"categoryScheduling\"
1:\"Scheduling\",\"categoryCommunication\":\"Messaging channels\",\"categoryAdvanced\":\"Advanced\",\"hubspotName\":\"HubSpot\",\"hubspotDescription\":\"Look up contacts, push deals, sync CRM data\",\"zohoName\":\"Zoho CRM\",\"zohoDescription\":\"Generate an MCP URL at mcp.zoho.com, paste it here — agent can query Leads, Contacts, Deals\",\"slackName\":\"Slack\",\"slackDescription\":\"Post alerts, read channels, search messages\",\"calendlyName\":\"Calendly\",\"calendlyDescription\":\"Let visitors book meetings — agent surfaces scheduling links\",\"calcomName\":\"Cal.com\",\"calcomDescription\":\"Open-source scheduling — agent shares your Cal.com booking links\",\"instantlyName\":\"Instantly\",\"instantlyDescription\":\"Auto-add captured leads to your cold-email campaigns\",\"whatsappName\":\"WhatsApp\",\"whatsappDescription\":\"Reply to customers on WhatsApp Business — connect your number\",\"messengerName\":\"Messenger\",\"instagramName\":\"Instagram\",\"messengerDescription\":\"Reply to Facebook Page messages — connect your Page\",\"instagramDescription\":\"Reply to Instagram DMs — connect your professional account\",\"zaloName\":\"Zalo\",\"zaloDescription\":\"Connect your Zalo Official Account — popular in Vietnam\",\"lineName\":\"LINE\",\"lineDescription\":\"Reply via LINE Official Account — popular in JP/TW/TH\",\"telegramName\":\"Telegram\",\"telegramDescription\":\"Receive and reply to Telegram bot conversations\",\"customMcpName\":\"Custom HTTP MCP server\",\"customMcpDescription\":\"Connect HTTP/JSON-RPC servers. Stdio and SSE MCP servers are not supported yet.\",\"customOpenapiName\":\"Custom REST API\",\"customOpenapiDescription\":\"Upload an OpenAPI spec — we wrap every endpoint as a tool\",\"shopifyName\":\"Shopify\",\"shopifyDescription\":\"Let your agent answer product + order questions from your store\",\"shopifyUnverifiedNotice\":\"Shopify will show a \\\"not yet reviewed\\\" notice during install — that's expected. Click \u003cconnect\u003eConnect with Shopify\u003c/connect\u003e to continue.\",\"stripeName\":\"Stripe\",\"stripeDescription\":\"Let your agent look up payments and issue refunds (with approval)\",\"categoryCommerce\":\"Commerce\",\"categorySupport\":\"Support\",\"zendeskName\":\"Zendesk\",\"zendeskDescription\":\"Let your agent file a support ticket when a visitor needs a human\",\"zohodeskName\":\"Zoho Desk\",\"zohodeskDescription\":\"File support tickets in Zoho Desk on escalation\",\"intercomName\":\"Intercom\",\"intercomDescription\":\"File support tickets in Intercom on escalation\",\"helpscoutName\":\"Help Scout\",\"helpscoutDescription\":\"File support tickets in Help Scout on escalation\",\"freshdeskName\":\"Freshdesk\",\"freshdeskDescription\":\"File support tickets in Freshdesk on escalation\"},\"oauthProviderDetail\":{\"subtitle\":\"Manage your {name} connection.\",\"statusHeading\":\"Status\",\"connected\":\"Connected\",\"healthHeading\":\"Health\",\"lastHealthCheck\":\"Last health check\",\"autoPush\":\"Auto-push to HubSpot\",\"enabled\":\"Enabled\",\"disabled\":\"Disabled\",\"slackHeading\":\"Workspace\",\"slackChannel\":\"Notification channel\",\"slackLastMessage\":\"Last message\",\"disconnectHeading\":\"Disconnect\",\"disconnectIntro\":\"Disconnecting removes the stored OAuth token. {name} tools will stop working immediately.\",\"disconnectCta\":\"Disconnect {name}\",\"disconnecting\":\"Disconnecting…\",\"disconnectedHubspot\":\"HubSpot disconnected.\",\"disconnectedSlack\":\"Slack disconnected.\",\"disconnectedCalendly\":\"Calendly disconnected.\",\"disconnectFailed\":\"Could not disconnect. Try again in a moment.\",\"hubspotConsequenceTools\":\"Stop the chat agent from looking up contacts or pushing deals.\",\"hubspotConsequenceToken\":\"Revoke the stored HubSpot OAuth token so we can no longer call the API on your behalf.\",\"hubspotConsequenceReconnect\":\"Require a fresh OAuth approval to reconnect.\",\"slackConsequenceMessages\":\"Stop the chat agent from posting alerts or reading channel messages.\",\"slackConsequenceToken\":\"Revoke the stored Slack OAuth token so we can no longer send on your behalf.\",\"slackConsequenceReconnect\":\"Require a fresh Slack OAuth approval to reconnect.\",\"calendlyConsequenceTools\":\"Stop the chat agent from offering Calendly scheduling links to visitors.\",\"calendlyConsequenceToken\":\"Revoke the stored Calendly OAuth token so we can no longer create scheduling links on your behalf.\",\"calendlyConsequenceReconnect\":\"Require a fresh Calendly OAuth approval to reconnect.\",\"authExpired\":\"Auth expired — reconnect\",\"testConnection\":\"Test connection\",\"testing\"
1:\"Testing…\",\"testHealthy\":\"Connection is healthy.\",\"testFailed\":\"Connection test failed.\",\"reconnect\":\"Reconnect\",\"reconnecting\":\"Reconnecting…\",\"reconnectFailed\":\"Could not start reconnect. Try again.\"},\"integrationsV2\":{\"connectFailed\":\"Connection failed\",\"disconnectTitle\":\"Disconnect {name}?\",\"disconnectDescription\":\"The agent will lose access to its tools.\",\"disconnect\":\"Disconnect\",\"hubspotDisconnected\":\"HubSpot disconnected\",\"slackDisconnected\":\"Slack disconnected\",\"disconnectFailed\":\"Disconnect failed\",\"oauthSuccess\":\"{tool} connected successfully via OAuth.\",\"oauthFailed\":\"OAuth failed: {reason}\",\"unknownError\":\"Unknown error\",\"integration\":\"Integration\",\"loading\":\"Loading integrations...\",\"noToolsTitle\":\"Your agent has no tools yet\",\"noToolsBody\":\"Connect an integration below so your chatbot can answer questions using live data from your tools.\",\"connectedHeading\":\"Connected ({count})\",\"manage\":\"Manage\",\"advancedToggle\":\"Don't see your tool? Advanced options ({count})\",\"connect\":\"Connect\",\"upgradeToUnlock\":\"Upgrade to {tier}\",\"instantlyConnectSheetTitle\":\"Connect Instantly\",\"instantlyConnectSheetDescription\":\"Paste your Instantly v2 API key. We'll verify it with Instantly before saving.\",\"instantlyGuideTitle\":\"Where's my Instantly API key?\",\"instantlyStep1\":\"Open Instantly → Settings → Integrations → API.\",\"instantlyStep2\":\"Create or copy a v2 API key (older v1 keys won't work).\",\"instantlyStep3\":\"Paste the key below. API access requires a paid Instantly plan.\",\"instantlyOpenLink\":\"Open Instantly settings →\",\"instantlyApiKeyLabel\":\"Instantly API key\",\"instantlyApiKeyPlaceholder\":\"Paste your v2 API key\",\"instantlyApiKeyHint\":\"Stored encrypted. Used to push captured leads into your campaigns.\",\"instantlyCancelCta\":\"Cancel\",\"instantlyConnectCta\":\"Connect Instantly\",\"instantlyConnectingCta\":\"Connecting…\",\"instantlyConnectedTitle\":\"Instantly connected\",\"instantlySavedNotVerified\":\"Saved — but the key isn't verified yet.\",\"instantlyConnectFailedTitle\":\"Couldn't connect Instantly\",\"instantlyConnectFailedFallback\":\"Something went wrong. Try again.\",\"instantlyManageSheetTitle\":\"Manage Instantly\",\"instantlyManageSheetDescription\":\"Pick the campaign captured leads go to and toggle auto-push.\",\"instantlyManageStatus\":\"Connection\",\"instantlyManageConnected\":\"Connected\",\"instantlyManageNeedsAttention\":\"Action needed\",\"instantlyManageDisconnected\":\"Disconnected\",\"instantlyManageSavedKey\":\"Saved key\",\"instantlyManageNotLiveHint\":\"Saved, but not active yet — verify the key (e.g. upgrade your Instantly plan) to start pushing leads.\",\"instantlyCampaignLabel\":\"Campaign to send leads to\",\"instantlyCampaignPlaceholder\":\"Pick a campaign\",\"instantlySaveCampaign\":\"Save\",\"instantlyCampaignSaved\":\"Campaign saved\",\"instantlyCampaignSaveFailed\":\"Couldn't save the campaign\",\"instantlyAutoPushLabel\":\"Auto-push leads to Instantly\",\"instantlyAutoPushHelp\":\"New leads captured by the chat agent are added to the selected campaign automatically.\",\"instantlyAutoPushDisabledHint\":\"Auto-push turns on once your key is verified and a campaign is selected.\",\"instantlyAutoPushEnabled\":\"Auto-push enabled\",\"instantlyAutoPushDisabled\":\"Auto-push disabled\",\"instantlyAutoPushFailed\":\"Couldn't update auto-push\",\"instantlyTestHealthy\":\"Connection verified\",\"instantlyTestFailed\":\"Couldn't verify the connection\",\"instantlyManageRotateKey\":\"Update API key\",\"instantlyManageDisconnect\":\"Disconnect Instantly\",\"instantlyDisconnected\":\"Instantly disconnected\",\"instantlyDisconnectConsequenceTool\":\"Captured leads will stop syncing to Instantly.\",\"instantlyDisconnectConsequenceReconnect\":\"You can reconnect anytime by pasting your API key again.\",\"calcomConnectSheetTitle\":\"Connect Cal.com\",\"calcomConnectSheetDescription\":\"Paste your Cal.com API key. We'll validate it with Cal.com before saving.\",\"calcomGuideTitle\":\"Connecting Cal.com?\",\"calcomOpenLink\":\"Open Cal.com API Keys →\",\"calcomStep1\":\"Open Cal.com → Settings → Developer → API Keys.\",\"calcomStep2\":\"Create a new key (no expiry recommended, or any duration you prefer).\",\"calcomStep3\":\"Copy the key (starts with cal_) and paste it below.\",\"calcomApiKeyLabel\":\"Cal.com API key\",\"calcomApiKeyHint\":\"Stored encrypted. You can rotate or revoke this key any time from Cal.com Settings.\",\"calcomApiKeyPrefixWarning\":\"This doesn't look like a Cal.com API key — they start with cal_. Double-check you didn't paste a key from a different provider.\",\"calcomCancelCta\":\"Cancel\",\"calcomConnectCta\":\"Connect\",\"calcomConnectingCta\":\"Validating with Cal.com…\",\"calcomConnectedTitle\":\"Cal.com connected\",\"calcomConnectedDescription\":\"Your agent can now share booking links for @{username}.\",\"calcomConnectFailedTitle\":\"Could not connect Cal.com\",\"calcomConnectFailedFallback\":\"Unknown error. Check the API key and try again.\",\"calcomDisconnected\":\"Cal.com disconnected\",\"calcomManageSheetTitle\":\"Cal.com\",\"calcomManageSheetDescription\":\"Rotate your API key or disconnect Cal.com from this workspace.\",\"calcomManageStatus\":\"Status\",\"calcomManageSavedKey\":\"Saved key\",\"calcomManageConnected\":\"Connected\",\"calcomManageDisconnected\":\"Not connected\",\"calcomManageLastChecked\":\"Last health check {ago}.\",\"authExpired\":\"Auth expired — reconnect\",\"testConnection\":\"Test connection\",\"testing\"
1:\"Testing…\",\"testHealthy\":\"Connection is healthy.\",\"testFailed\":\"Connection test failed.\",\"calcomManageRotateKey\":\"Rotate API key\",\"calcomManageDisconnect\":\"Disconnect Cal.com\",\"calcomDisconnectConsequenceTool\":\"Your agent will lose the ability to share Cal.com booking links with visitors.\",\"calcomDisconnectConsequenceLinks\":\"Booking links already shared with visitors keep working — Cal.com hosts them. We just stop generating new ones.\",\"calcomDisconnectConsequenceReconnect\":\"To reconnect later, generate a fresh API key in Cal.com Settings → Developer → API Keys and paste it again.\",\"shopifyConnectedTitle\":\"Connected {shop}\",\"shopifyConnectFailedTitle\":\"Couldn't connect Shopify\",\"shopifyConnectFailedFallback\":\"Check the store domain and access token, then try again.\",\"shopifyConnectSheetTitle\":\"Connect Shopify\",\"shopifyConnectSheetDescription\":\"Let your agent answer product and order questions from your store.\",\"shopifyOAuthIntro\":\"You'll be redirected to Shopify to approve access — no developer setup needed.\",\"shopifyOAuthReviewNotice\":\"On the next screen Shopify shows a \\\"not yet reviewed\\\" notice — that's normal for a private integration. Choose Install to finish connecting.\",\"shopifyConnectWithShopifyCta\":\"Connect with Shopify\",\"shopifyUseTokenInstead\":\"Connect with an Admin API access token instead\",\"shopifyGuideTitle\":\"Create a custom app token\",\"shopifyStep1\":\"In Shopify admin: Settings → Apps and sales channels → Develop apps → Create an app.\",\"shopifyStep2\":\"Under Configuration → Admin API, grant read_products and read_orders.\",\"shopifyStep3\":\"Install the app, then copy its Admin API access token (starts with shpat_).\",\"shopifyDomainLabel\":\"Store domain\",\"shopifyTokenLabel\":\"Admin API access token\",\"shopifyTokenHint\":\"Stored encrypted. The agent uses it to read products and orders.\",\"shopifyCancelCta\":\"Cancel\",\"shopifyConnectingCta\":\"Connecting…\",\"shopifyConnectCta\":\"Connect\",\"shopifyName\":\"Shopify\",\"shopifyManageTitle\":\"Manage Shopify\",\"shopifyManageDescription\":\"Your connected store, token rotation, and disconnect.\",\"shopifyStatusConnected\":\"Connected\",\"shopifyVisitorExposureNote\":\"Connecting links the store at the workspace level. To let an agent use it with visitors, enable Shopify on that agent's Tools page.\",\"shopifyChangeStoreCta\":\"Change store\",\"shopifyChangeStoreNote\":\"Connecting a different store replaces this one — there's one Shopify store per workspace.\",\"shopifyDisconnectCta\":\"Disconnect\",\"shopifyDisconnectConsequenceTools\":\"Your agent will stop answering product and order questions from your Shopify store.\",\"shopifyDisconnectConsequenceReconnect\":\"You can reconnect anytime from the Shopify tile.\",\"shopifyDisconnectedTitle\":\"Shopify disconnected\",\"shopifyDisconnectFailedTitle\":\"Couldn't disconnect Shopify\",\"zendeskConnectedTitle\":\"Connected {account}\",\"zendeskConnectFailedTitle\":\"Couldn't connect Zendesk\",\"zendeskConnectFailedFallback\":\"Check the subdomain, agent email, and API token, then try again.\",\"zendeskConnectSheetTitle\":\"Connect Zendesk\",\"zendeskConnectSheetDescription\":\"Let your agent file a Zendesk support ticket when a visitor needs a human.\",\"zendeskGuideTitle\":\"Create an API token\",\"zendeskStep1\":\"In Zendesk: Admin Center → Apps and integrations → APIs → Zendesk API.\",\"zendeskStep2\"
1:\"Enable token access and add a new API token; copy it.\",\"zendeskStep3\":\"Paste your subdomain, an agent email, and the token below.\",\"zendeskSubdomainLabel\":\"Subdomain\",\"zendeskEmailLabel\":\"Agent email\",\"zendeskTokenLabel\":\"API token\",\"zendeskTokenPlaceholder\":\"Zendesk API token\",\"zendeskTokenHint\":\"Stored encrypted. Used to file tickets via the Zendesk Support API.\",\"zendeskCancelCta\":\"Cancel\",\"zendeskConnectingCta\":\"Connecting…\",\"zendeskConnectCta\":\"Connect\",\"zendeskName\":\"Zendesk\",\"zendeskManageTitle\":\"Manage Zendesk\",\"zendeskManageDescription\":\"Your connected Zendesk, token rotation, and disconnect.\",\"zendeskStatusConnected\":\"Connected\",\"zendeskVisitorExposureNote\":\"Connecting links Zendesk at the workspace level. To let an agent file tickets for visitors, enable Zendesk on that agent's Tools page.\",\"zendeskRotateTokenCta\":\"Rotate token\",\"zendeskDisconnectCta\":\"Disconnect\",\"zendeskDisconnectedTitle\":\"Zendesk disconnected\",\"zendeskDisconnectFailedTitle\":\"Couldn't disconnect Zendesk\"},\"disconnectServerDialog\":{\"title\":\"Disconnect \\\"{name}\\\"?\",\"warningIntro\":\"Disconnecting this integration will:\",\"warningConsequence1\":\"Stop the chat agent from being able to call any of its tools.\",\"warningConsequence2\":\"Tear down stored credentials, tokens, or API keys for this integration.\",\"warningConsequence3\":\"Remove the connection — you'll have to reconnect from scratch to restore it.\",\"warningIrreversible\":\"This action cannot be undone.\",\"typeNameLabel\":\"To continue, type the connection name: {name}\",\"typeKeywordLabel\":\"Now type {keyword} to confirm\",\"cancel\":\"Cancel\",\"confirm\":\"Disconnect\",\"disconnecting\":\"Disconnecting…\"},\"dynamicCredentialForm\":{\"showField\":\"Show {label}\",\"hideField\":\"Hide {label}\",\"setupGuide\":\"Setup Guide\"},\"credentialModal\":{\"manageTitle\":\"Manage {name}\",\"connectTitle\":\"Connect {name}\",\"enterCredentials\":\"Enter your {toolName} credentials to connect.\",\"connectedSuccess\":\"Connected successfully\",\"availableIn\":\"Available in: {list}\",\"closingAuto\":\"Closing automatically...\",\"alreadyConnected\":\"This tool is connected and working.\",\"disconnect\":\"Disconnect\",\"close\":\"Close\",\"hubspotConnected\":\"HubSpot is connected via OAuth.\",\"tokenExpired\":\"(Token expired — will refresh automatically)\",\"hubspotScopes\":\"Scopes: crm.objects.contacts.read, crm.objects.contacts.write\",\"oauthHelp\":\"{name} uses OAuth for secure authorization. Click below to connect your HubSpot account.\",\"scopesRequested\":\"Scopes requested: crm.objects.contacts.read, crm.objects.contacts.write\",\"oauthFailed\":\"Failed to start OAuth flow\",\"cancel\":\"Cancel\",\"connectWithHubspot\":\"Connect with HubSpot\",\"saveFailed\":\"Failed to create credential\",\"savedTestFailed\":\"Credential saved but test failed. Check your key and try again.\",\"testing\":\"Testing...\",\"testConnection\":\"Test Connection\",\"validating\":\"Validating...\",\"testAndConnect\":\"Test \u0026 Connect\",\"disconnectTitle\":\"Disconnect {name}?\",\"disconnectDescription\":\"This will remove your API key from n8n. Your agent will not be able to use this tool until reconnected.\",\"connectionSuccess\":\"Connection successful!\",\"connectionFailed\":\"Connection failed. Please check your credentials.\",\"testFailed\":\"Failed to test connection.\"},\"connectionHealth\":{\"neverTested\":\"Never tested\",\"autoChecked\":\"Auto-checked {time}\",\"tested\":\"Tested {time}\",\"test\":\"Test\",\"emptyTitle\":\"No connections to monitor\",\"emptyBody\":\"Connect your first tool to start monitoring\",\"title\":\"Connection Health\",\"summary\":\"{healthy} healthy, {unhealthy} issues\",\"testAll\":\"Test All Connections\",\"statusHealthy\":\"Healthy\",\"statusUnhealthy\":\"Unhealthy\",\"statusError\":\"Error\",\"statusUnknown\":\"Unknown\"},\"integrationGrid\":{\"celebration\":\"{count, plural, one {# tool already connected! You're ready to build your first workflow.} other {# tools already connected! You're ready to build your first workflow.}}\",\"searchPlaceholder\":\"Search integrations by name or category...\",\"mobileHint\":\"Use a desktop browser to manage integrations\",\"recommended\":\"Recommended\",\"allTools\":\"All Tools ({count})\",\"connected\":\"Connected\",\"connectedImported\":\"Connected (imported)\",\"notConnected\":\"Not connected\",\"availableIn\":\"Available in: {list}\",\"updateKey\":\"Update Key\",\"resync\":\"Re-sync\"},\"openClaw\":{\"regions\":{\"us-east-1\":\"US East (Virginia)\",\"us-west-2\":\"US West (Oregon)\",\"eu-west-1\":\"EU West (Ireland)\",\"ap-southeast-1\":\"Asia Pacific (Singapore)\"},\"computeTiers\":{\"standard\":\"Standard (2 vCPU / 4 GB)\",\"performance\":\"Performance (4 vCPU / 8 GB)\"},\"fallbackPolicies\":{\"stop_and_notify\":\"Stop and Notify\",\"fallback_to_langgraph\":\"Fallback to LangGraph\"},\"statusActive\":\"Active\",\"statusProvisioning\":\"Provisioning\",\"statusDegraded\":\"Degraded\",\"statusDown\":\"Down\",\"statusError\":\"Error\",\"statusDecommissioned\":\"Decommissioned\",\"instanceTitle\":\"OpenClaw Instance\",\"instanceDescription\":\"Dedicated per-org agent isolation\",\"regi
1on\":\"Region\",\"computeTier\":\"Compute Tier\",\"activeAgents\":\"Active Agents\",\"monthlyCost\":\"Monthly Cost\",\"monthlyCostValue\":\"$${value}/mo\",\"resourceUtilization\":\"Resource Utilization\",\"cpu\":\"CPU\",\"memory\":\"Memory\",\"lastHeartbeat\":\"Last heartbeat: {time}\",\"fallbackPolicyLabel\":\"Fallback policy: {policy}\",\"decommissionButton\":\"Decommission Instance\",\"decommissionTitle\":\"Decommission OpenClaw Instance\",\"decommissionDescription\":\"This will shut down your dedicated OpenClaw instance and all deployed agents. This action cannot be undone. You can provision a new instance later.\",\"cancel\":\"Cancel\",\"decommissionConfirm\":\"Decommission\",\"provisionTitle\":\"OpenClaw Dedicated Instance\",\"provisionDescription\":\"Provision a dedicated, isolated compute environment for your agents. Enterprise tier required.\",\"regionLabel\":\"Region\",\"computeTierLabel\":\"Compute Tier\",\"fallbackPolicyForm\":\"Fallback Policy\",\"provisionNote\":\"Each enterprise workspace gets a dedicated OpenClaw instance (~$35/mo). Your agents will run in an isolated environment with dedicated compute.\",\"provisionButton\":\"Provision Instance\",\"provisionStarted\":\"OpenClaw provisioning started. Your instance will be ready shortly.\",\"provisionFailed\":\"Provisioning failed: {error}\",\"unknownError\":\"Unknown error\",\"decommissioned\":\"OpenClaw instance decommissioned\",\"decommissionFailed\":\"Failed to decommission instance\"},\"n8n\":{\"reachable\":\"n8n is reachable\",\"unreachable\":\"Cannot reach n8n — check URL and API key\",\"testFailed\":\"Connection test failed\",\"refreshed\":\"Credentials refreshed\",\"refreshFailed\":\"Failed to refresh credentials\",\"replaceTitle\":\"Replace n8n connection?\",\"replaceDescription\":\"This will replace your current n8n connection and API key.\",\"replaceConfirm\":\"Replace\",\"connectedTitle\":\"n8n Connected\",\"errorTitle\":\"n8n Connection Error\",\"apiKeyLabel\":\"API Key: {preview}\",\"test\":\"Test\",\"refresh\":\"Refresh\",\"reconfigure\":\"Reconfigure\",\"actionsAria\":\"n8n actions\",\"testConnection\":\"Test Connection\",\"refreshCredentials\":\"Refresh Credentials\",\"lastChecked\":\"Last checked: {time} ({clock})\",\"next\":\"Next: {time}\",\"connectTitle\":\"Connect your n8n instance\",\"connectDescription\":\"Enter your n8n URL and API key to enable workflow automation\",\"urlLabel\":\"n8n Instance URL\",\"urlPlaceholder\":\"https://your-n8n.example.com\",\"apiKeyInputLabel\":\"API Key\",\"apiKeyPlaceholder\":\"n8n API key\",\"currentlyStored\":\"Currently stored: {preview} — enter a new key to replace it.\",\"connectFailedFallback\":\"Connection failed. Check your URL and API key.\",\"connectAndTest\":\"Connect \u0026 Test\",\"cancel\":\"Cancel\"},\"agencyBanner\":{\"managingClient\":\"You're managing client\",\"backToAgency\":\"Back to agency\",\"switchFailed\":\"Couldn't switch workspace. Please try again.\"},\"agencyInvite\":{\"message\":\"Managing multiple clients? Contact us to upgrade to an agency account. We know not having self-serve is inconvenient right now — we want to learn about your use case so we can serve you better.\",\"cta\":\"Contact us\",\"dismiss\":\"Dismiss\"},\"agencyStatus\":{\"badge\":\"Agency · {used}/{limit} clients\"},\"agencyOverview\":{\"loading\":\"Loading agency overview...\",\"loadFailed\":\"Failed to load agency overview. You may not have an agency account.\",\"agencyBadge\":\"Agency\",\"clientsUsage\":\"{used} of {limit} clients used\",\"clientLimitReached\":\"Client limit reached\",\"contactToAddMore\":\"Contact us to add more\",\"switchFailed\":\"Couldn't switch workspace. Please try again.\",\"switchIntoClient\":\"Switch into {name}\",\"switching\":\"Switching…\",\"totalClients\":\"Total Clients\",\"totalAgents\":\"Total Agents\",\"sessions30d\":\"Sessions (30d)\",\"leads30d\":\"Leads (30d)\",\"openHandoffs\":\"Open Handoffs\",\"openHandoffCount\":\"{count, plural, =1 {1 open} other {# open}}\",\"lastHandoffAgo\":\"Last handoff {time}\",\"filterPlaceholder\":\"Filter clients...\",\"addClient\":\"+ Add Client\",\"addClientTitle\":\"Add Client Worksp
1ace\",\"viewAnalytics\":\"View Analytics\",\"managedTier\":\"Managed\",\"managedWithPlan\":\"Managed ({plan})\",\"planFree\":\"Free\",\"planStarter\":\"Starter\",\"planPro\":\"Pro\",\"planPremium\":\"Premium\",\"columns\":{\"name\":\"Client Name\",\"tier\":\"Tier\",\"agents\":\"Agents\",\"sessions30d\":\"Sessions (30d)\",\"leads30d\":\"Leads (30d)\",\"needsAttention\":\"Needs Attention\",\"status\":\"Status\",\"actions\":\"Actions\"},\"empty\":\"No client workspaces yet. Click \\\"Add Client\\\" to get started.\",\"actionsAria\":\"Actions\",\"pauseAll\":\"Pause All Agents\",\"resumeAll\":\"Resume All Agents\",\"archive\":\"Archive Workspace\",\"archiveTitle\":\"Archive this workspace?\",\"archiveDescription\":\"It will be recoverable for 30 days.\",\"archiveConfirm\":\"Archive\"},\"agencyAnalytics\":{\"loading\":\"Loading agency analytics...\",\"loadFailed\":\"Failed to load agency analytics. You may not have an agency account.\",\"last7Days\":\"Last 7 days\",\"last30Days\":\"Last 30 days\",\"totalSessions\":\"Total Sessions\",\"totalLeads\":\"Total Leads\",\"groundingRate\":\"Avg Grounding\",\"totalCost\":\"Total Cost\",\"dailyActivity\":\"Daily Activity\",\"sessions\":\"Sessions\",\"leads\":\"Leads\",\"perClientHeading\":\"Per-Client Performance ({count})\",\"columns\":{\"client\":\"Client\",\"sessions\":\"Sessions\",\"leads\":\"Leads\",\"grounding\":\"Grounding\",\"cost\":\"Cost\"},\"empty\":\"No client data yet for this period.\",\"exportCsv\":\"Export CSV\",\"exportSuccess\":\"Analytics CSV downloaded\",\"exportFailed\":\"Export failed\"},\"datasetDetailPage\":{\"autoRetrain\":{\"title\":\"Auto-retrain knowledge base\",\"description\":\"Automatically re-crawl your URL \u0026 Notion sources every week so your agent stays current — no manual rescraping.\",\"toggleLabel\":\"Weekly auto-retrain\",\"retrainNowButton\":\"Run weekly retrain now\",\"lastRetrained\":\"Last auto-retrained {date}\",\"neverRetrained\":\"Not auto-retrained yet\",\"upgradeCta\":\"Upgrade to {tier}\",\"toggleFailed\":\"Couldn't update auto-retrain. Please try again.\"},\"kbLimitTitle\":\"Knowledge base limit reached\",\"kbDocsLimit\":\"Your plan allows {limit} documents (you're using {used}).\",\"kbUrlsLimit\":\"Your plan allows {limit} URL sources (you're using {used}).\",\"kbLimitCta\":\"Upgrade to add more\",\"notionConnected\":\"Notion workspace connected\",\"notionConnectFailed\":\"Notion connection failed: {error}\",\"notionConnectStartFailed\":\"Could not start Notion connect flow\",\"notionDisconnected\":\"Notion disconnected\",\"notionDisconnectFailed\":\"Failed to disconnect Notion\",\"rescrapeStartFailed\":\"Failed to start rescrape\",\"rescrapeNothingOnlyUploads\":\"Nothing to rescrape — only uploaded files in this knowledge base. Re-upload to refresh them.\",\"rescrapeNoDocuments\":\"No documents to rescrape.\",\"rescrapeQueued\":\"{queued, plural, one {Rescraping # document…} other {Rescraping # documents…}}{skipNote}\",\"rescrapeSkipNote\":\" ({skipped, plural, one {# uploaded file skipped — re-upload to refresh} other {# uploaded files skipped — re-upload to refresh}})\",\"rescrapeAllConfirmTitle\":\"Rescrape all documents?\",\"rescrapeAllConfirmDescriptionWithCount\":\"Re-fetches and re-indexes every URL, sitemap and Notion page in this knowledge base ({count, plural, one {# document} other {# documents}}). Uploaded files are skipped.\",\"rescrapeAllConfirmDescription\":\"Re-fetches and re-indexes every URL, sitemap and Notion page in this knowledge base. Uploaded files are skipped.\",\"rescrapeAllConfirmLabel\":\"Rescrape\",\"knowledgeBaseNotFound\":\"Knowledge base not found.\",\"documentCount\":\"{count, plural, one {# document} other {# documents}}\",\"segmentCount\":\"{count, plural, one {# segment} other {# segments}}\",\"workspaceFallback\":\"workspace\",\"changePagesTitle\":\"Click to change selected pages\",\"notionActionsAria\":\"Notion actions\",\"syncPages\":\"Sync pages\",\"disconnect\":\"Disconnect\",\"connectNotion\":\"Connect Notion\",\"connecting\":\"Connecting…\",\"lastCrawledTitle\":\"Last crawled {date}\",\"lastCrawledFoundTitle\":\"Last crawled {date} — found {found} pages\",\"recrawlLabel\":\"Re-crawl {url}\",\"cooldownTitle\":\"Available again in {time}\",\"rescrapeAll\":\"Rescrape all\",\"rescrapeAllCooldown\":\"Rescrape all ({time})\",\"rescrapeAllStarting\":\"Starting…\",\"refresh\":{\"menuLabel\":\"Refresh\",\"allSources\":\"All sources\",\"
1websitesLinks\":\"Websites \u0026 links\",\"notionPages\":\"Notion pages\",\"recrawlNewPages\":\"Re-crawl for new pages…\",\"confirmTitle\":\"Refresh knowledge base?\",\"confirmUrl\":\"Re-fetches and re-indexes every website and link source. Notion pages, uploaded files and notes are untouched.\",\"confirmNotion\":\"Re-syncs every Notion page. Websites, uploaded files and notes are untouched.\"},\"tierBannerTitle\":\"Finish your crawl.\",\"tierBannerBodyWithCount\":\"You crawled {url} earlier and {found} pages were found, but your plan tier capped how many got indexed.\",\"tierBannerBodyWithoutCount\":\"You crawled {url} earlier and some pages were found, but your plan tier capped how many got indexed.\",\"tierBannerRecrawl\":\"Re-crawl now\",\"tierBannerSuffix\":\"to index the rest on your current plan.\"},\"datasetList\":{\"emptyTitle\":\"No knowledge bases yet\",\"emptyBody\":\"A knowledge base is created automatically when you set up a chat agent. Open the chat agent page to add documents.\",\"searchPlaceholder\":\"Search knowledge bases...\",\"columnName\":\"Name\",\"columnDocuments\":\"Documents\",\"columnSegments\":\"Segments\",\"columnLastUpdated\":\"Last Updated\",\"noMatch\":\"No knowledge bases match your search.\",\"actionsAria\":\"Dataset actions\",\"delete\":\"Delete\",\"deleted\":\"Knowledge base deleted\",\"deleteFailed\":\"Failed to delete knowledge base\",\"deleteTitle\":\"Delete Knowledge Base\",\"deleteDescription\":\"Are you sure you want to delete \\\"{name}\\\"? All documents and indexed segments will be permanently removed.\"},\"trainAgent\":{\"trainWithCount\":\"Train agent ({count})\",\"training\":\"Training…\",\"allTrained\":\"All trained\",\"neverTrained\":\"Not trained yet\",\"lastTrained\":\"Last trained {time}\",\"sizeLabel\":\"{size}\",\"trainStarted\":\"Training started on {count, plural, one {# source} other {# sources}}\",\"nothingToTrain\":\"Nothing to train — everything is up to date.\",\"trainFailed\":\"Couldn't start training. Please try again.\"},\"documentTable\":{\"groupLinks\":\"Links\",\"groupNotion\":\"Notion\",\"groupFiles\":\"Files\",\"addUrl\":\"Add URL\",\"syncNotion\":\"Sync Notion\",\"upload\":\"Upload\",\"statusReady\":\"Trained\",\"statusProcessing\":\"Training…\",\"statusPending\":\"Not trained yet\",\"statusError\":\"Error\",\"searchPlaceholder\":\"Search documents...\",\"groupSummaryDocs\":\"{count, plural, one {# doc} other {# docs}}\",\"groupSummaryWords\":\"{count, plural, one {# word} other {# words}}\",\"groupSummaryChunks\":\"{count, plural, one {# chunk} other {# chunks}}\",\"emptyGroup\":\"No {label} yet.\",\"columnFilename\":\"Filename\",\"columnSource\":\"Source\",\"columnWords\":\"Words\",\"columnChunks\":\"Chunks\",\"columnStatus\":\"Status\",\"columnLastUpdated\":\"Last updated\",\"openFileFailed\":\"Failed to open file\",\"sourceUrl\":\"URL\",\"sourceCrawl\":\"Crawl\",\"sourceNotion\":\"Notion\",\"sourceUpload\":\"Upload\",\"emptyBadge\":\"Empty\",\"emptyBadgeTitle\":\"Indexed with no extractable content — likely a JS-rendered page or empty file\",\"thinBadge\":\"Thin\",\"thinBadgeTitle\":\"Only {count} words extracted — may not give useful answers\",\"actionsAria\":\"Document actions\",\"rescrape\":\"Re-scrape\",\"remove\":\"Remove\",\"removed\":\"Document removed\",\"removeFailed\":\"Failed to remove document\",\"rescrapeStarted\":\"Re-scrape started\",\"rescrapeFailed\":\"Failed to re-scrape\",\"removeTitle\":\"Remove Document\",\"removeDescription\":\"Are you sure you want to remove \\\"{filename}\\\"? All indexed segments for this document will be permanently deleted.\"},\"documentInspector\":{\"badgeEmpty\":\"Empty\",\"badgeThin\":\"Thin content\",\"words\":\"Words\",\"chunks\":\"Chunks\",\"added\":\"Added\",\"lastUpdated\":\"Last updated\",\"emptyWarning\":\"This document has no extractable content. The chat agent cannot answer questions from it. Likely causes: JS-rendered page (now fixed by Browserless retry on re-crawl), 404 redirect, or login wall.\",\"thinWarning\":\"Only {count} words extracted. Retrieval may not return useful answers from this page. C
1onsider re-crawling if the page has since become content-rich.\",\"source\":\"Source\",\"indexingErrorTitle\":\"Indexing error\",\"indexedChunks\":\"Indexed chunks\",\"indexedChunksCount\":\"({count})\",\"noChunks\":\"No chunks indexed yet.\",\"processingHint\":\"Processing — chunks will appear when ready.\",\"chunkLabel\":\"Chunk #{position}\",\"tokens\":\"{count} tokens\",\"loading\":\"Loading…\",\"loadMore\":\"Load more ({count} remaining)\",\"sourceUrl\":\"URL\",\"sourceCrawl\":\"Crawl\",\"sourceNotion\":\"Notion\",\"sourceUpload\":\"Upload\"},\"uploadDialog\":{\"title\":\"Upload Files\",\"description\":\"Upload PDF, TXT, Markdown, CSV, or DOCX files.\",\"dropHere\":\"Drag and drop files here\",\"or\":\"or\",\"browse\":\"Browse Files\",\"uploadingProgress\":\"Uploading {loaded} of {total} ({percent}%)...\",\"cancel\":\"Cancel\",\"uploading\":\"Uploading...\",\"uploadFiles\":\"{count, plural, =0 {Upload Files} one {Upload # File} other {Upload # Files}}\",\"sizeLimit\":\"{name} exceeds the size limit on your plan\",\"uploadedSummary\":\"{count, plural, one {# file uploaded} other {# files uploaded}}\",\"replaced\":\"{name} replaced — re-indexing…\",\"addedNew\":\"{name} added as new version\",\"skipped\":\"{name} skipped\",\"failed\":\"Failed to upload {name}: {error}\",\"uploadFailed\":\"Failed to upload files: {error}\",\"unknownError\":\"Unknown error\",\"payloadTooLarge\":\"File is too large for the upload server. Try a smaller file or contact support.\",\"upgradeAction\":\"Upgrade\",\"workspaceKbFullToast\":\"Knowledge base is full ({used} / {limit} used). Upgrade or delete documents.\",\"formatSizeLimit\":\"{name} is too large for its file type — max {limitMb} MB\",\"limitsTitle\":\"Per-file limits on your plan:\",\"limitPdf\":\"PDF — up to {mb} MB\",\"limitDocx\":\"DOCX — up to {mb} MB\",\"limitText\":\"TXT, MD, CSV — up to {mb} MB (indexed byte-for-byte)\",\"limitFreeAll\":\"1 MB per file (any format)\",\"upgradeForMore\":\"Upgrade for up to 100 MB per file →\"},\"kbStorageBar\":{\"label\":\"Knowledge base storage\",\"usage\":\"{used} / {limit} used\",\"urlsLabel\":\"Knowledge base sources\",\"urlsUsage\":\"{used} / {limit} URLs\",\"overLimitBadge\":\"Over plan limit\"},\"downgradeGraceBanner\":{\"message\":\"Your previous {previousPlan} plan ended. Your knowledge base ({usedMb} MB) exceeds the Free limit ({capMb} MB). You have {days, plural, one {# day} other {# days}} to upgrade — after that, your over-limit content will be archived. Existing knowledge stays searchable until then.\",\"previousPlanFallback\":\"paid\",\"upgrade\":\"Upgrade\"},\"addUrlSourceDialog\":{\"titleSelecting\":\"Select pages to index\",\"titleCrawling\":\"Discovering pages…\",\"titleIndexing\":\"Indexing…\",\"titleInput\":\"Add URL\",\"descriptionSelecting\":\"Found {total} pages on {domain}.\",\"descriptionIndexing\":\"Indexing selected pages…\",\"descriptionInput\":\"Pull content into this knowledge base from a single page, an entire site, or a sitemap.\",\"tabSitemap\":\"Sitemap\",\"tabSingle\":\"Single page\",\"tabCrawl\":\"Crawl site\",\"pageUrlLabel\":\"Page URL\",\"invalidUrl\":\"Please enter a valid URL starting with http:// or https://\",\"singleHelp\":\"Adds the content of one page to this knowledge base.\",\"cancel\":\"Cancel\",\"adding\":\"Adding…\",\"addUrl\":\"Add URL\",\"siteUrlLabel\":\"Site URL\",\"pagesPerCrawlTitle\":\"Pages discovered per crawl\",\"pagesPerCrawlTiers\":\"Free 10 · Starter 50 · Growth 500 · Pro unlimited\",\"sitemapFallback\":\"We auto-detect {filename} and fall back to recursive link-following.\",\"starting\":\"Starting…\",\"startCrawl\":\"Start crawl\",\"sitemapUrlLabel\":\"Sitemap URL\",\"invalidSitemapUrl\":\"Please enter a valid sitemap URL starting with http:// or https://\",\"sitemapHelp\":\"Imports only pages listed in the sitemap. Skips robots.txt discovery and link-following. Page-tier limits still apply.\",\"importSitemap\":\"Import sitemap\",\"startingCrawl\":\"Starting crawl...\",\"crawling\":\"Crawling...\",\"progressLabel\":\"{status} ({percent}%)\",\"scrapingStarted\":\"URL scraping started\",\"scrapeFailed\":\"Failed to scrape URL\",\"crawlFailed\":\"Crawl failed\",\"crawlStartFailed\":\"Failed to start crawl\",\"sitemapStartFailed\":\"Failed to start sitemap import\",\"pagesIndexed\":\"Pages indexed successfully\"},\"customNotes\":{\"sectionTitle\":\"Custom Notes\",\"summary\":\"{count, plural, =0 {No notes} one {# note} other {# notes}}\",\"addNote\":\"Add note\",\"empty\":\"No custom notes yet — click Add note to create one.\",\"newNoteHeading\":\"New note\",\"editNoteHeading\":\"Edit note\",\"titleLabel\":\"Title\",\"titlePlaceholder\":\"Refund policy\",\"contentLabel\":\"Content\",\"contentPlaceholder\":\"Paste any free-text knowledge here — refund terms, internal FAQ entries, custom notes the agent should know.\",\"helpText\":\"Plain text only. Chunked and indexed like any other source.\",\"tooLong\":\"Too long — split into multiple notes (limit {limit} characters).\",\"save\":\"Save\",\"saving\":\"Saving…\",\"saved\":\"Saved\",\"savedReindexing\":\"Saved — reindexing now\",\"addedReindexing\":\"Note added — indexing now\",\"saveFailed\":\"Failed to save\",\"cancel\":\"Cancel\",\"edit\":\"Edit\",\"delete\":\"Delete\",\"deleteConfirmTitle\":\"Delete this note?\",\"deleteConfirmBody\":\"{title} will be removed from this knowledge base.\",\"deleteConfirm\":\"Delete\",\"deleted\":\"Note deleted\",\"deleteFailed\":\"Failed to delete\",\"reindexing\":\"Reindexing\",\"errored\":\"Error\",\"untitled\":\"(Untitled)\",\"meta\":\"{words} words · {chunks} chunks\"},\"crawlPageSelector\":{\"statusSuccess\":\"Success\",\"statusError\":\"Error\",\"statusRobots\":\"Robots\",\"statusDuplicate\":\"Duplicate\",\"tierBanner\":\"Found {found} pages on this site. Your current plan indexes up to {cap} — the first {cap} are shown below.\",\"upgrade\":\"Upgrade\",\"upgradeSuffix\":\"to index all {found} pages.\",\"budgetRemaining\":\"{remaining} URL sources left on your plan — {selected} selected.\",\"budgetExhausted\":\"You've used your plan's URL allowance. Deselect existing rows or upgrade to add more.\",\"selectNew\":\"Select New ({count})\",\"deselectAll\":\"Deselect All\",\"filterAll\":\"All\",\"filterSuccess\":\"Success\",\"filterError\":\"Error\",\"filterSkipped\":\"Skipped\",\"columnPage\":\"Page\",\"columnWords\":\"Words\",\"columnStatus\":\"Status\",\"selectAria\":\"Select {label}\",\"noTitle\":\"(No title)\",\"alreadyIndexed\":\"Already indexed in this knowledge base\",\"thinContentTitle\":\"Pages with under 50 words rarely produce useful answers — most likely a JS-rendered page the static crawler can't read.\",\"thinContent\":\"Thin content ({count} words) — may not index usefully\",\"indexedLabel\":\"Indexed\",\"indexedLabelTitle\":\"Already in this knowledge base\",\"noPagesFilter\":\"No pages found with this filter.\",\"selectionSummary\":\"{selected} of {total} new pages selected\",\"alreadyIndexedSummary\":\"· {count} already indexed\",\"cancel\":\"Cancel\",\"indexing\":\"Indexing...\",\"indexPages\":\"{count, plural, one {Index # Page} other {Index # Pages}}\",\"startFailed\":\"Failed to start indexing\"},\"notionPickerDialog\":{\"title\":\"Pick Notion pages to sync\",\"description\":\"We'll import the content of each selected page into this knowledge base. Re-syncs update changed pages in place.\",\"connectedTo\":\"Connected to\",\"notionFallback\":\"Notion\",\"planTier\":\"· Plan tier {tier} · up to {limit} pages per knowledge base.\",\"unlimited\":\"unlimited\",\"shareHint\":\"If a page isn't listed, share it with the ChatOtter integration in Notion → page menu → {connections}.\",\"connectionsKeyword\":\"Connections\",\"selectionSummary\":\"{selected} of {total} new selected\",\"alreadySyncedSummary\":\"· {count} already synced\",\"selectNew\":\"Select new ({count})\",\"deselectAll\":\"Deselect all\",\"loadFailed\":\"Failed to load Notion pages. Reconnect Notion and try again.\",\"emptyList\":\"No pages visible to the ChatOtter integration. Share at least one page in Notion to get started.\",\"syncedBadge\":\"Synced\",\"cancel\":\"Cancel\",\"startingSync\":\"Starting sync…\",\"syncPages\":\"{count, plural, =0 {Sync pages} one {Sync # page} other {Sync # pages}}\",\"synced\":\"{count, plural, one {Syncing # page from Notion…} other {Syncing # pages from Notion…}}\",\"syncFailed\":\"Failed to start Notion sync\"},\"createDatasetDialog\":{\"title\":\"Create Knowledge Base\",\"description\":\"Create a new knowledge base to organize your documents and URLs.\",\"nameLabel\":\"Name\",\"namePlaceholder\":\"e.g., Product Documentation\",\"descriptionLabel\":\"Description\",\"optional\":\"(optional)\",\"descriptionPlaceholder\":\"What kind of content will this knowledge base contain?\",\"cancel\":\"Cancel\",\"creating\":\"Creating...\",\"create\":\"Create\",\"created\":\"Knowledge base created\",\"createFailed\":\"Failed to create knowledge base\"},\"duplicateUploadDialog\":{\"title\":\"Document already in Knowledge Base\",\"previously\":\"previously\",\"matchContent\":\"an identical file\",\"matchName\":\"a file with the same name\",\"body\":\"{filename} matches {match} uploaded {uploaded} ({count, plural, one {# segment} other {# segments}}). Replace the existing document or keep both versions?\",\"cancel\":\"Cancel\",\"keepBoth\":\"Keep both\",\"replacing\":\"Replacing…\",\"replace\":\"Replace\"},\"deleteConfirmDialog\":{\"cancel\":\"Cancel\",\"deleting\":\"Deleting...\",\"delete\":\"Delete\"},\"adminIssuesPanel\":{\"title\":\"Tenants with Issues\",\"errorTypeDocument\":\"Document errors\",\"errorTypeAgent\":\"Agent errors\",\"errorCount\":\"{count, plural, one {# error} other {# errors}}\"},\"adminOverviewCards\":{\"activeTenants\":\"Active Tenants\",\"ofTotalWorkspaces\":\"of {total} total workspaces\",\"sessions24h\":\"Sessions (24h)\",\"chatSessions\":\"chat sessions\",\"messages24h\":\"Messages (24h)\",\"totalMessages\":\"total messages\",\"groundingRate\":\"Grounding Rate\",\"na\":\"N/A\",\"belowTarget\":\"Below target (95%)\",\"sevenDayAverage\":\"7-day average\"},\"adminPlatformOverview\":{\"title\":\"Platform Overview\",\"subtitle\":\"Monitor workspaces, chat activity, and system health across the platform.\"},\"adminTenantTable\":{\"title\":\"Workspaces\",\"columnName\":\"Name\",\"columnPlan\":\"Plan\",\"columnAgents\":\"Agents\",\"columnCreated\":\"Created\",\"empty\":\"No workspaces found.\"},\"agentStatusBadgeV2\":{\"draft\":\"Not live\",\"active\":\"Active\",\"paused\":\"Paused\",\"deactivated\":\"Deactivated\"},\"outboundAgentControls\":{\"status\":{\"draft\":\"draft\",\"active\":\"active\",\"paused\":\"paused\",\"archived\":\"archived\"},\"statusChanged\":\"Agent {status}\",\"statusChangeFailed\":\"Status change failed\",\"activate\":\"Activate\",\"pause\":\"Pause\",\"deactivate\":\"Deactivate\"},\"outboundIcpForm\":{\"saved\":\"ICP criteria saved\",\"saveFailed\":\"Failed to save ICP\",\"metricsNotice\":\"ChatOtter stores execution metrics only — lead data remains in your connected tools. No PII is persisted.\",\"titles\":{\"label\":\"Job Titles\",\"description\":\"Target job titles for prospecting\",\"placeholder\":\"e.g., CEO, VP Sales, Head of Marketing\"},\"keywords\":{\"label\":\"Keywords\",\"description\":\"Search keywords to find matching companies\",\"placeholder\":\"e.g., Sa
1aS, AI, automation\"},\"industry\":{\"label\":\"Industry\",\"description\":\"Target industries\",\"placeholder\":\"e.g., Software, Healthcare, Finance\"},\"companySize\":{\"title\":\"Company Size (Employees)\",\"min\":\"Min\",\"minPlaceholder\":\"e.g., 10\",\"max\":\"Max\",\"maxPlaceholder\":\"e.g., 500\"},\"geography\":{\"label\":\"Geography\",\"description\":\"Target countries and regions\",\"placeholder\":\"e.g., United States, United Kingdom, EMEA\"},\"exclusions\":{\"title\":\"Exclusion Rules\",\"description\":\"Domains, companies, and titles to exclude\",\"domainsLabel\":\"Excluded Domains\",\"domainsPlaceholder\":\"e.g., competitor.com\",\"companiesLabel\":\"Excluded Companies\",\"companiesPlaceholder\":\"e.g., Competitor Inc\",\"titlesLabel\":\"Excluded Titles\",\"titlesPlaceholder\":\"e.g., Intern, Student\"},\"validation\":\"At least one job title or keyword is required\",\"saveButton\":\"Save ICP Configuration\"},\"outboundMetricsDashboard\":{\"emptyTitle\":\"No runs yet\",\"emptyDescription\":\"Configure your pipeline and start your first run to see metrics here.\",\"metricsNotice\":\"ChatOtter stores execution metrics only — lead data remains in your connected tools. No PII is persisted.\",\"title\":\"Pipeline Metrics\",\"period\":{\"today\":\"Today\",\"7d\":\"7 days\",\"30d\":\"30 days\",\"90d\":\"90 days\"},\"cards\":{\"leadsFound\":\"Leads Found\",\"leadsLoaded\":\"Leads Loaded\",\"totalCost\":\"Total Cost\",\"successRate\":\"Success Rate\"},\"recentRuns\":\"Recent Runs\",\"runStatus\":{\"completed\":\"completed\",\"partial\":\"partial\",\"failed\":\"failed\",\"running\":\"running\",\"queued\":\"queued\"},\"foundCount\":\"{count} found\"},\"outboundScheduleForm\":{\"saved\":\"Schedule saved\",\"saveFailed\":\"Failed to save schedule\",\"removed\":\"Schedule removed\",\"runTriggered\":\"Run triggered\",\"runFailed\":\"Failed to start run\",\"manualRun\":{\"title\":\"Manual Run\",\"description\":\"Start a pipeline run immediately\",\"button\":\"Start Run\"},\"config\":{\"title\":\"Schedule Configuration\",\"frequency\":\"Frequency\",\"preferredTime\":\"Preferred Time\",\"activeDays\":\"Active Days\",\"cronExpression\":\"Cron Expression\",\"save\":\"Save Schedule\",\"remove\":\"Remove\"},\"frequency\":{\"daily\":\"Daily\",\"weekly\":\"Weekly\",\"custom\":\"Custom (cron)\"},\"days\":{\"mon\":\"Mon\",\"tue\":\"Tue\",\"wed\":\"Wed\",\"thu\":\"Thu\",\"fri\":\"Fri\",\"sat\":\"Sat\",\"sun\":\"Sun\"}},\"outboundSequenceEditor\":{\"saved\":\"Pipeline sequence saved\",\"saveFailed\":\"Failed to save\",\"title\":\"Pipeline Sequence\",\"description\":\"Enable or disable steps in the outbound pipeline. Order is fixed.\",\"saving\":\"Saving...\",\"save\":\"Save\",\"noTool\":\"No tool\"},\"outboundToolConnections\":{\"title\":\"Tool Connections\",\"description\":\"Connect your outbound sales tools. Credentials are encrypted at rest.\",\"connected\":\"Tool connected\",\"connectionFailed\":\"Connection failed\",\"disconnected\":\"Tool disconnected\",\"connectionHealthy\":\"Connection healthy\",\"connectionIssue\":\"Connection issue\",\"statusConnected\":\"Connected\",\"statusNotConnected\":\"Not connected\",\"test\":\"Test\",\"disconnect\":\"Disconnect\",\"apiKeyLabel\":\"{name} API Key\",\"apiKeyPlaceholder\":\"Enter API key...\",\"connect\":\"Connect\",\"cancel\":\"Cancel\"},\"customOpenapiDialog\":{\"headers\":{\"previewTitle\":\"Review detected tools\",\"editTitle\":\"Edit REST API integration\",\"createTitle\":\"Wrap a REST API as MCP tools\",\"previewDescription\":\"Detected {count} endpoints. Uncheck anything you don't want to expose.\",\"editDescription\":\"Update the name, base URL, or credentials. Replace the spec to change which endpoints your agent can call.\",\"createDescription\":\"Point us at your tool's OpenAPI spec. We'll turn every endpoint into a tool your agent can call.\"},\"fields\":{\"nameLabel\":\"Integration name\",\"namePlaceholder\":\"e.g. Our invoicing API\",\"baseUrlLabel\":\"API base URL\",\"baseUrlHint\":\"Where your agent will send requests. Usually shown at the top of the API docs.\",\"specLabel\":\"OpenAPI spec\"},\"actions\":{\"replaceSpec\":\"Replace spec\",\"keepCurrentSpec\":\"Keep current spec\"},\"edit\":{\"keepingSpec\":\"Keeping the current spec. Click \u003cb\u003eReplace spec\u003c/b\u003e above to change the endpoints your agent can call.\"},\"inputModes\":{\"url\":\"Paste URL\",\"upload\":\"Upload file\",\"paste\":\"Paste content\"},\"demo\":{\"name\":\"Petstore (demo)\",\"intro\":\"Don't have one handy?\",\"tryButton\":\"Try with demo API\"},\"upload\":{\"replace\":\"Replace uploaded file\",\"choose\":\"Choose a .json or .yaml file\",\"loaded\":\"Loaded {chars} characters ({format})\"},\"paste\":{\"formatLabel\":\"Format\",\"placeholder\":\"Paste the full spec content here.\"},\"auth\":{\"label\":\"Authentication\",\"changeCredentials\":\"Change credentials\",\"usingStored\":\"Using stored credentials. Leave as-is or change them above.\",\"none\":\"None\",\"bearer\":\"Bearer token\",\"apiKey\":\"API key header\",\"basic\":\"Basic auth\",\"tokenLabel\":\"Token\",\"headerLabel\":\"Header\",\"apiKeyLabel\":\"API key\",\"usernameLabel\":\"Username\",\"passwordLabel\":\"Password\"},\"guide\":{\"heading\":\"How do I find my OpenAPI spec?\",\"step1\":\"\u003cb\u003eCheck your tool's developer docs.\u003c/b\u003e Look for links named \u003ci\u003eOpenAPI\u003c/i\u003e, \u003ci\u003eSwagger\u003c/i\u003e, or \u003ci\u003eAPI Reference\u003c/i\u003e. Most B2B SaaS tools publish one.\",\"step2Intro\":\"\u003cb\u003eTry a common URL pattern\u003c/b\u003e (paste in the URL box above):\",\"step3\":\"\u003cb\u003eAsk the vendor's support:\u003c/b\u003e \u003ci\u003e\\\"Do you publish an OpenAPI 3.x spec for your API?\\\"\u003c/i\u003e\",\"step4\":\"\u003cb\u003eStill stuck?\u003c/b\u003e Public registry at \u003clink\u003eAPIs.guru\u003c/link\u003e has 3000+ pre-made specs. Or ask us to add the tool to our catalog.\",\"minimalHeading\":\"What does a minimal spec look like?\"},\"errors\":{\"pasteEmpty\":\"Paste your OpenAPI spec content below.\",\"urlEmpty\":\"Paste a URL to your OpenAPI spec.\",\"couldNotFetch\":\"Could not fetch the URL\",\"fileEmpty\":\"Choose a file above to upload first.\",\"nameUrlRequired\":\"Integration name and base URL are required.\",\"saveFailed\":\"Save failed\",\"fileReadFailed\":\"Could not read the file.\",\"parseFailed\":\"Failed to parse OpenAPI spec\",\"noEndpoints\":\"No endpoints detected in the spec.\",\"saveWrapperFailed\":\"Failed to save wrapper\",\"selectAtLeastOne\":\"Select at least one tool to wrap.\"},\"parseErrors\":{\"empty\":\"Paste or upload your OpenAPI spec first.\",\"looksLikeUrl\":\"That looks like a URL — switch to 'Paste URL' above and we'll fetch it for you.\",\"notASpec\":\"This doesn't look like a spec. Your spec should start with `{` (JSON) or contain `openapi:` near the top (YAML). See the guide below.\",\"invali
1dJson\":\"Couldn't parse as JSON. {rawMessage}. If your spec is YAML, switch the 'Format' dropdown to YAML.\",\"swagger20\":\"This is Swagger 2.0. We currently support OpenAPI 3.x only — you can convert it at https://editor.swagger.io (File → Convert to OpenAPI 3).\",\"missingOpenapi\":\"Valid JSON, but it's missing an `openapi` field. Is this actually an OpenAPI spec?\"},\"fetchErrors\":{\"notFound\":\"URL returned 404 — that link doesn't exist. Double-check the URL.\",\"authRequired\":\"URL requires authentication. Download the spec file and upload it instead.\",\"timeout\":\"URL took too long to respond. Try downloading the file and uploading it.\",\"private\":\"That URL looks like an internal / private address — we only fetch from public URLs.\"},\"toasts\":{\"savedChanges\":\"Saved changes to \\\"{name}\\\"\",\"wrapped\":\"{count, plural, one {Wrapped # tool from {name}} other {Wrapped # tools from {name}}}\"},\"preview\":{\"warningsTitle\":\"{count, plural, one {# warning during parsing} other {# warnings during parsing}}\",\"andMore\":\"... and {count} more\"},\"footer\":{\"save\":\"Save\",\"testConnection\":\"Test Connection\",\"back\":\"Back\",\"saveTools\":\"{count, plural, one {Save # tool} other {Save # tools}}\"}},\"visualBuilder\":{\"canvas\":{\"saveWorkflow\":\"Save Workflow\",\"selectedNode\":\"Selected: {nodeId}\",\"saveSuccess\":\"Workflow saved\",\"saveError\":\"Couldn't save the workflow. Please try again.\"},\"palette\":{\"title\":\"Node Types\",\"nodes\":{\"llmLabel\":\"LLM\",\"llmDescription\":\"Call a language model\",\"toolCallLabel\":\"Tool Call\",\"toolCallDescription\":\"Invoke an MCP tool\",\"conditionLabel\":\"Condition\",\"conditionDescription\":\"Branch based on a condition\",\"inputLabel\":\"Input\",\"inputDescription\":\"Workflow input variable\",\"outputLabel\":\"Output\",\"outputDescription\":\"Workflow output\"}},\"configPanel\":{\"selectNode\":\"Select a node to configure\",\"heading\":\"{type} Configuration\",\"outputDescription\":\"Output node captures workflow results.\",\"llm\":{\"model\":\"Model\",\"systemPrompt\":\"System Prompt\",\"systemPromptPlaceholder\":\"You are a helpful assistant...\",\"temperature\":\"Temperature: {value}\"},\"toolCall\":{\"toolName\":\"Tool Name\",\"toolNamePlaceholder\":\"e.g., hubspot_create_contact\"},\"condition\":{\"field\":\"Field\",\"operator\":\"Operator\",\"value\":\"Value\",\"operatorEquals\":\"Equals\",\"operatorNotEquals\":\"Not Equals\",\"operatorGreaterThan\":\"Greater Than\",\"operatorLessThan\":\"Less Than\",\"operatorContains\":\"Contains\"},\"input\":{\"variableName\":\"Variable Name\",\"type\":\"Type\",\"typeString\":\"String\",\"typeNumber\":\"Number\",\"typeObject\":\"Object\",\"typeArray\":\"Array\"}},\"debugDrawer\":{\"title\":\"Debug: {nodeType}\",\"running\":\"Running...\",\"success\":\"Success\",\"error\":\"Error\",\"close\":\"Close\",\"inputLabel\":\"Input\",\"outputLabel\":\"Output\",\"run\":\"Run\",\"tokens\":\"{count} tokens\",\"ms\":\"{value}ms\",\"cost\":\"$${value}\",\"noOutput\":\"Run a test to see output\"},\"nodes\":{\"llm\":{\"title\":\"LLM\",\"selectModel\":\"Select model\"},\"toolCall\":{\"title\":\"Tool Call\",\"selectTool\":\"Select tool\",\"requireApproval\":\"Require team approval\",\"customerConfirm\":\"Confirm with customer\"},\"condition\":{\"title\":\"Condition\",\"configure\":\"Configure condition\",\"summary\":\"{field} {operator} {value}\"},\"input\":{\"title\":\"Input\",\"defaultName\":\"input\",\"defaultType\":\"string\",\"summary\":\"{name}: {type}\"},\"output\":{\"title\":\"Output\",\"description\":\"Workflow output\"}}},\"common\":{\"comingSoon\":\"Coming soon\",\"comingSoonDescription\":\"We're putting the finishing touches on this. Check back soon.\"},\"viewerDisabled\":{\"defaultMessage\":\"Viewer role — contact an Owner for write access\"},\"settingsProfile\":{\"emailTitle\":\"Email\",\"emailDescription\":\"Sign-in email for this account. \u003csecurityLink\u003eChange in Security\u003c/securityLink\u003e.\"},\"accountDeletion\":{\"scheduledTitle\":\"Account Scheduled for Deletion\",\"scheduledDescription\":\"All data will be permanently deleted on {date}. Agents have been paused.\",\"scheduledIn30Days\":\"30 days from now\",\"cancelDeleti
1on\":\"Cancel Deletion\",\"deleteTitle\":\"Delete Account Data\",\"deleteDescription\":\"Permanently delete all platform data: agents, leads, API keys, agent configs, and execution history. Data will be removed after a 30-day cancellation window.\",\"deleteButton\":\"Delete Account Data\",\"confirmTitle\":\"Are you sure?\",\"confirmDescription\":\"This will schedule all data for permanent deletion in 30 days. Active agents will be paused immediately. Type \u003cname\u003e{name}\u003c/name\u003e to confirm.\",\"confirmPlaceholder\":\"Type \\\"{name}\\\" to confirm\",\"cancel\":\"Cancel\",\"deleteAll\":\"Delete All Data\",\"failedDeletion\":\"Failed to request deletion\",\"failedCancel\":\"Failed to cancel deletion\",\"unknownError\":\"Unknown error\"},\"myAgentsNav\":{\"heading\":\"My Agents\",\"tooltip\":\"{name} ({status})\",\"statusLabel\":\"status: {status}\"},\"agentSwitcher\":{\"triggerAriaLabel\":\"Switch agent (current: {name})\",\"listHeading\":\"Switch agent\",\"statusLabel\":\"status: {status}\",\"statusActive\":\"Agent is active\",\"statusPaused\":\"Agent is paused\",\"statusDraft\":\"Agent is a draft\",\"statusDeactivated\":\"Agent is deactivated\",\"untitled\":\"Select agent\",\"manageAgents\":\"Manage agents\"},\"agentRedirect\":{\"loading\":\"Loading agent\",\"redirecting\":\"Redirecting\"},\"impersonation\":{\"viewingAs\":\"Viewing as:\",\"readOnly\":\"Read-only mode\",\"exit\":\"Exit Impersonation\",\"defaultClient\":\"client\"},\"upgradeBanner\":{\"managedPlan\":\"Managed (Pro)\",\"agencyPlan\":\"Agency\",\"trialPromptLong\":\"Start your 14-day free trial — cancel anytime\",\"trialPromptShort\":\"14-day free trial\",\"trialEndedLong\":\"Your trial ended on {date}. Pick a plan to keep your agent live.\",\"trialEndedShort\":\"Trial ended {date}\",\"trialLabel\":\"Trial\",\"trialLabelWithPlan\":\"{plan} Trial\",\"trialDaysLeft\":\"{count, plural, one {— # day left} other {— # days left}}\",\"currentPlan\":\"Current plan:\",\"startTrial\":\"Start Trial\",\"pickPlan\":\"Pick a plan\",\"addPayment\":\"Add payment method\",\"manageSubscription\":\"Manage subscription\",\"changePlan\":\"Change plan\",\"contactUs\":\"Contact us\",\"agencyClients\":\"{count} clients\"},\"capacityBanner\":{\"warning\":\"Heads up — you've used {current} of {limit} chat sessions this cycle (80%+). Upgrade to avoid interruption.\",\"critical\":\"Critical — {current} of {limit} chat sessions used this cycle (95%+). Chat will pause when you hit the cap.\",\"exceeded\":\"Cap reached — {current} / {limit} sessions used this cycle. New chats are paused until the cycle resets or you upgrade.\",\"upgrade\":\"Upgrade\",\"dismiss\":\"Dismiss\"},\"createAgentNudge\":{\"title\":\"Your AI Agent isn't live yet\",\"body\":\"You've built it — publish your agent so it answers every message instantly and qualifies conversations, even when you're offline.\",\"cta\":\"Publish agent\",\"notNow\":\"Not now\",\"dismiss\":\"Dismiss\"},\"workflowEngines\":{\"pageTitle\":\"Workflow Engines\",\"gate\":{\"title\":\"Workflow automations are a Pro feature\",\"description\":\"Connect n8n or Make and run multi-step automations your agent can trigger. Upgrade to unlock the workflow engine.\",\"cta\":\"Upgrade to {tier}\"},\"detailTitle\":\"Workflow Engine\",\"subtitle\":\"Connect orchestration platforms like n8n. Tool credentials live at \u003cintegrationsLink\u003e/integrations\u003c/integrationsLink\u003e.\",\"loading\":\"Loading engines…\",\"loadFailed\":\"Failed to load workflow engines: {error}\",\"noneConnected\":\"No workflow engines connected yet.\",\"connectedCount\":\"{count, plural, one {# engine connected} other {# engines connected}}\",\"addEngine\":\"Add Workflow Engine\",\"emptyTitle\":\"No workflow engines connected\",\"emptyDescription\":\"Add an n8n instance to start running multi-step automations.\",\"manage\":\"Manage\",\"apiKeyPreview\":\"API key: {preview}\",\"sheetTitleAdd\":\"Add Workflow Engine\",\"sheetTitleConnect\":\"Connect {name}\",\"sheetDescriptionPicker\":\"Choose the platform you want to connect. We'll open the engine-specific connection form next.\",\"sheetDescriptionForm\":\"Give it a memorable name and connection details. We'll probe before saving so dead-on-arrival creds never persist.\",\"comingSoonBadge\":\"Coming soon\",\"comingSoonText\":\"{name} support is coming soon.\",\"chooseDifferentEngine\":\"Choose a different engine\",\"options\":{\"n8nTagline\":\"Self-hosted or cloud — connect with instance URL + API key\",\"makeTagline\":\"Hosted automation platform (formerly Integromat)\",\"zapierTagline\":\"Trigger Zaps from your agent\",\"pipedreamTagline\":\"Developer-first event-driven workflows\"},\"form\":{\"name\":\"Name\",\"namePlaceholder\":\"Production n8n\",\"nameHelp\":\"For your own reference — e.g. \\\"Production\\\" or \\\"Staging\\\".\",\"instanceUrl\":\"Instance URL\",\"instanceUrlPlaceholder\":\"https://n8n.example.com\",\"instanceUrlHelp\":\"The base URL of your n8n instance. Paste anything from the address bar — we'll trim the path.\",\"apiKey\":\"API Key\",\"apiKeyPlaceholder\":\"n8n_api_…\",\"apiKeyHelp\":\"Generated from your n8n instance under Settings → n8n API.\",\"cancel\":\"Cancel\",\"connecting\"
1:\"Connecting…\",\"connect\":\"Connect\",\"connectedToast\":\"Engine connected\",\"connectedToastDescription\":\"{name} is reachable and saved.\",\"connectFailed\":\"Could not connect\"},\"detail\":{\"loading\":\"Loading engine…\",\"loadFailed\":\"Failed to load: {error}\",\"notFound\":\"Engine not found\",\"backToEngines\":\"Back to engines\",\"allEngines\":\"All engines\",\"reachable\":\"Reachable\",\"unreachable\":\"Unreachable\",\"tabConnection\":\"Connection\",\"tabWorkflows\":\"Workflows\",\"tabCredentials\":\"Credentials\",\"apiKeyPlaceholder\":\"Leave blank to keep current ({preview})\",\"apiKeyRotateHelp\":\"Only fill this in if you want to rotate the key.\",\"testing\":\"Testing…\",\"testConnection\":\"Test connection\",\"saving\":\"Saving…\",\"saveChanges\":\"Save changes\",\"updated\":\"Engine updated\",\"updateFailed\":\"Update failed\",\"engineReachable\":\"Engine is reachable\",\"engineUnreachable\":\"Engine is unreachable\",\"noResponse\":\"No response from the engine\",\"testFailed\":\"Test failed\",\"workflowsLoading\":\"Loading workflows…\",\"workflowsLoadFailed\":\"Failed to load workflows: {error}\",\"noWorkflows\":\"No workflows on this engine yet.\",\"noWorkflowsMatch\":\"No workflows match this filter.\",\"workflowActive\":\"active\",\"workflowInactive\":\"inactive\",\"filterAll\":\"All\",\"filterActive\":\"Active\",\"filterInactive\":\"Inactive\",\"searchWorkflows\":\"Search workflows…\",\"workflowsCount\":\"{shown} of {total}\",\"exposeToAgents\":\"Expose to agents\",\"exposedBadge\":\"Exposed\",\"exposeDialogTitle\":\"Expose {workflowName} to agents\",\"exposeDialogDescription\":\"Register this workflow as a tool the chat agent can call. The LLM picks tools by description — be specific about when it should fire.\",\"exposeCallableNameLabel\":\"Callable name\",\"exposeCallableNameHelp\":\"Lowercase, snake_case. The LLM sees this name.\",\"exposeDescriptionLabel\":\"Description for the LLM\",\"exposeDescriptionHelp\":\"What this tool does and when to use it. Write like an instruction to a junior developer.\",\"exposeDescriptionPlaceholder\":\"Send an outreach email when the user wants to email a prospect. Required: email and subject.\",\"exposeInputSchemaLabel\":\"Input schema (JSON)\",\"exposeInputSchemaHelp\":\"Empty object = no parameters. Otherwise paste a JSON Schema describing the workflow's expected inputs.\",\"exposeSubmit\":\"Expose\",\"exposeSubmitting\":\"Saving…\",\"exposeRemove\":\"Remove from agents\",\"exposeSaved\":\"Workflow exposed to agents\",\"exposeSavedDisabled\":\"Workflow exposed (not enabled yet)\",\"exposeSavedDisabledHint\":\"Turn it on per agent in Chat Agent → Tools.\",\"manageExposure\":\"Manage exposure\",\"exposeRemoved\":\"Workflow no longer exposed\",\"exposeFailed\":\"Failed to update: {error}\",\"exposeInvalidSchema\":\"Input schema must be valid JSON\",\"exposeFormatJson\":\"Format JSON\",\"exposePrefillFromDetected\":\"Use detected fields\",\"workflowDetailsHeading\":\"Workflow\",\"workflowDetailsLoading\":\"Loading workflow details…\",\"workflowDetailsLoadFailed\":\"Couldn't load workflow details: {error}\",\"workflowDetailsRetry\":\"Retry\",\"workflowDetailsTestUrlHint\":\"Test URL only responds after you click ‘Execute workflow’ in the n8n editor.\",\"workflowDetailsProductionUrl\":\"Production webhook URL\",\"workflowDetailsTestUrl\":\"Test webhook URL (n8n editor)\",\"workflowDetailsAuthType\":\"Requires {authType} on incoming requests.\",\"workflowDetailsNoWebhook\":\"This workflow has no Webhook trigger, so the agent can't pass arguments into it. Add a Webhook node in n8n to expose it.\",\"exposeRequiresWebhook\":\"Only workflows with a Webhook trigger can be exposed.\",\"workflowDetailsDetectedInputs\":\"Detected input references\",\"workflowDetailsDetectedInputsHelp\":\"Found in downstream node expressions. Use ‘Use detected fields’ to prefill the input schema.\",\"workflowDetailsCopy\":\"Copy URL\",\"workflowDetailsCopyFailed\":\"Couldn't copy to clipboard\",\"workflowDetailsOpenExternal\":\"Open in new tab\",\"triggerType\":{\"webhook\":\"Webhook\",\"form\":\"Form\",\"manual\":\"Manual\",\"execute\":\"Execute Workflow\",\"chat\":\"Chat\",\"other\":\"Other\"},\"credentialsLoading\":\"Loading credentials…\",\"credentialsLoadFailed\":\"Failed to load credentials: {error}\",\"noCredentialsMatch\":\"No credentials match this filter.\",\"noCredentialsEngine\":\"No credentials cached for this engine yet. The scheduled sync runs weekly — pull them now to populate the list.\",\"platformAll\":\"All platforms\",\"searchCredentials\":\"Search credentials…\",\"credentialsCount\":\"{shown} of {total}\",\"credentialsSyncNow\":\"Sync now\",\"credentialsSyncing\":\"Syncing…\",\"credentialsSyncedToast\":\"Synced {count} credentials\",\"credentialsSyncFailed\":\"Credential sync failed\",\"credentialSyncedAgo\":\"Synced {when}\",\"credentialOpenInN8n\":\"Open in n8n\",\"noCredentials\":\"No credentials cached for this engine yet. Connect tools at \u003cintegrationsLink\u003e/integrations\u003c/integrationsLink\u003e and they'll appear here once a sync runs.\",\"legacyCredsNotice\":\"Showing org-wide cached credentials. Per-engine scoping fills in after the next credential sync.\",\"delete\":\"Delete\",\"deleteConfirmPrompt\":\"Delete \\\"{name}\\\"?\",\"cancel\":\"Cancel\",\"confirm\":\"Confirm\",\"deleted\":\"Engine deleted\",\"deleteFailed\":\"Delete failed\",\"disconnect\":\"Disconnect\",\"reconnect\":\"Reconnect\",\"disconnected\":\"Engine paused\",\"reconnected\":\"Engine reactivated\",\"disconnectFailed\":\"Failed to pause engine\",\"reconnectFailed\":\"Failed to reactivate engine\",\"pausedBadge\":\"Paused\",\"pausedBanner\":\"This engine is paused. Reconnect to expose or manage workflows.\",\"disconnectDialogTitle\":\"Disconnect \\\"{name}\\\"?\",\"disconnectDialogBody\":\"The engine will be paused: credentials stay stored and you can reactivate at any time. Exposed workflows from this engine will stop being callable by the chat agent until you reconnect. Legacy exposures created before this update may still flow through — run the backfill script once if you have any.\",\"disconnectDialogConfirm\":\"Disconnect\",\"disconnectDialogCancel\":\"Cancel\"},\"deleteDialog\":{\"title\":\"Delete connection \\\"{name}\\\"?\",\"warningIntro\":\"Deleting this connection will:\",\"warningConsequence1\":\"Remove the stored API key and instance URL.\",\"warningConsequence2\":\"Disconnect any agent tools that were exposing workflows from this engine.\",\"warningConsequence3\":\"Stop credential cache syncs for this engine — listed credentials will disappear from the UI.\",\"warningIrreversible\":\"This action cannot be undone.\",\"typeNameLabel\":\"To continue, type the connection name: {name}\",\"typeKeywordLabel\":\"Now type {keyword} to confirm\",\"cancel\":\"Cancel\",\"confirm\":\"Delete connection\",\"deleting\":\"Deleting…\"},\"unexposeDialog\":{\"title\":\"Remove \\\"{name}\\\" from agents?\",\"warning\":\"Agents will lose access to this workflow tool. The callable name, description, and input schema are deleted. You can re-ex
1pose later but will need to re-enter them.\",\"typeNameLabel\":\"To confirm, type the callable name: {name}\",\"cancel\":\"Cancel\",\"confirm\":\"Remove from agents\",\"removing\":\"Removing…\"}},\"csInbox\":{\"pageTitle\":\"Inbox\",\"subtitle\":\"Conversations handed off to a person, across your agents.\",\"unreadAriaLabel\":\"Unread handoffs: {count}\",\"agentFilter\":{\"label\":\"Agent\",\"all\":\"All agents\"},\"lanes\":{\"needsYou\":\"Needs you\",\"waiting\":\"Waiting on visitor\",\"done\":\"Done\"},\"assigneeFilter\":{\"all\":\"All assignees\",\"mine\":\"Mine\",\"unassigned\":\"Unassigned\"},\"back\":\"Back\",\"emptyLane\":\"Nothing here right now.\",\"searchPlaceholder\":\"Search conversations\",\"searchEmpty\":\"No matches.\",\"selectConversation\":\"Select a conversation to view it here.\",\"contactPanel\":{\"unknown\":\"Unknown visitor\",\"email\":\"Email\",\"phone\":\"Phone\",\"company\":\"Company\",\"lifecycle\":\"Lifecycle\",\"tags\":\"Tags\",\"aiSummary\":\"AI summary\",\"viewProfile\":\"View full profile\",\"none\":\"—\",\"copy\":\"Copy\",\"stageUpdateFailed\":\"Couldn't update the stage.\",\"loading\":\"Looking up contact…\"}},\"guardrails\":{\"needsApproval\":\"Needs team approval\",\"beta\":\"Beta\",\"retry\":\"Try again\",\"settingsTitle\":\"Guardrails\",\"settingsDescription\":\"Decide which agent actions need a human's OK before they run.\",\"masterToggle\":\"Require team approval for risky tools\",\"masterToggleHint\":\"When on, risky tools pause for a teammate to sign off. Per-tool settings still apply.\",\"customerConfirm\":\"Confirm with customer\",\"customerConfirmHint\":\"For the customer path, the agent asks the visitor to confirm before running — while your team signs off, they see the wait message below.\",\"policyTitle\":\"Risk policy\",\"policyHint\":\"Plain-language rules that guide what gets flagged. Your per-tool toggles always win.\",\"policyPlaceholder\":\"e.g. Always require approval for anything that refunds money or messages a customer.\",\"floorsTitle\":\"Always require approval for…\",\"floorsHint\":\"These force approval regardless of the risk score, and lock the tool on.\",\"floors\":{\"money\":\"Money\",\"messaging\":\"Messaging\",\"dataExposure\":\"Data exposure\",\"stateMutation\":\"State changes\",\"accessControl\":\"Access control\",\"arbitrary\":\"Arbitrary tools\"},\"sensitivityTitle\":\"Auto-enable sensitivity\",\"sensitivityHint\":\"How aggressively approval turns on by default.\",\"sensitivity\":{\"high_only\":\"High risk only\",\"high_and_medium\":\"High + medium risk\"},\"offlineTitle\":\"When your team is offline\",\"offlineHint\":\"How approvals reach you, and what the visitor sees while waiting.\",\"notifyChannel\":\"Notify via\",\"channel\":{\"inAppEmail\":\"In-app + Email\",\"whatsapp\":\"WhatsApp\"},\"waitMessage\":\"Message shown to the visitor while waiting\",\"waitMessagePlaceholder\":\"Our team is reviewing — they'll get back to you shortly.\",\"timeout\":\"Auto-create a ticket after\",\"timeoutHours\":\"{n}h\",\"saved\":\"Saved\",\"saveFailed\":\"Couldn't save\",\"premiumLocked\":\"The master switch and flagging individual tools for approval both work on your plan. Premium adds automatic risk detection (category rules \u0026 sensitivity), risk policy, and notifications.\",\"upgrade\":\"Upgrade to Premium\",\"empty\":\"No actions waiting for approval.\",\"loadError\":\"Couldn't load approvals.\",\"approve\":\"Approve\",\"approveWithEdits\":\"Approve with edits\",\"edit\":\"Edit\",\"cancelEdit\":\"Cancel edit\",\"reject\":\"Reject\",\"confirmReject\":\"Confirm reject\",\"rejectReasonPlaceholder\":\"Reason (optional) — the agent will explain this to the visitor\",\"approved\":\"Approved\",\"rejected\":\"Rejected\",\"actionFailed\":\"Action failed\",\"invalidJson\":\"Arguments must be valid JSON\",\"notObjectJson\":\"Arguments must be a JSON object, not a list or value\",\"severity\":{\"low\":\"Low risk\",\"medium\":\"Medium risk\",\"high\":\"High risk\"}},\"escalations\":{\"bookingBadge\":\"Booking\",\"pageTitle\":\"Handoffs\",\"detailTitle\":\"Conversation details\",\"subtitle\":\"Visitors who clicked \\\"Ask a person\\\" in the widget. Replies are emailed and posted back into the chat.\",\"loading\":\"Loading escalations...\",\"emptyTitle\":\"No handoffs yet\",\"emptyDescription\":\"When a visitor clicks \\\"Ask a person\\\" in the widget, the conversation lands here.\",\"emptyAgentDescription\":\"No handoffs from this agent yet. Switch to \\\"All agents\\\" to see the rest.\",\"handoffBanner\":{\"tierLockedTitle\":\"Handoff is a Pro tier feature\",\"tierLockedBody\":\"Let visitors click \\\"Ask a person\\\" and your team gets notified to take over the conversation. Available on Pro and above.\",\"upgrade\":\"Upgrade to turn on\",\"upgradeToTier\":\"Upgrade to {tier} to turn on\",\"disabledTitle\":\"Handoff is turned off for this workspace\",\"disabledBody\":\"Visitors won't see the \\\"Ask a person\\\" button until you enable it. New conversations won't reach this inbox.\",\"enableCta\":\"Enable in Settings →\",\"checkFailedTitle\":\"Couldn't check handoff state\",\"checkFailedBody\":\"We couldn't reach the widget config service. The button may still be live for visitors — open Settings to verify.\",\"checkFailedCta\":\"Open Settings →\"},\"filters\":{\"allStatuses\":\"All statuses\",\"pending\":\"Pending\",\"replied\":\"Replied\",\"expired\":\"Expired\"},\"statusLabels\":{\"pending\":\"Pending\",\"replied\":\"Replied\",\"expired\":\"Expired\",\"abandoned\":\"Abandoned\",\"booked\":\"Booked\"},\"requestCount\":\"{count, plural, one {# request} other {# requests}}\",\"unread\":\"Unread\",\"unknownVisitor\":\"Unknown visitor\",\"relative\":{\"now\":\"now\",\"minutes\":\"{count, plural, one {# min ago} other {# min ago}}\",\"hours\":\"{count, plural, one {# hr ago} other {# hr ago}}\",\"days\":\"{count, plural, one {# day ago} other {# days ago}}\"}
1,\"columns\":{\"from\":\"From\",\"message\":\"Latest message\",\"status\":\"Status\",\"assignee\":\"Assigned to\",\"lastActivity\":\"Last activity\",\"submitted\":\"Submitted\"},\"assignment\":{\"label\":\"Assigned to\",\"unassigned\":\"Unassigned\",\"you\":\"you\",\"saveFailed\":\"Couldn't update assignment\",\"filterAll\":\"All assignees\",\"filterMine\":\"Assigned to me\",\"filterUnassigned\":\"Unassigned\"},\"resolve\":{\"filterOpen\":\"Open\",\"filterDone\":\"Done\",\"filterAll\":\"All\"},\"quickReplies\":{\"label\":\"Quick replies\",\"empty\":\"No saved replies yet.\",\"add\":\"Save reply as a template\",\"delete\":\"Delete {title}\",\"deleteConfirm\":\"Delete “{title}”? This removes it for the whole team.\",\"titlePlaceholder\":\"Label (e.g. Viewing offer)\",\"bodyPlaceholder\":\"Message text\",\"saveFailed\":\"Couldn't save. Try again.\",\"cancel\":\"Cancel\",\"save\":\"Save\"},\"open\":\"Open →\",\"detail\":{\"loading\":\"Loading...\",\"notFound\":\"Escalation not found.\",\"loadFailed\":\"Failed to load.\",\"replyFailed\":\"Failed to send reply.\",\"attachFile\":\"Attach a file\",\"removeAttachment\":\"Remove attachment\",\"uploading\":\"Uploading…\",\"attachFailed\":\"Couldn't attach the file.\",\"unsupportedType\":\"That file type can't be sent on WhatsApp.\",\"tooLargeImage\":\"Images must be under 5 MB.\",\"tooLargeDocument\":\"Files must be under 100 MB.\",\"resolve\"
1:\"Resolve\",\"reopen\":\"Reopen\",\"resolving\":\"Saving…\",\"resolvedBadge\":\"Resolved\",\"resolveFailed\":\"Couldn't update.\",\"takeOver\":\"Take over\",\"takingOver\":\"Taking over…\",\"takeOverFailed\":\"Couldn't take over.\",\"aiPaused\":\"You're handling this — the AI is paused.\",\"handBack\":\"Hand back to AI\",\"handingBack\":\"Handing back…\",\"submittedAt\":\"Submitted {date}\",\"viewInContacts\":\"View in Contacts\",\"thread\":{\"heading\":\"Conversation\",\"visitor\":\"Visitor\",\"assistant\":\"Assistant\",\"agent\":\"You\"},\"sendAnotherReply\":\"Send another reply\",\"expiredHeading\":\"This request expired\",\"expiredBody\":\"More than 7 days have passed and the visitor was sent an apology email automatically. Replies are no longer accepted.\",\"reply\":\"Reply\",\"replyPlaceholder\":\"Write your reply...\",\"sending\":\"Sending...\",\"sendReply\":\"Send reply\",\"replyHint\":\"Lands as a team message in the visitor's chat and emails them a copy.\",\"lastReplyAt\":\"Last reply sent {date}.\",\"bookingTitle\":\"Booking\",\"bookingBody\":\"This came from a Calendly booking — no reply needed. The visitor already got a confirmation.\",\"unknownVisitor\":\"Unknown visitor\",\"source\":\"Source\",\"attribution_page\":\"Page\",\"attribution_campaign\":\"Campaign\",\"attribution_referrer\":\"Referrer\"},\"alertEmail\":{\"heading\":\"Workspace handoff alerts\",\"label\":\"Handoff alert email\",\"placeholder\":\"[email protected]\",\"description\":\"Where new-handoff email alerts go for this workspace (applies to all agents). Leave blank to use the default.\",\"save\":\"Save\",\"saving\":\"Saving…\",\"saveSuccess\":\"Alert email updated.\",\"saveFailed\":\"Couldn't save. Try again.\",\"notOwner\":\"Only the workspace owner can change this.\",\"ownerOnly\":\"Only the workspace owner can change where handoff alerts go.\"},\"alertsSettings\":{\"heading\":\"Slack \u0026 email alerts\",\"description\":\"Choose where new-handoff alerts go — set the alert email and connect Slack for this workspace.\",\"cta\":\"Manage in Settings → Notifications\"}},\"logoUpload\":{\"label\":\"Agent Avatar\",\"alt\":\"Agent avatar\",\"upload\":\"Upload\",\"uploading\":\"Uploading...\",\"remove\":\"Remove\",\"uploadFailed\":\"Upload failed\",\"uploaded\":\"Logo uploaded\",\"failedUpload\":\"Failed to upload logo\",\"sizeError\":\"Image must be under 2MB\",\"typeError\":\"Only JPEG, PNG, GIF, or WebP images are allowed\"},\"instructionsEditor\":{\"label\":\"Instructions\",\"placeholder\":\"You are a helpful assistant for [Company Name]. You help customers with questions about our products and services. Always be polite and professional. If you don't know the answer, say so honestly and suggest the customer contact support at [email].\",\"templateLabel\":\"Start from a template\",\"templateHint\":\"Pick a template to start, then edit the instructions for this agent.\",\"templates\":{\"receptionist\":\"Receptionist\",\"sales\":\"Sales\",\"support\":\"Support\",\"custom\":\"Custom\"}},\"templatePicker\":{\"title\":\"Create a new agent\",\"subtitle\":\"Start from a ready-made template or build your own. You can edit everything afterwards.\",\"useTemplate\":\"Use this template\",\"creating\":\"Creating…\",\"createFailed\":\"Couldn't create the agent. Try again.\",\"loadingTemplates\":\"Loading templates…\",\"loadFailed\":\"Couldn't load templates — you can still start from scratch.\",\"cards\":{\"receptionist\":{\"name\":\"Receptionist\",\"description\":\"Greets visitors, answers common questions, and routes them to the right place.\"},\"sales\":{\"name\":\"Sales\",\"description\":\"Qualifies interested visitors and moves them toward a demo or quote.\"},\"support\":{\"name\":\"Support\",\"description\":\"Resolves customer issues step by step and escalates to a human when needed.\"},\"scratch\":{\"name\":\"Start from scratch\",\"description\":\"A blank agent with no preset instructions — write your own from the ground up.\"}}},\"actionsPanel\":{\"title\":\"Actions\",\"subtitle\":\"What this agent can do during a conversation.\",\"comingSoonHeading\":\"Coming soon\",\"comingSoonBadge\":\"Coming soon\",\"comingSoonTooltip\":\"On the roadmap — not available yet.\",\"comingSoonToast\":\"This action is on the roadmap. Let us know if you need it sooner.\",\"tiles\":{\"capture_lead\":{\"name\":\"Capture lead\",\"description\":\"Collect a visitor's name, email, or phone with a lead form.\"},\"handoff\":{\"name\":\"View handoff inbox\",\"description\":\"See conversations where a visitor asked for a person.\"},\"custom_tools\":{\"name\":\"Custom tools\",\"description\":\"Let the agent call your connected tools and APIs.\"},\"close_conversations\":{\"name\":\"Close conversations\",\"description\":\"Auto-close resolved chats with a summary.\"},\"lifecycle_update\":{\"name\":\"Update lifecycle stage\",\"description\":\"Move contacts through stages like Lead, Hot, or Customer.\"},\"update_tags\":{\"name\":\"Update tags\",\"description\":\"Tag contacts based on what happens in the conversation.\"}
1,\"trigger_workflow\":{\"name\":\"Trigger workflow\",\"description\":\"Kick off an automation when conditions are met.\"},\"add_comment\":{\"name\":\"Add internal comment\",\"description\":\"Leave a private note on the conversation for your team.\"},\"handle_calls\":{\"name\":\"Handle calls\",\"description\":\"Answer and route inbound voice calls.\"}}},\"modelPicker\":{\"modelLabel\":\"Model\",\"creditUsage\":\"This model uses\",\"perResponse\":\"per response\",\"temperatureLabel\":\"Temperature\",\"precise\":\"Precise\",\"creative\":\"Creative\",\"saving\":\"Saving...\",\"save\":\"Save Model Settings\",\"creditSuffix\":\"{count, plural, one {credit} other {credits}}/response\",\"upgradeRequired\":\"(Upgrade required)\",\"upgradeCta\":\"Need a more capable model? View plans\"},\"suggestedQuestions\":{\"label\":\"Suggested Questions (max {max})\",\"questionPlaceholder\":\"Question {n}\",\"add\":\"Add Question\"},\"widgetTrigger\":{\"title\":\"Trigger Behavior\",\"question\":\"When should the widget appear?\",\"always\":\"Always visible\",\"delay\":\"After time delay\",\"pageSpecific\":\"On specific pages\",\"exitIntent\":\"On exit intent (desktop)\",\"delayLabel\":\"Delay (seconds)\",\"delayHelp\":\"Widget button appears after this many seconds on the page.\",\"urlPatternsLabel\":\"URL Patterns (one per line)\",\"urlPatternsHelp\":\"Use * as wildcard. Widget only appears on matching pages.\",\"exitIntentNote\":\"The widget will proactively open when a desktop visitor moves their mouse toward the browser close/navigation area.\"},\"widgetAppearance\":{\"accentColor\":\"Accent Color\",\"accentColorAria\":\"Choose accent color\",\"logo\":\"Logo\",\"logoUrlLabel\":\"Logo URL\",\"logoUrlPlaceholder\":\"https://example.com/logo.png\",\"logoHelp\":\"Displayed in the chat header. Leave empty for default ChatOtter icon.\",\"position\":\"Position\",\"positionBottomRight\":\"Bottom Right\",\"positionBottomLeft\":\"Bottom Left\",\"welcomeMessage\":\"Welcome Message\",\"welcomeMessagePlaceholder\":\"Hello! How can I help you today?\",\"welcomeMessageHelp\":\"First message visitors see when they open the chat widget.\"},\"embedScript\":{\"title\":\"Embed Script\",\"copyAria\":\"Copy embed script\",\"copiedAria\":\"Copied\",\"pasteHint\":\"Paste this before the closing \u003ccode\u003e\u0026lt;/body\u0026gt;\u003c/code\u003e tag on your website.\",\"cspSummary\":\"Using a Content Security Policy? Add these sources.\",\"cspIntro\":\"\u003cstrong\u003eThis is a separate change from the embed script above.\u003c/strong\u003e The script tag goes in your HTML body. CSP rules live wherever your site sets the \u003ccode\u003eContent-Security-Policy\u003c/code\u003e response header — typically your server config (Nginx, Apache), framework middleware (Next.js \u003ccode\u003eheaders()\u003c/code\u003e, Express Helmet, Rails), CDN response headers (Cloudflare, Vercel), or a \u003ccode\u003e\u0026lt;meta http-equiv\u0026gt;\u003c/code\u003e tag in \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e. Skip this section entirely if your site doesn't send a CSP.\",\"cspInstruction\":\"Add each source below to its matching directive there:\",\"cspCopyAria\":\"Copy CSP sources\",\"cspExampleLabel\":\"Example — merge into your existing directive:\",\"cspImgSrcNote\":\"Also extend \u003ccode\u003eimg-src\u003c/code\u003e to allow your stored images (workspace logo, chat attachments).\"},\"slackWebhook\":{\"title\":\"Slack notifications\",\"description\":\"Get instant Slack alerts in your team channel for new leads, connector failures, and other notifications. Without a webhook, Slack delivery is skipped — in-app and email alerts continue to work.\",\"urlLabel\":\"Incoming webhook URL\",\"urlInvalid\":\"Must be a Slack incoming webhook URL starting with \u003ccode\u003e{prefix}\u003c/code\u003e\",\"noUrlHint\":\"Don't have one yet? \u003clink\u003eCreate a Slack incoming webhook\u003c/link\u003e\",\"saveChanges\":\"Save changes\",\"saveWebhook\":\"Save webhook\",\"sendTest\":\"Send test message\",\"remove\":\"Remove\",\"saved\":\"Slack webhook saved\",\"removed\":\"Slack webhook removed — Slack alerts disabled\",\"saveFailed\":\"Failed to save Slack webhook\",\"removeFailed\":\"Failed to remove Slack webhook\",\"testSent\":\"Test message sent — check your Slack channel\",\"testFailed\":\"Slack test failed\",\"enabledHint\"
1:\"Slack alerts are enabled for this workspace. Use \u003cstrong\u003eSend test message\u003c/strong\u003e to verify the channel is reachable.\",\"dirtyHint\":\"Save to enable test sending. Your existing webhook stays active until you save.\"},\"notificationPrefs\":{\"title\":\"Notification Preferences\",\"description\":\"Choose which events trigger notifications and via which channel.\",\"headerEvent\":\"Event\",\"channelInApp\":\"In-App\",\"channelEmail\":\"Email\",\"channelSlack\":\"Slack\",\"eventNewLead\":\"New lead captured\",\"eventCredentialHealth\":\"Connection health\",\"slackDisabledHint\":\"Slack toggles are disabled until you add a webhook URL above.\",\"connectorFailuresTitle\":\"About connection health alerts\",\"connectorFailuresBody\":\"When a connected service (e.g. an n8n credential or Slack webhook) fails its daily check, we alert your workspace Slack with a link to the connection so you can fix or remove it. Only failures are sent — turn these off with the Slack toggle above.\"},\"whiteLabel\":{\"removeTitle\":\"Remove white-label branding?\",\"removeDescription\":\"ChatOtter branding will be restored.\",\"remove\":\"Remove\",\"loading\":\"Loading white-label settings...\",\"logoUrl\":\"Logo URL\",\"logoUrlPlaceholder\":\"https://example.com/logo.png\",\"brandName\":\"Brand Name\",\"brandNamePlaceholder\":\"Your Agency Name\",\"primaryColor\":\"Primary Color\",\"poweredByText\":\"\\\"Powered by\\\" Text\",\"poweredByPlaceholder\":\"Leave empty to hide badge\",\"poweredByHelp\":\"Leave empty to hide the \\\"Powered by\\\" badge entirely.\",\"save\":\"Save Settings\",\"saving\":\"Saving...\",\"removeBranding\":\"Remove Branding\",\"saveFailed\":\"Failed to save. You may need a Pro tier subscription for white-label branding.\",\"saveSuccess\":\"Settings saved successfully.\",\"preview\":\"Preview\",\"widgetPreview\":\"Widget Preview\",\"logoPlaceholder\":\"Logo\",\"previewGreeting\":\"Hello! How can I help?\",\"poweredByPrefix\":\"Powered by\",\"badgeHidden\":\"Badge hidden\",\"dashboardPreview\":\"Dashboard Header Preview\"},\"leadTable\":{\"loading\":\"Loading leads...\",\"emptyTitle\":\"No leads captured yet\",\"emptyDescription\":\"Deploy your agent to start capturing leads\",\"searchPlaceholder\":\"Search by name or email...\",\"allSources\":\"All sources\",\"chatWidget\":\"Chat Widget\",\"api\":\"API\",\"columns\":{\"name\":\"Name\",\"email\":\"Email\",\"company\":\"Company\",\"source\":\"Source\",\"captured\":\"Captured\",\"chat\":\"Chat\"},\"anonymous\":\"Anonymous\",\"viewConversation\":\"View full conversation\",\"noSessionLinked\":\"No session linked\",\"totalLeads\":\"{count, plural, one {# lead total} other {# leads total}}\",\"previous\":\"Previous\",\"next\":\"Next\",\"pageOf\":\"Page {page} of {total}\"},\"leadForms\":{\"loadFailed\":\"Failed to load lead forms. Please try again.\",\"defaultName\":\"New Lead Form\",\"formDuplicated\":\"Form duplicated\",\"formCreated\":\"Form created\",\"createFailed\":\"Failed to create form\",\"formEnabled\":\"Form enabled\",\"formDisabled\":\"Form disabled\",\"updateFailed\":\"Failed to update form\",\"primarySet\":\"\\\"{name}\\\" is now the primary form\",\"setPrimaryFailed\":\"Failed to set primary\",\"deletePrimaryTitle\":\"Delete the primary form?\",\"deleteTitle\":\"Delete this form?\",\"deletePrimaryDescription\":\"This will leave this agent with no lead capture until you promote another form.\",\"delete\":\"Delete\",\"archived\":\"Form archived (existing leads preserved)\",\"deleted\":\"Form deleted\",\"deleteFailed\":\"Failed to delete form\",\"noPrimaryTitle\":\"No active primary lead form\",\"noPrimaryDisabledBody\":\"The primary form \\\"{name}\\\" is currently disabled. Re-enable it or pick another form to enable lead capture.\",\"noPrimaryBody\":\"This agent has forms but none is marked primary. Pick one to enable lead capture.\",\"header\":\"Lead Forms\",\"newForm\":\"New Form\",\"createDialogTitle\":\"Create a new lead form\",\"formNameLabel\":\"Form name\",\"formNamePlaceholder\":\"e.g. Enterprise Lead Capture\",\"creating\":\"Creating…\",\"createForm\":\"Create form\",\"emptyState\":\"No lead forms yet. Click \\\"New Form\\\" to create one.\",\"primaryBadge\":\"Primary\",\"fieldCount\":\"{count, plural, one {# field} other {# fields}}\",\"editFormAria\":\"Edit form {name}\",\"setPrimary\":\"Set primary\",\"setPrimaryTooltip\":\"Set as primary\",\"activateFirstTooltip\":\"Activate first, then promote\",\"toggleAria\":\"Toggle active state for {name}\",\"editAria\":\"Edit {name}\",\"editTooltip\":\"Edit fields\",\"duplicateAria\":\"Duplicate {name}\",\"duplicateTooltip\":\"Duplicate\",\"deleteAria\":\"Delete {name}\",\"deletePrimaryTooltip\":\"Delete primary form\",\"deleteTooltip\":\"Delete form\",\"widgetHint\":\"The widget serves the primary form. Non-primary forms stay hidden from visitors until promoted.\"},\"allowedDomains\":{\"title\":\"Allowed Domains\",\"addLabel\":\"Add Domain\",\"add\":\"Add\",\"placeholder\":\"example.com\",\"removeAria\":\"Remove {domain}\",\"emptyHelp\":\"No domains configured. The widget will load from any domain. Add domains to restrict where your widget can be embedded.\",\"securityNoteTitle\":\"Security note\",\"securityNoteBody\":\"Lock the widget to the domains you own. Without an allow-list, anyone who copies your embed script can run your agent on their site and burn through your chat sessions.\",\"requiredWarningTitle\":\"Add at least one domain\",\"requiredWarningBody\":\"We strongly recommend locking the widget to one or more of your own domains. Leaving this empty lets the script load anywhere.\",\"errors\":{\"empty\":\"Enter a domain name\",\"duplicate\":\"Domain already added\",\"invali
1d\":\"Invalid domain format (e.g. example.com or localhost:3000)\"}},\"widgetDomainGrace\":{\"banner\":{\"pending\":{\"title\":\"Domain allowlist takes effect soon\",\"body\":\"Enforcement starts in {days, plural, one {# day} other {# days}}. Until then your widget loads from any origin so you can verify the allowlist before lockout.\",\"bodyNoClock\":\"Enforcement is scheduled. Until then your widget loads from any origin so you can verify the allowlist before lockout.\"},\"soft\":{\"title\":\"Allowlist is enforcing soon\",\"body\":\"Unallowlisted origins will be hard-blocked in {days, plural, one {# day} other {# days}}. Confirm every live origin is in the allowlist now.\",\"bodyNoClock\":\"Unallowlisted origins will be hard-blocked soon. Confirm every live origin is in the allowlist now.\"},\"blocked\":{\"title\":\"Domain enforcement is live\",\"body\":\"Visitors from unallowlisted origins are blocked. Add the origin to the allowlist to restore access — or disable enforcement entirely if that's intentional.\",\"bodyNoClock\":\"Visitors from unallowlisted origins are blocked. Add the origin to the allowlist to restore access — or disable enforcement entirely if that's intentional.\"}},\"actions\":{\"enforceNow\":\"Enforce now\",\"postpone\":\"Postpone 7 days\",\"disable\":\"Disable enforcement\"},\"toasts\":{\"enforceNowOk\":\"Domain enforcement is live.\",\"enforceNowFailed\":\"Could not enforce now. Try again.\",\"postponeOk\":\"Enforcement postponed 7 days.\",\"postponeFailed\":\"Could not postpone. Try again.\",\"disableOk\":\"Domain enforcement disabled.\",\"disableFailed\":\"Could not disable enforcement. Try again.\",\"workspaceFetchFailed\":\"Could not load workspace details. Close and reopen this dialog to retry.\"},\"disableDialog\":{\"title\":\"Disable domain enforcement\",\"warning\":\"This clears the allowlist and lets the widget load on any origin. Anyone with your embed script can run your agent on their site. To confirm, type the workspace name below.\",\"typeNameLabel\":\"Type the workspace name to confirm: {name}\",\"cancel\":\"Cancel\",\"confirm\":\"Disable enforcement\",\"disabling\":\"Disabling…\"}},\"zohoCrmConnection\":{\"title\":\"Zoho CRM\",\"connected\":\"Connected\",\"autoSyncHelp\":\"Leads captured by the chat agent are automatically created in your Zoho CRM as new leads.\",\"connectPrompt\":\"Connect Zoho CRM on the Integrations page to automatically sync captured leads.\",\"manage\":\"Manage in Integrations\",\"connect\":\"Connect Zoho\"},\"crmIntegrations\":{\"title\":\"CRM Integrations\"},\"crmConnection\":{\"provider\":\"HubSpot\",\"connected\":\"Connected\",\"autoPushLabel\":\"Auto-push leads to HubSpot\",\"autoPushHelp\":\"New leads captured by the chat agent will be automatically synced to HubSpot as contacts.\",\"autoPushEnabled\":\"Auto-push enabled\",\"autoPushDisabled\":\"Auto-push disabled\",\"autoPushFailed\":\"Failed to update auto-push setting\",\"connectPrompt\":\"Connect HubSpot to automatically push captured leads as CRM contacts.\",\"connect\":\"Connect HubSpot\",\"manage\":\"Manage in Integrations\",\"unverifiedNotice\":\"HubSpot will show an \\\"unverified app\\\" notice during install — that's expected. Click \u003cconnect\u003eConnect app\u003c/connect\u003e to continue.\"},\"outboundConnection\":{\"title\":\"Cold-Email Outreach\",\"connected\":\"Connected\",\"connectPrompt\":\"Send captured leads into your Instantly campaigns so your outbound sequences pick them up automatically.\",\"apiKeyLabel\":\"Instantly API key\",\"apiKeyPlaceholder\":\"Paste your v2 API key\",\"apiKeyHelp\":\"Find this in Instantly → Settings → Integrations → API. Use a v2 key (older v1 keys won't work).\",\"connect\":\"Connect Instantly\",\"connecting\":\"Connecting...\",\"connectedToast\":\"Instantly connected\",\"connectFailed\":\"Failed to connect Instantly.\",\"statusNeedsAttention\":\"Action needed\",\"planRequiredBanner\":\"Saved, but not active yet — verify the key (e.g. upgrade your Instantly plan) to start pushing leads. Your Instantly plan doesn't include API access yet.\",\"unverifiedBanner\":\"Saved, but not active yet — verify the key to 
1start pushing leads. We couldn't verify it just now — try again in a moment.\",\"updateKeyLabel\":\"Update API key\",\"updateKey\":\"Update key\",\"updating\":\"Updating...\",\"keyHintLabel\":\"Saved key\",\"testConnection\":\"Test connection\",\"testing\":\"Testing...\",\"testSuccess\":\"Connection verified\",\"testFailed\":\"Couldn't verify the connection\",\"autoPushDisabledHint\":\"Auto-push turns on once your key is verified and a campaign is selected.\",\"campaignLabel\":\"Campaign to send leads to\",\"campaignPlaceholder\":\"Pick a campaign\",\"saveCampaign\":\"Save\",\"savingCampaign\":\"Saving...\",\"campaignSaved\":\"Campaign saved\",\"campaignSaveFailed\":\"Failed to save campaign\",\"noCampaigns\":\"No campaigns found in this Instantly workspace. Create one in Instantly first, then refresh.\",\"pickCampaignHint\":\"Pick a campaign to start sending leads.\",\"autoPushLabel\":\"Auto-push leads to Instantly\",\"autoPushHelp\":\"New leads captured by the chat agent will be added to the selected campaign automatically.\",\"autoPushEnabled\":\"Auto-push enabled\",\"autoPushDisabled\":\"Auto-push disabled\",\"autoPushFailed\":\"Failed to update auto-push setting\",\"disconnect\":\"Disconnect Instantly\",\"disconnecting\":\"Disconnecting...\",\"disconnected\":\"Instantly disconnected\",\"disconnectFailed\":\"Failed to disconnect Instantly\",\"disconnectTitle\":\"Disconnect Instantly?\",\"disconnectDescription\":\"Lead push will stop.\",\"disconnectConfirm\":\"Disconnect\"},\"scopeSummary\":{\"title\":\"What your agent covers\",\"emptyDescription\":\"Add a knowledge base document to populate this. The agent will auto-generate a topic summary and starter questions for visitors once your KB is indexed.\",\"regenerate\":\"Regenerate\",\"regenerating\":\"Regenerating — this takes ~10 seconds. The summary will update here automatically.\",\"regenerateFailed\":\"Failed to start regeneration\",\"generatedDescription\":\"Auto-generated from your knowledge base ({count, plural, one {# document} other {# documents}} · last updated {when}).\",\"topics\":\"Topics\",\"starterQuestions\":\"Visitor starter questions\",\"relTime\":{\"justNow\":\"just now\",\"minutes\":\"{count} min ago\",\"hours\":\"{count} hr ago\",\"days\":\"{count, plural, one {# day ago} other {# days ago}}\"}},\"pageMetadata\":{\"agencyOverview\":\"Agency Overview\",\"agencyAnalytics\":\"Agency Analytics\",\"whiteLabel\":\"White-Label Settings\",\"inboundLeads\":\"Inbound Leads\",\"csInbox\":\"Inbox\",\"notifications\":\"Notifications\",\"chatSessions\":\"Chat Sessions\",\"knowledgeBaseDocuments\":\"Knowledge Base - Documents\",\"widgetConfiguration\":\"Widget Configuration\",\"contacts\":\"Contacts\"},\"talkToUs\":{\"heading\":\"Talk to us\",\"chatWhatsapp\":\"WhatsApp\",\"chatZalo\":\"Zalo\",\"replyFast\":\"We usually reply within minutes.\",\"whatsappPrefill\":\"Hi ChatOtter team, I'd like to share some feedback about my ChatOtter agent.\"},\"contactSupport\":{\"title\":\"Contact ChatOtter\",\"launcherAria\":\"Contact ChatOtter support\",\"closeAria\":\"Close\",\"prompt\":\"Send us a message and we'll get back to you by email.\",\"placeholder\":\"How can we help?\",\"send\":\"Send\",\"sending\":\"Sending…\",\"or\":\"or\",\"bookDemo\":\"Book a demo\",\"error\":\"Couldn't send your message. Please try again, or email [email protected].\",\"confirmation\":\"Thanks — we've got your message and will reply by email soon.\",\"sendAnother\":\"Send another\",\"done\":\"Done\"},\"contactsTable\":{\"loading\":\"Loading contacts…\",\"emptyTitle\":\"No contacts yet\",\"emptyDescription\":\"Contacts appear here as your agents capture leads across channels.\",\"searchPlaceholder\":\"Search name, email, or phone\",\"unknown\":\"Unknown\",\"columns\":{\"name\":\"Name\",\"email\":\"Email\",\"phone\":\"Phone\",\"channels\":\"Channels\",\"lastSeen\":\"Last seen\",\"intent\":\"Intent\",\"stage\":\"Stage\"},\"totalContacts\":\"{count} contacts\",\"previous\":\"Previous\",\"next\":\"Next\",\"pageOf\":\"Page {page} of {total}\",\"intent\":{\"hot\":\"Hot\",\"warm\":\"Warm\",\"cold\":\"Cold\"},\"addContact\":\"Add contact\",\"addTitle\":\"Add a contact\",\"addDescription\":\"Manually add someone to your contacts.\",\"editTitle\":\"Edit contact\",\"editDescription\":\"Update this contact’s details.\",\"add\":\"Add\",\"save\":\"Save\",\"saving\":\"Saving…\",\"saved\":\"Contact updated.\",\"added\":\"Contact added.\",\"saveFailed\":\"Could not save the contact.\",\"company\":\"Company\",\"lifecycle\":\"Stage\",\"tags\":\"Tags\",\"tagsPlaceholder\":\"Comma-separated (e.g. vip, buyer)\",\"notes\":\"Notes\",\"addNeedsContact\":\"Enter at least an email or a phone number.\",\"lifecycleStage\":{\"new_lead\":\"New Lead\",\"hot_lead\":\"Hot Lead\",\"customer\":\"Customer\",\"payment\":\"Payment\",\"cold_lead\":\"Cold Lead\"},\"edit\":\"Edit\",\"owner\":\"Owner\",\"ownerUnassigned\":\"Unassigned\",\"t
1imeline\":\"Timeline\",\"addNote\":\"Add note\",\"addNotePlaceholder\":\"Add a note…\",\"noActivity\":\"No activity yet.\",\"activity\":{\"created\":\"Created\",\"lead_captured\":\"Lead captured\",\"ai_enriched\":\"AI summary\",\"stage_changed\":\"Stage changed\",\"note\":\"Note\",\"event\":\"Activity\"},\"export\":\"Export CSV\",\"noResults\":\"No contacts match these filters.\",\"filterStageAll\":\"All stages\",\"filterIntentAll\":\"All intents\",\"clearFilters\":\"Clear\",\"selectedCount\":\"{count} selected\",\"bulkSetStage\":\"Set stage…\",\"bulkAddTag\":\"Add tag\",\"bulkAddTagPrompt\":\"Tag to add to selected contacts:\",\"bulkArchive\":\"Archive\",\"clearSelection\":\"Clear\",\"bulkDone\":\"Updated {count} contacts.\",\"selectAll\":\"Select all\",\"selectRow\":\"Select contact\",\"archive\":\"Archive\",\"archived\":\"Contact archived.\",\"archiveConfirm\":\"Archive this contact? It will be removed from the list.\",\"detail\":{\"backToList\":\"Contacts\",\"notFound\":\"This contact could not be found.\",\"keyInfo\":\"Key information\",\"aiSummary\":\"AI summary\",\"aiSummaryEmpty\":\"A summary is written automatically once this contact has activity across your channels.\",\"aiScore\":\"AI score\",\"firstSeen\":\"First seen\",\"tabs\":{\"timeline\":\"Timeline\",\"conversations\":\"Conversations\",\"leads\":\"Leads\",\"bookings\":\"Bookings\"},\"soon\":{\"conversations\":{\"title\":\"Conversations are coming\",\"body\":\"Every chat this person has had across your channels will gather here.\"},\"leads\":{\"title\":\"Leads are coming\",\"body\":\"Forms this person submitted will be linked here.\"},\"bookings\":{\"title\":\"Bookings are coming\",\"body\":\"Meetings this person booked through your agent will appear here.\"}}}},\"adminAgentTemplates\":{\"title\":\"Agent templates\",\"subtitle\":\"Edit the picker archetypes customers see at /chat-agent/new. Changes go live without a deploy.\",\"newTemplate\":\"New template\",\"loading\":\"Loading templates…\",\"empty\":\"No templates yet.\",\"colName\":\"Name\",\"colSlug\":\"Slug\",\"colStatus\":\"Status\",\"colKind\":\"Type\",\"builtIn\":\"Built-in\",\"custom\":\"Custom\",\"edit\":\"Edit\",\"status_draft\":\"Draft\",\"status_published\":\"Published\",\"status_archived\":\"Archived\",\"editTitle\":\"Edit template\",\"createTitle\":\"New template\",\"drawerHint\":\"The prompt is the agent's instructions (English). Description shows on the picker card.\",\"fieldName\":\"Name\",\"fieldSlug\":\"Slug\",\"slugLocked\":\"Built-in slugs can't be changed.\",\"fieldDescription\":\"Card description\",\"fieldIcon\":\"Icon (lucide name)\",\"fieldStatus\":\"Status\",\"fieldWelcome\":\"Welcome message\",\"fieldPrompt\":\"System prompt (instructions)\",\"promptHint\":\"Use {company} as the workspace-name token. Kept under ~2000 chars.\",\"cancel\":\"Cancel\",\"save\":\"Save\",\"saving\":\"Saving…\",\"saved\":\"Template saved\",\"saveFailed\":\"Couldn't save the template\",\"errNameRequired\":\"Name is required\",\"errPromptRequired\":\"System prompt is required\",\"errSlugInvalid\":\"Slug must be lowercase letters, digits, or hyphens (1–64 chars)\"}},\"demo\":{\"metaTitle\":\"Your live ChatOtter demo\",\"eyebrow\":\"Live demo\",\"trainedOn\":\"ChatOtter, trained on {site}\",\"yourSite\":\"your site\",\"subtitle\":\"Ask it anything a real visitor would — it answers from your own website, instantly.\",\"buildingTitle\":\"Building your live demo…\",\"buildingPending\":\"Getting started…\",\"buildingCrawling\":\"Reading your website…\",\"buildingIndexing\":\"Teaching the AI your content…\",\"readyTitle\":\"Your demo is ready\",\"readyInstruction\":\"Open the chat in the bottom corner and ask it about your products, pricing, or policies.\",\"pagesIndexed\":\"Trained on {count, plural, one {# page} other {# pages}} from your site\",\"errorTitle\":\"We couldn't build this demo\",\"errorBody\":\"We couldn't read enough content from that site. Try again with a different page, or start free and add your content yourself.\",\"timeoutTitle\":\"This is taking longer than expected\",\"timeoutBody\":\"The demo is still building. Refresh in a moment, or start free to build your own.\",\"notFoundTitle\":\"Demo not found\",\"notFoundBody\":\"This demo may have expired. Demos are available for a limited time — start free to build your own that never expires.\",\"cta\":\"Get this on your site — start free\",\"ctaSub\":\"Set up your own in minutes.\",\"generatorHeading\":\"Generate a live demo\",\"generatorSubtitle\":\"Paste a prospect's website URL to build a shareable ChatOtter demo trained on their site.\",\"urlPlaceholder\":\"acme-skincare.com\",\"generateButton\":\"Generate demo\",\"generating\":\"Generating…\",\"genError\":\"Couldn't generate a demo for that URL. Check it and try again.\",\"statusBuilding\":\"Building\",\"statusReady\":\"Ready\",\"statusError\":\"Failed\",\"openDemo\":\"Open demo\"}}
1,\"nonce\":\"$undefined\",\"children\":[\"$L36\",\"$L37\",\"$L38\",\"$L39\"]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"36:[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$3a\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/6faedbb343035725.js\",\"async\":true}]],\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]\n37:[\"$\",\"$L3b\",null,{\"richColors\":true,\"theme\":\"light\",\"position\":\"top-center\"}]\n38:[\"$\",\"$L3c\",null,{}]\n39:[\"$\",\"$L3d\",null,{}]\n14:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script>
1<script>self.__next_f.push([1,"f:[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebPage\\\",\\\"name\\\":\\\"ChatOtter Pricing\\\",\\\"description\\\":\\\"Pricing plans for ChatOtter — the all-in-one AI agent platform for SMEs.\\\"}\"}}],[\"$\",\"div\",null,{\"className\":\"flex flex-col space-y-4 xl:space-y-8\",\"children\":[[\"$\",\"section\",null,{\"className\":\"border-border/40 border-b py-6 xl:py-8 2xl:py-10\",\"aria-labelledby\":\"page-heading\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col items-center gap-y-2 lg:gap-y-3 container\",\"children\":[[\"$\",\"h1\",null,{\"id\":\"page-heading\",\"className\":\"font-heading text-3xl tracking-tighter xl:text-5xl dark:text-white\",\"children\":\"Pricing\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground text-lg tracking-tight 2xl:text-2xl\",\"children\":\"The chatbot that can't make things up about your business. Start free, add multi-agent workflows as you grow — your price stays locked.\"}]]}]}],[\"$\",\"div\",null,{\"className\":\"container flex flex-col items-center pb-16\",\"children\":[[\"$\",\"div\",null,{\"className\":\"w-full max-w-7xl\",\"children\":[\"$\",\"$L3e\",null,{}]}],\"$L3f\",\"$L40\",[\"$\",\"p\",null,{\"className\":\"text-muted-foreground mt-12 text-center text-sm\",\"children\":[\"Starter includes a 14-day free trial. Cancel anytime.\",[\"$\",\"br\",null,{}],\"Existing customers keep their tier price forever, even when we add new tiers.\"]}]]}]]}]]\n"])</script>
1<script>self.__next_f.push([1,"19:[\"$\",\"header\",null,{\"className\":\"site-header bg-background/80 dark:bg-background/80 sticky top-0 z-10 w-full backdrop-blur-lg\",\"children\":[\"$\",\"div\",null,{\"className\":\"container mx-auto\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex h-20 items-center justify-between gap-2 lg:h-28\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"md:hidden\",\"children\":[\"$\",\"$L41\",null,{\"links\":[{\"label\":\"How It Works\",\"path\":\"/#how-it-works\"},{\"label\":\"Features\",\"path\":\"/#features\"},{\"label\":\"Pricing\",\"path\":\"/pricing\"},{\"label\":\"Blog\",\"path\":\"/blog\"},{\"label\":\"Contact\",\"path\":\"/contact\"},{\"label\":\"Sign In\",\"path\":\"/auth/sign-in\",\"showOn\":\"mobile\"}]}]}],[\"$\",\"$L1c\",null,{\"href\":\"/\",\"aria-label\":\"Home Page\",\"className\":\"flex items-center\",\"children\":[[\"$\",\"$L1d\",null,{\"src\":\"https://d15l3i9lwgubhl.cloudfront.net/chatotter/chatotter-icon-light.png\",\"alt\":\"ChatOtter\",\"width\":128,\"height\":128,\"quality\":100,\"unoptimized\":true,\"className\":\"h-16 w-16 sm:hidden\",\"priority\":true}],[\"$\",\"$L1d\",null,{\"src\":\"https://d15l3i9lwgubhl.cloudfront.net/chatotter/chatotter-horizontal-light.png\",\"alt\":\"ChatOtter\",\"width\":950,\"height\":277,\"quality\":100,\"className\":\"h-8 w-auto sm:h-14 md:h-16 lg:h-24 hidden sm:block\",\"priority\":true}]]}]]}],[\"$\",\"nav\",null,{\"aria-label\":\"Main navigation\",\"className\":\"hidden md:flex md:flex-1 md:justify-center\",\"children\":[\"$\",\"ul\",null,{\"className\":\"flex list-none items-center space-x-2.5\",\"children\":[[\"$\",\"$L42\",\"/#how-it-works\",{\"path\":\"/#how-it-works\",\"children\":\"How It Works\"}],[\"$\",\"$L42\",\"/#features\",{\"path\":\"/#features\",\"children\":\"Features\"}],[\"$\",\"$L42\",\"/pricing\",{\"path\":\"/pricing\",\"children\":\"Pricing\"}],[\"$\",\"$L42\",\"/blog\",{\"path\":\"/blog\",\"children\":\"Blog\"}],[\"$\",\"$L42\",\"/contact\",{\"path\":\"/contact\",\"children\":\"Contact\"}]]}]}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-end gap-x-2\",\"children\":[\"$\",\"div\",null,{\"className\":\"animate-in fade-in flex items-center gap-x-2 duration-500\",\"children\":[[\"$\",\"$L43\",null,{}],[\"$\",\"div\",null,{\"className\":\"hidden md:flex\",\"children\":[\"$\",\"$L44\",null,{}]}],[\"$\",\"div\",null,{\"className\":\"md:hidden\",\"children\":[\"$\",\"$L45\",null,{}]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-x-2\",\"children\":[[\"$\",\"$L46\",null,{\"data-slot\":\"button\",\"suppressHydrationWarning\":true,\"className\":\"focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 group/button shrink-0 items-center justify-center border bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-[3px] data-[disabled]:opacity-50 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 [\u0026_svg:not([class*='size-'])]:size-4 border-border bg-background hover:bg-muted hover:text-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 aria-expanded:bg-muted aria-expanded:text-foreground shadow-xs h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 hidden md:flex\",\"nativeButton\":false,\"render\":[\"$\",\"$L1c\",null,{\"href\":\"/auth/sign-in\",\"children\":[\"$\",\"$L1e\",null,{\"fallback\":\"auth.signIn\",\"children\":\"Sign In\"}]}]}],[\"$\",\"$L46\",null,{\"data-slot\":\"button\",\"suppressHydrationWarning\":true,\"className\":\"focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-[3px] data-[disabled]:opacity-50 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 [\u0026_svg:not([class*='size-'])]:size-4 bg-primary text-primary-foreground hover:bg-primary/80 h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5\",\"nativeButton\":false,\"render\":\"$L47\"}]]}]]}]}]]}]}]}]\n"])</script>
1<script>self.__next_f.push([1,"47:[\"$\",\"$L1c\",null,{\"href\":\"/auth/sign-up\",\"children\":[\"$\",\"$L1e\",null,{\"fallback\":\"auth.signUp\",\"children\":\"Sign Up\"}]}]\n"])</script>
1<script>self.__next_f.push([1,"3f:[\"$\",\"section\",null,{\"className\":\"mt-20 w-full max-w-5xl\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-foreground mb-2 text-center text-2xl font-bold\",\"children\":\"Why ChatOtter Pro beats a generic AI chatbot\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground mb-8 text-center text-sm\",\"children\":[\"Most AI chatbots happily make things up and bury the source. ChatOtter Pro can't — every answer is grounded in your knowledge base and shows where it came from — and bundles WhatsApp, human handoff, 3 agents, and LINE + Zalo ZNS at \",[\"$\",\"strong\",\"strong0\",{\"children\":[\"$$149/mo\"]}],\", with no add-on stacking.\"]}],[\"$\",\"div\",null,{\"className\":\"border-border overflow-hidden rounded-xl border\",\"children\":[\"$\",\"table\",null,{\"className\":\"w-full text-sm\",\"children\":[[\"$\",\"thead\",null,{\"className\":\"bg-muted\",\"children\":[\"$\",\"tr\",null,{\"children\":[[\"$\",\"th\",null,{\"className\":\"text-foreground px-4 py-3 text-left font-semibold\",\"children\":\"Feature\"}],[\"$\",\"th\",null,{\"className\":\"text-foreground px-4 py-3 text-left font-semibold\",\"children\":\"ChatOtter Pro — $149/mo\"}],[\"$\",\"th\",null,{\"className\":\"text-muted-foreground px-4 py-3 text-left font-semibold\",\"children\":\"Typical AI chatbot\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"Grounded answers — physically can't hallucinate\",{\"className\":\"border-border border-t\",\"children\":[[\"$\",\"td\",null,{\"className\":\"text-foreground px-4 py-3\",\"children\":\"Grounded answers — physically can't hallucinate\"}],[\"$\",\"td\",null,{\"className\":\"px-4 py-3\",\"children\":[\"$\",\"span\",null,{\"children\":\"Hardcoded — can't be turned off\"}]}],[\"$\",\"td\",null,{\"className\":\"text-muted-foreground px-4 py-3\",\"children\":[\"$\",\"span\",null,{\"children\":\"Optional toggle, usually off\"}]}]]}],[\"$\",\"tr\",\"Source shown on every answer\",{\"className\":\"border-border border-t\",\"children\":[[\"$\",\"td\",null,{\"className\":\"text-foreground px-4 py-3\",\"children\":\"Source shown on every answer\"}],[\"$\",\"td\",null,{\"className\":\"px-4 py-3\",\"children\":[\"$\",\"span\",null,{\"children\":\"Default on\"}]}],[\"$\",\"td\",null,{\"className\":\"text-muted-foreground px-4 py-3\",\"children\":[\"$\",\"span\",null,{\"children\":\"Rarely, if at all\"}]}]]}],[\"$\",\"tr\",\"WhatsApp Business API\",{\"className\":\"border-border border-t\",\"children\":[[\"$\",\"td\",null,{\"className\":\"text-foreground px-4 py-3\",\"children\":\"WhatsApp Business API\"}],[\"$\",\"td\",null,{\"className\":\"px-4 py-3\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-2\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-check h-4 w-4 shrink-0 text-green-600\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1gmf2c\",{\"d\":\"M20 6 9 17l-5-5\"}],\"$undefined\"]}],\"Included\"]}]}],[\"$\",\"td\",null,{\"className\":\"text-muted-foreground px-4 py-3\",\"children\":[\"$\",\"span\",null,{\"children\":\"Add-on or higher tier\"}]}]]}],[\"$\",\"tr\",\"3 AI agents + remove branding\",{\"className\":\"border-border border-t\",\"children\":[[\"$\",\"td\",null,{\"className\":\"text-foreground px-4 py-3\",\"children\":\"3 AI agents + remove branding\"}],[\"$\",\"td\",null,{\"className\":\"px-4 py-3\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-2\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-check h-4 w-4 shrink-0 text-green-600\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1gmf2c\",{\"d\":\"M20 6 9 17l-5-5\"}],\"$undefined\"]}],\"Included\"]}]}],[\"$\",\"td\",null,{\"className\":\"text-muted-foreground px-4 py-3\",\"children\":[\"$\",\"span\",null,{\"children\":\"Per-agent fees + white-label add-on\"}]}]]}],[\"$\",\"tr\",\"Existing-customer price lock\",{\"className\":\"border-border border-t\",\"children\":[[\"$\",\"td\",null,{\"className\":\"text-foreground px-4 py-3\",\"children\":\"Existing-customer price lock\"}],[\"$\",\"td\",null,{\"className\":\"px-4 py-3\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-2\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-check h-4 w-4 shrink-0 text-green-600\",\"aria-hidden\":true,\"children\":[\"$L48\",\"$undefined\"]}],\"Included\"]}]}],\"$L49\"]}]]}]]}]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"40:[\"$\",\"div\",null,{\"className\":\"mt-20 w-full max-w-3xl\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-foreground mb-8 text-center text-2xl font-bold\",\"children\":\"Frequently Asked Questions\"}],[\"$\",\"div\",null,{\"className\":\"space-y-6\",\"children\":[[\"$\",\"div\",\"How does ChatOtter prevent hallucinations?\",{\"className\":\"border-border border-b pb-4\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-foreground mb-2 font-semibold\",\"children\":\"How does ChatOtter prevent hallucinations?\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground text-sm\",\"children\":\"Our chat agent has no permissive code path — it can only answer from your knowledge base. When the knowledge base doesn't have the answer, the bot refuses rather than inventing one. Every grounded reply shows the source chunk it came from, so you (and your visitors) can verify every claim.\"}]]}],[\"$\",\"div\",\"What counts as a chat session?\",{\"className\":\"border-border border-b pb-4\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-foreground mb-2 font-semibold\",\"children\":\"What counts as a chat session?\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground text-sm\",\"children\":\"A session is one visitor's continuous conversation with your chatbot. We count by visitor, not by individual messages — so a customer asking 20 follow-up questions counts as 1 session, not 20. Sessions reset after 30 minutes of idle time.\"}]]}],[\"$\",\"div\",\"Can I change plans at any time?\",{\"className\":\"border-border border-b pb-4\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-foreground mb-2 font-semibold\",\"children\":\"Can I change plans at any time?\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground text-sm\",\"children\":\"Yes. Upgrade or downgrade from Settings → Billing. Upgrades are pro-rated immediately. Downgrades take effect at the end of your current billing cycle.\"}]]}],[\"$\",\"div\",\"What are MCP tool integrations?\",{\"className\":\"border-border border-b pb-4\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-foreground mb-2 font-semibold\",\"children\":\"What are MCP tool integrations?\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground text-sm\",\"children\":\"MCP (Model Context Protocol) lets your AI agent call external tools — HubSpot, Slack, calendars, your own APIs — during conversations. Turns a chatbot into a business assistant that can actually take action.\"}]]}],[\"$\",\"div\",\"Is there a free trial?\",{\"className\":\"border-border border-b pb-4\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-foreground mb-2 font-semibold\",\"children\":\"Is there a free trial?\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground text-sm\",\"children\":\"Yes. The Free plan is forever-free (1 chatbot, 50 chat sessions / month). Starter includes a 14-day free trial — cancel anytime before it ends to avoid charges.\"}]]}],[\"$\",\"div\",\"Will my price change when you add Outbound or Marketing agents?\",{\"className\":\"border-border border-b pb-4\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-foreground mb-2 font-semibold\",\"children\":\"Will my price change when you add Outbound or Marketing agents?\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground text-sm\",\"children\":\"No. Existing customers keep their current tier price forever, even when we introduce new tiers above. New customers may pay new prices, but you won't.\"}]]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"48:[\"$\",\"path\",\"1gmf2c\",{\"d\":\"M20 6 9 17l-5-5\"}]\n49:[\"$\",\"td\",null,{\"className\":\"text-muted-foreground px-4 py-3\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-2\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-x text-muted-foreground h-4 w-4 shrink-0\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1bl5f8\",{\"d\":\"M18 6 6 18\"}],[\"$\",\"path\",\"d8bk6v\",{\"d\":\"m6 6 12 12\"}],\"$undefined\"]}],\"Not available\"]}]}]\n12:null\n"])</script>
1<script>self.__next_f.push([1,"16:[[\"$\",\"title\",\"0\",{\"children\":\"Pricing — ChatOtter\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"The AI chatbot that physically can't make things up about your business. Start free with a knowledge-base-grounded chatbot. Add multi-agent workflows and MCP tool integrations as you grow.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"ChatOtter AI\"}],[\"$\",\"meta\",\"3\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://app.chatotter.ai/pricing\"}],[\"$\",\"link\",\"5\",{\"rel\":\"alternate\",\"hrefLang\":\"en\",\"href\":\"https://app.chatotter.ai/pricing\"}],[\"$\",\"link\",\"6\",{\"rel\":\"alternate\",\"hrefLang\":\"vi\",\"href\":\"https://app.chatotter.ai/vi/pricing\"}],[\"$\",\"link\",\"7\",{\"rel\":\"alternate\",\"hrefLang\":\"x-default\",\"href\":\"https://app.chatotter.ai/pricing\"}],[\"$\",\"meta\",\"8\",{\"name\":\"zalo-platform-site-verification\",\"content\":\"ClAL0_7w8oC3qfKcsUKxV5ELco6_uqvuDJ8p\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:title\",\"content\":\"ChatOtter — AI Agent Orchestration Platform\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:description\",\"content\":\"ChatOtter automates your outbound, inbound, and recruiting workflows with AI-powered agents. Connect your tools, deploy agents, and scale your operations.\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:url\",\"content\":\"https://app.chatotter.ai\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:site_name\",\"content\":\"ChatOtter AI\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image\",\"content\":\"https://app.chatotter.ai/api/og?title=ChatOtter%20%E2%80%94%20AI%20Agent%20Orchestration%20Platform\u0026description=ChatOtter%20automates%20your%20outbound%2C%20inbound%2C%20and%20recruiting%20workflows%20with%20AI-powered%20agents.%20Connect%20your%20tools%2C%20deploy%20agents%2C%20and%20scale%20your%20operations.\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:image:alt\",\"content\":\"ChatOtter — AI Agent Orchestration Platform\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:title\",\"content\":\"ChatOtter — AI Agent Orchestration Platform\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:description\",\"content\":\"ChatOtter automates your outbound, inbound, and recruiting workflows with AI-powered agents. Connect your tools, deploy agents, and scale your operations.\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:image\",\"content\":\"https://app.chatotter.ai/api/og?title=ChatOtter%20%E2%80%94%20AI%20Agent%20Orchestration%20Platform\u0026description=ChatOtter%20automates%20your%20outbound%2C%20inbound%2C%20and%20recruiting%20workflows%20with%20AI-powered%20agents.%20Connect%20your%20tools%2C%20deploy%20agents%2C%20and%20scale%20your%20operations.\"}],[\"$\",\"link\",\"21\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"sizes\":\"any\"}],[\"$\",\"link\",\"22\",{\"rel\":\"icon\",\"href\":\"/images/favicon/favicon-16x16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\"}],[\"$\",\"link\",\"23\",{\"rel\":\"icon\",\"href\":\"/images/favicon/favicon-32x32.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}],[\"$\",\"link\",\"24\",{\"rel\":\"icon\",\"href\":\"/images/favicon/android-chrome-192x192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"link\",\"25\",{\"rel\":\"icon\",\"href\":\"/images/favicon/android-chrome-512x512.png\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],[\"$\",\"link\",\"26\",{\"rel\":\"apple-touch-icon\",\"href\":\"/images/favicon/apple-touch-icon.png\"}],[\"$\",\"link\",\"27\",{\"rel\":\"manifest\",\"href\":\"/images/favicon/site.webmanifest\"}],[\"$\",\"$L4a\",\"28\",{}]]\n"])</script>
1</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.