From 01011ac9510985cd6245fc1e20ba866e89308beb Mon Sep 17 00:00:00 2001 From: Devon White Date: Thu, 18 Dec 2025 12:42:04 -0500 Subject: [PATCH 1/5] Initial rough draft --- .../main/home/overview/getting-started.mdx | 407 ++++++++++++++++++ website/docs/main/home/overview/homepage.mdx | 15 +- .../docs/main/home/platform/sdks-overview.mdx | 5 +- 3 files changed, 422 insertions(+), 5 deletions(-) create mode 100644 website/docs/main/home/overview/getting-started.mdx diff --git a/website/docs/main/home/overview/getting-started.mdx b/website/docs/main/home/overview/getting-started.mdx new file mode 100644 index 000000000..effcfad8d --- /dev/null +++ b/website/docs/main/home/overview/getting-started.mdx @@ -0,0 +1,407 @@ +--- +slug: /getting-started +title: Getting Started with SignalWire +description: Learn what SignalWire is, understand the core concepts, and find the right path for your project. +sidebar_position: 2 +--- + +import { FaServer, FaRobot, FaCloud, FaExchangeAlt, FaPhone, FaVideo, FaComments, FaFax } from "react-icons/fa"; +import { MdWeb, MdCode, MdMessage } from "react-icons/md"; +import { SiPython } from "react-icons/si"; + +# Getting Started with SignalWire + +Welcome! Whether you're building your first communications app or migrating from another provider, this guide will help you understand SignalWire and get you building quickly. + +--- + +## What is SignalWire? + +SignalWire is a programmable unified communications platform that lets you add voice calling, video, messaging, and AI to your applications. We handle the complex telecom infrastructure so you can focus on building great experiences for your users. + +With SignalWire, you can: +- **Make and receive phone calls** programmatically or through your own interfaces +- **Send and receive SMS/MMS** messages at scale +- **Build video conferencing** directly into your apps +- **Create AI-powered voice agents** that handle phone calls autonomously +- **Build IVR systems** (phone menus) and call routing logic + +Everything runs on SignalWire's cloud infrastructure, so there's no telecom equipment to manage. + +--- + +## Product Offerings + +SignalWire provides several ways to build, depending on your needs and how you prefer to work. + + + } + > + A simple markup language (JSON/YAML) for defining call flows. Respond to webhooks or host scripts directly in your Dashboard. + + } + > + Node.js SDK with persistent WebSocket connections for real-time control over calls, messages, and video. + + } + > + JavaScript SDK for building WebRTC voice, video, and chat experiences directly in the browser. + + } + > + Python framework for building AI-powered voice agents with LLM integration and custom functions. + + } + > + Visual drag-and-drop interface for building call handling logic without writing code. + + } + > + Twilio-compatible REST API and cXML for easy migration from other providers. + + + +--- + +## Your SignalWire Space + +When you [create a SignalWire account](https://signalwire.com/signup), you get access to your **Space** - that's your [Dashboard](https://my.signalwire.com) where you manage everything. + +Your Space is where you'll: +- Buy and configure phone numbers +- Create and manage your applications +- View call logs and analytics +- Access your API credentials +- Set up AI agents, call flows, and more + +Think of your Space as your home base for everything SignalWire. + +--- + +## Core Concepts + +Before you start building, it helps to understand a few key concepts. + +### Communication Channels + +SignalWire supports multiple communication channels: + + + }> + Phone calls, IVRs, recording, conferencing + + }> + Video rooms, screen sharing, recordings + + }> + SMS and MMS text messages + + }> + Real-time chat for web and mobile apps + + }> + Intelligent voice agents powered by LLMs + + }> + Send and receive faxes programmatically + + + +Most channels can work over different **transports** depending on how you want to connect: + +| Transport | What it is | Common uses | +|-----------|-----------|-------------| +| **PSTN** | The traditional phone network | Calling regular phone numbers, receiving calls from landlines and cell phones | +| **SIP** | Voice over IP protocol | Connecting PBX systems, desk phones, softphones, and VoIP carriers | +| **WebRTC** | Browser-based real-time communication | In-app calling, video conferencing, browser-based contact centers | + +For example, a voice call could come in via PSTN (someone dialing your number), SIP (from a desk phone), or WebRTC (from your web app) - and SignalWire handles all three. + +### Phone Numbers + +To make or receive calls and messages through the phone network, you'll need SignalWire phone numbers. You can buy local numbers, toll-free numbers, or short codes directly from your Dashboard. + +Each number can be configured to handle incoming calls and messages differently - whether that's forwarding to another number, running a script, connecting to an AI agent, or triggering your own application. + + + How to buy, configure, and manage your numbers + + +### Resources + +In SignalWire, a **Resource** is anything that can handle communications - an AI agent, a script, a SIP connection, or your own application. When a call or message comes in, you tell SignalWire which Resource should handle it. + +Common resource types include: +- **SWML Scripts** - Simple JSON/YAML instructions hosted in your Dashboard +- **AI Agents** - Conversational AI that handles calls autonomously +- **Call Flows** - Visual drag-and-drop call routing +- **Relay Applications** - Your own server applications connected via WebSocket + + + Understanding the different resource types + + +### Addresses + +Every Resource has an **Address** - a unique identifier that lets you target and interact with it. Think of addresses as the "phone number" for any resource, not just actual phone numbers. + +Addresses can be: +- **Phone numbers** - Traditional numbers like `+14155551234` for PSTN calls +- **SIP addresses** - For VoIP connections like `sip:user@domain.com` +- **Aliases** - Custom names like `/support-queue` or `/main-conference` that are easy to remember + +A single Resource can have multiple addresses, and you can change them anytime. For example, you might point both a phone number and a custom alias to the same AI agent. + + + How addressing works in SignalWire + + +### Subscribers + +**Subscribers** are end users who authenticate with SignalWire to make and receive calls. If you're building something like a contact center, business phone system, or video conferencing app, your users become Subscribers. + +SignalWire manages these users for you. You create, update, and delete them through our REST APIs, and each Subscriber gets: +- **Authentication** - Secure credentials and tokens for logging in +- **A callable address** - They can be reached directly at `/private/username` +- **Multi-device support** - They can answer calls from a browser, mobile app, or desk phone + +This means you don't have to build user management, authentication, or device registration yourself - SignalWire handles it. + + + User management and authentication + + + +--- + +## Ready to Start Building? + +Now that you understand the basics, let's figure out the best way for you to build. The right approach depends on what you're creating and how you prefer to work. + +### What are you trying to build? + + + + +**You want voice, video, or chat directly in a web browser or mobile app.** + +This is common for: +- Click-to-call buttons on websites +- In-app voice or video calling +- Browser-based contact centers +- Video conferencing applications + +#### Your best options: + +**[Browser SDK](/sdks/browser-sdk)** - Our JavaScript SDK for building custom WebRTC experiences. You get full control over the UI and user experience. Best when you need video conferencing, custom calling interfaces, or real-time chat. + +**[Click-to-Call](/tools/c2c)** - A pre-built widget you can drop onto any website. Users click a button and call you directly from their browser. Minimal code required - great for adding a "call us" button quickly. + + + Build voice, video, and chat in the browser + + + + + +**You're building a backend service that handles calls or messages.** + +This is common for: +- IVR systems and phone menus +- Automated call routing +- SMS notifications and two-factor auth +- Call centers and support systems +- AI voice agents + +#### First question: Do you need real-time control? + +**If you need simple call handling** (IVRs, call forwarding, playing messages), use **[SWML](/swml)**. Your server responds to webhooks with JSON/YAML instructions. It's stateless, works with any programming language, and is the simplest approach for most use cases. + +**If you need real-time control** (live call monitoring, mid-call transfers, complex orchestration), use the **[Realtime SDK](/sdks/realtime-sdk)**. It maintains a persistent WebSocket connection for instant, bi-directional communication. Best for applications that need to react to events as they happen. + +**If you're building AI voice agents**, use the **[Agents SDK](/sdks/agents-sdk)**. It's a Python framework specifically designed for creating conversational AI that handles phone calls. It handles the complexity of integrating with LLMs and managing conversations. + + + + HTTP webhooks, any language + + + WebSocket, Node.js + + + AI voice agents, Python + + + + + + +**You want to build without writing much (or any) code.** + +This is common for: +- Quick prototypes +- Simple IVR systems +- Small businesses needing basic call handling +- Testing ideas before building full applications + +#### Your best options: + +**[Call Flow Builder](/call-flow-builder)** - A visual, drag-and-drop interface for building call handling logic. No code required. You connect nodes to define what happens when someone calls - play a message, gather input, route to different people, etc. + +**[SWML Scripts](/swml)** - Write simple JSON or YAML scripts directly in your Dashboard. It's not quite "no code" but it's very low code, and you don't need to run any servers. SignalWire hosts the scripts for you. + +**[AI Agent](/ai/get-started)** - Configure a conversational AI agent through your Dashboard. Set up prompts, choose a voice, and connect it to a phone number. The AI handles conversations autonomously. + + + + Visual drag-and-drop + + + Simple JSON/YAML + + + Dashboard AI setup + + + +#### Quick start for no-code: + +1. **Buy a phone number** - Go to Phone Numbers in your Dashboard +2. **Create a Call Flow** - Use Call Flow Builder to design what happens when someone calls +3. **Assign it to your number** - Edit the number settings and select your Call Flow +4. **Call your number** - Test it out! + + + Step-by-step walkthrough with screenshots + + + + + +**You want to build an AI-powered voice agent that handles phone calls.** + +This is common for: +- Automated customer service +- Appointment scheduling and reminders +- FAQ bots and information lines +- Lead qualification and surveys +- Virtual receptionists + +#### Your best options: + +**[Agents SDK](/sdks/agents-sdk)** - A Python framework for building sophisticated AI voice agents. You get full control over prompts, custom functions (SWAIG), conversation flow, and LLM integration. Best for complex agents that need to perform actions like booking appointments, looking up data, or integrating with your systems. + +**[AI Agent (Dashboard)](/ai/get-started)** - Configure an AI agent directly in your Dashboard without writing code. Set up prompts, choose a voice, add functions, and connect it to a phone number. Great for getting started quickly or simpler use cases. + +**[SWML with AI](/swml/methods/ai)** - Add AI capabilities to your SWML scripts using the `ai` method. Good when you want AI as part of a larger call flow that includes other logic. + + + + Python, full control + + + No-code setup + + + AI in call flows + + + +#### Quick start with Agents SDK: + +```bash +pip install signalwire-agents +``` + +```python +from signalwire_agents import AgentBase + +class MyAgent(AgentBase): + def __init__(self): + super().__init__(name="Assistant", route="/agent") + self.prompt_add_section("main", body="You are a helpful assistant for Acme Corp.") + +agent = MyAgent() +agent.serve() +``` + + + Build your first AI voice agent + + + + + +**You have an existing Twilio application and want to move to SignalWire.** + +Good news: SignalWire's **[Compatibility API](/compatibility-api)** is designed as a drop-in replacement. In most cases, you can switch by changing a few lines of code. + +#### What's compatible: + +| Twilio | SignalWire | +|--------|------------| +| TwiML | [cXML](/compatibility-api/cxml) (same syntax) | +| REST API | [Compatibility REST API](/rest/compatibility-api/overview) | +| Helper Libraries | [Compatibility SDKs](/compatibility-api/sdks) (Node, Python, Ruby, C#) | +| Account SID | Project ID | +| Auth Token | API Token | + +#### Migration steps: + +1. **Create a SignalWire account** at [signalwire.com/signup](https://signalwire.com/signup) +2. **Get your credentials** from Dashboard > API > API Tokens +3. **Update your code** to use SignalWire's SDK and credentials +4. **Update webhook URLs** if needed (cXML syntax is identical to TwiML) +5. **Buy or port phone numbers** to SignalWire +6. **Test** your application + +```javascript +// Change from this (Twilio) +const twilio = require("twilio"); +const client = twilio(ACCOUNT_SID, AUTH_TOKEN); + +// To this (SignalWire) +const { RestClient } = require("@signalwire/compatibility-api"); +const client = RestClient(PROJECT_ID, API_TOKEN, { + signalwireSpaceUrl: "your-space.signalwire.com" +}); +``` + + + Complete migration documentation + + + + + +--- + +## Next Steps + +Once you've chosen your path, here are some resources to help you along the way: + +- **[Discord Community](https://discord.com/invite/F2WNYTNjuF)** - Join 8,000+ developers. Great for questions and sharing what you're building. +- **[GitHub](https://github.com/signalwire/)** - Example code, SDKs, and open source tools. +- **[API Reference](/rest)** - Detailed documentation for all our APIs. + +If you get stuck or have questions, our support team is here to help at [support@signalwire.com](mailto:support@signalwire.com). + +Happy building! diff --git a/website/docs/main/home/overview/homepage.mdx b/website/docs/main/home/overview/homepage.mdx index f92f943ed..c737c0504 100644 --- a/website/docs/main/home/overview/homepage.mdx +++ b/website/docs/main/home/overview/homepage.mdx @@ -9,7 +9,7 @@ import UseCases from "./_usecases/_useCases.mdx"; import Admonition from '@theme/Admonition'; import ProductButtons from "./_products.mdx" import Tools from "./_tools.mdx" -import { FaGithub, FaDiscord, FaRobot } from "react-icons/fa"; +import { FaGithub, FaDiscord, FaRobot, FaRocket } from "react-icons/fa"; import { MdBuild } from "react-icons/md"; @@ -34,15 +34,22 @@ import Sigmond from "@site/src/components/Sigmond"
- - + } + href="/getting-started" + > + Find your path: server, browser, serverless, no-code, or migrating from Twilio. + + } > Talk to Sigmond! He is a helpful assistant that can answer questions and help you get started, and he's built using SignalWire APIs. - } href="https://signalwire.com/signup" diff --git a/website/docs/main/home/platform/sdks-overview.mdx b/website/docs/main/home/platform/sdks-overview.mdx index ec22a4298..e409447a8 100644 --- a/website/docs/main/home/platform/sdks-overview.mdx +++ b/website/docs/main/home/platform/sdks-overview.mdx @@ -9,8 +9,11 @@ import { MdWeb } from "react-icons/md" import { FaRobot } from "react-icons/fa" import { LuCodeXml } from "react-icons/lu" -SignalWire offers a range of SDKs to help you build applications using the SignalWire platform. +SignalWire offers a range of SDKs to help you build applications using the SignalWire platform. +:::tip New to SignalWire? +Check out our [Getting Started Guide](/getting-started) to find the right SDK and development approach for your project. +::: Date: Fri, 19 Dec 2025 09:10:20 -0500 Subject: [PATCH 2/5] Various edits, commented out dashboard recommendation in AI section --- .../main/home/overview/getting-started.mdx | 184 ++++++++++-------- 1 file changed, 108 insertions(+), 76 deletions(-) diff --git a/website/docs/main/home/overview/getting-started.mdx b/website/docs/main/home/overview/getting-started.mdx index effcfad8d..a2b5a40c3 100644 --- a/website/docs/main/home/overview/getting-started.mdx +++ b/website/docs/main/home/overview/getting-started.mdx @@ -11,13 +11,14 @@ import { SiPython } from "react-icons/si"; # Getting Started with SignalWire -Welcome! Whether you're building your first communications app or migrating from another provider, this guide will help you understand SignalWire and get you building quickly. +Whether you're building your first communications app or migrating from another provider, this guide will help you understand SignalWire and get you building quickly. --- ## What is SignalWire? -SignalWire is a programmable unified communications platform that lets you add voice calling, video, messaging, and AI to your applications. We handle the complex telecom infrastructure so you can focus on building great experiences for your users. +SignalWire is a programmable unified communications platform that lets you add voice calling, video, messaging, and AI to your applications. +We handle the complex telecom infrastructure for you so you have more time to focus on building great experiences for your users. With SignalWire, you can: - **Make and receive phone calls** programmatically or through your own interfaces @@ -32,7 +33,7 @@ Everything runs on SignalWire's cloud infrastructure, so there's no telecom equi ## Product Offerings -SignalWire provides several ways to build, depending on your needs and how you prefer to work. +SignalWire provides numerous ways to build, depending on your needs and how you prefer to work. }> @@ -133,11 +133,12 @@ Most channels can work over different **transports** depending on how you want t | **SIP** | Voice over IP protocol | Connecting PBX systems, desk phones, softphones, and VoIP carriers | | **WebRTC** | Browser-based real-time communication | In-app calling, video conferencing, browser-based contact centers | -For example, a voice call could come in via PSTN (someone dialing your number), SIP (from a desk phone), or WebRTC (from your web app) - and SignalWire handles all three. +For example, a voice call could come in via PSTN (someone dialing your number), SIP (from a desk phone), or WebRTC (from your web app) - and SignalWire will handle all three. ### Phone Numbers -To make or receive calls and messages through the phone network, you'll need SignalWire phone numbers. You can buy local numbers, toll-free numbers, or short codes directly from your Dashboard. +To make or receive calls and messages through the phone network, you'll need SignalWire phone numbers. +You can buy local numbers, toll-free numbers, or short codes directly from your Dashboard. Each number can be configured to handle incoming calls and messages differently - whether that's forwarding to another number, running a script, connecting to an AI agent, or triggering your own application. @@ -145,9 +146,12 @@ Each number can be configured to handle incoming calls and messages differently How to buy, configure, and manage your numbers +We also offer the option of purchasing phone numbers programmatically via our [Purchase a Phone Number](rest/signalwire-rest/endpoints/space/purchase-phone-number) API Endpoint. + ### Resources -In SignalWire, a **Resource** is anything that can handle communications - an AI agent, a script, a SIP connection, or your own application. When a call or message comes in, you tell SignalWire which Resource should handle it. +In SignalWire, a **Resource** is anything that can handle communications - an AI agent, a script, a SIP connection, or your own application. +When a call or message comes in, you tell SignalWire which Resource should handle it. Common resource types include: - **SWML Scripts** - Simple JSON/YAML instructions hosted in your Dashboard @@ -161,14 +165,17 @@ Common resource types include: ### Addresses -Every Resource has an **Address** - a unique identifier that lets you target and interact with it. Think of addresses as the "phone number" for any resource, not just actual phone numbers. +Every Resource has an **Address**. +This is a unique identifier that lets you target and interact with it. +Think of addresses as the **phone number** for any resource, but broader in scope. Addresses can be: - **Phone numbers** - Traditional numbers like `+14155551234` for PSTN calls - **SIP addresses** - For VoIP connections like `sip:user@domain.com` - **Aliases** - Custom names like `/support-queue` or `/main-conference` that are easy to remember -A single Resource can have multiple addresses, and you can change them anytime. For example, you might point both a phone number and a custom alias to the same AI agent. +A single Resource can have multiple addresses, and you can change them anytime. +For example, you might point both a phone number and a custom alias to the same AI agent. How addressing works in SignalWire @@ -176,7 +183,8 @@ A single Resource can have multiple addresses, and you can change them anytime. ### Subscribers -**Subscribers** are end users who authenticate with SignalWire to make and receive calls. If you're building something like a contact center, business phone system, or video conferencing app, your users become Subscribers. +**Subscribers** are end users who authenticate with SignalWire to make and receive calls. +If you're building a contact center, business phone system, or video conferencing app for example, your users become Subscribers. SignalWire manages these users for you. You create, update, and delete them through our REST APIs, and each Subscriber gets: - **Authentication** - Secure credentials and tokens for logging in @@ -194,11 +202,78 @@ This means you don't have to build user management, authentication, or device re ## Ready to Start Building? -Now that you understand the basics, let's figure out the best way for you to build. The right approach depends on what you're creating and how you prefer to work. +Now that you understand the basics, let's figure out the best way for you to build. +The right approach depends on what you're creating and how you prefer to work. ### What are you trying to build? + + +**You want to build an AI-powered voice agent that handles phone calls.** + +This is common for: +- Automated customer service +- Appointment scheduling and reminders +- FAQ bots and information lines +- Lead qualification and surveys +- Virtual receptionists + +#### Your best options: + +**[Agents SDK](/sdks/agents-sdk)** - A Python framework for building sophisticated AI voice agents. +You get full control over prompts, custom functions (SWAIG) dedicated to AI, customizeable conversation flow, and seamless LLM integration. +Best for complex agents that need to perform actions like booking appointments, looking up data, or integrating with your systems. + +{/* +**[AI Agent (Dashboard)](/ai/get-started)** - Configure an AI agent directly in your Dashboard without writing code. +Set up prompts, choose a voice, add functions, and connect it to a phone number. +Great for getting started quickly or simpler use cases. + +NOTE: Commenting this out as we need to have a discussion on if this should be recommended to users. +It's extremely buggy, and I'm pretty sure is out of date. +*/} + +**[SWML with AI](/swml/methods/ai)** - Add AI capabilities to your SWML scripts using the `ai` method. +Good when you want AI as part of a larger call flow that includes other logic. + + + + Python, full control + + + {/* + No-code setup + */} + + + AI in call flows + + + +#### Quick start with Agents SDK: + +```bash +pip install signalwire-agents +``` + +```python +from signalwire_agents import AgentBase + +class MyAgent(AgentBase): + def __init__(self): + super().__init__(name="Assistant", route="/agent") + self.prompt_add_section("main", body="You are a helpful assistant for Acme Corp.") + +agent = MyAgent() +agent.serve() +``` + + + Build your first AI voice agent + + + **You want voice, video, or chat directly in a web browser or mobile app.** @@ -211,9 +286,11 @@ This is common for: #### Your best options: -**[Browser SDK](/sdks/browser-sdk)** - Our JavaScript SDK for building custom WebRTC experiences. You get full control over the UI and user experience. Best when you need video conferencing, custom calling interfaces, or real-time chat. +**[Browser SDK](/sdks/browser-sdk)** - Our JavaScript SDK for building custom WebRTC experiences. +You get full control over the UI and user experience. Best when you need video conferencing, custom calling interfaces, or real-time chat. -**[Click-to-Call](/tools/c2c)** - A pre-built widget you can drop onto any website. Users click a button and call you directly from their browser. Minimal code required - great for adding a "call us" button quickly. +**[Click-to-Call](/tools/c2c)** - A pre-built widget you can drop onto any website. +Users click a button and call you directly from their browser. Minimal code required - great for adding a "call us" button quickly. Build voice, video, and chat in the browser @@ -233,11 +310,16 @@ This is common for: #### First question: Do you need real-time control? -**If you need simple call handling** (IVRs, call forwarding, playing messages), use **[SWML](/swml)**. Your server responds to webhooks with JSON/YAML instructions. It's stateless, works with any programming language, and is the simplest approach for most use cases. +**If you need simple call handling** (IVRs, call forwarding, playing messages), use **[SWML](/swml)**. +Your server responds to webhooks with JSON/YAML instructions. It's stateless, works with any programming language, and is the simplest approach for most use cases. -**If you need real-time control** (live call monitoring, mid-call transfers, complex orchestration), use the **[Realtime SDK](/sdks/realtime-sdk)**. It maintains a persistent WebSocket connection for instant, bi-directional communication. Best for applications that need to react to events as they happen. +**If you need real-time control** (live call monitoring, mid-call transfers, complex orchestration), use the **[Realtime SDK](/sdks/realtime-sdk)**. +It maintains a persistent WebSocket connection for instant, bi-directional communication. +Best for applications that need to react to events as they happen. -**If you're building AI voice agents**, use the **[Agents SDK](/sdks/agents-sdk)**. It's a Python framework specifically designed for creating conversational AI that handles phone calls. It handles the complexity of integrating with LLMs and managing conversations. +**If you're building AI voice agents**, use the **[Agents SDK](/sdks/agents-sdk)**. +It's a Python framework specifically designed for creating conversational AI that handles phone calls. +It handles the complexity of integrating with LLMs and managing conversations. @@ -264,11 +346,14 @@ This is common for: #### Your best options: -**[Call Flow Builder](/call-flow-builder)** - A visual, drag-and-drop interface for building call handling logic. No code required. You connect nodes to define what happens when someone calls - play a message, gather input, route to different people, etc. +**[Call Flow Builder](/call-flow-builder)** - A visual, drag-and-drop interface for building call handling logic. No code required. +You connect nodes to define what happens when someone calls - play a message, gather input, route to different people, etc. -**[SWML Scripts](/swml)** - Write simple JSON or YAML scripts directly in your Dashboard. It's not quite "no code" but it's very low code, and you don't need to run any servers. SignalWire hosts the scripts for you. +**[SWML Scripts](/swml)** - Write simple JSON or YAML scripts directly in your Dashboard. +It's not quite "no code" but it's very low code, and you don't need to run any servers. SignalWire hosts the scripts for you. -**[AI Agent](/ai/get-started)** - Configure a conversational AI agent through your Dashboard. Set up prompts, choose a voice, and connect it to a phone number. The AI handles conversations autonomously. +**[AI Agent](/ai/get-started)** - Configure a conversational AI agent through your Dashboard. Set up prompts, choose a voice, and connect it to a phone number. +The AI handles conversations autonomously. @@ -293,66 +378,13 @@ This is common for: Step-by-step walkthrough with screenshots - - - -**You want to build an AI-powered voice agent that handles phone calls.** - -This is common for: -- Automated customer service -- Appointment scheduling and reminders -- FAQ bots and information lines -- Lead qualification and surveys -- Virtual receptionists - -#### Your best options: - -**[Agents SDK](/sdks/agents-sdk)** - A Python framework for building sophisticated AI voice agents. You get full control over prompts, custom functions (SWAIG), conversation flow, and LLM integration. Best for complex agents that need to perform actions like booking appointments, looking up data, or integrating with your systems. - -**[AI Agent (Dashboard)](/ai/get-started)** - Configure an AI agent directly in your Dashboard without writing code. Set up prompts, choose a voice, add functions, and connect it to a phone number. Great for getting started quickly or simpler use cases. - -**[SWML with AI](/swml/methods/ai)** - Add AI capabilities to your SWML scripts using the `ai` method. Good when you want AI as part of a larger call flow that includes other logic. - - - - Python, full control - - - No-code setup - - - AI in call flows - - - -#### Quick start with Agents SDK: - -```bash -pip install signalwire-agents -``` - -```python -from signalwire_agents import AgentBase - -class MyAgent(AgentBase): - def __init__(self): - super().__init__(name="Assistant", route="/agent") - self.prompt_add_section("main", body="You are a helpful assistant for Acme Corp.") - -agent = MyAgent() -agent.serve() -``` - - - Build your first AI voice agent - - **You have an existing Twilio application and want to move to SignalWire.** -Good news: SignalWire's **[Compatibility API](/compatibility-api)** is designed as a drop-in replacement. In most cases, you can switch by changing a few lines of code. +Good news, SignalWire's **[Compatibility API](/compatibility-api)** is designed as a drop-in replacement. +In most cases, you can switch by changing a few lines of code. #### What's compatible: From 1408a26aa12dbc239e42d0286898e52a8e3d7d0e Mon Sep 17 00:00:00 2001 From: manny-r31 Date: Fri, 19 Dec 2025 10:36:29 -0500 Subject: [PATCH 3/5] readded AI Agent dashboard references --- website/docs/main/home/overview/getting-started.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/website/docs/main/home/overview/getting-started.mdx b/website/docs/main/home/overview/getting-started.mdx index a2b5a40c3..fff39fa4f 100644 --- a/website/docs/main/home/overview/getting-started.mdx +++ b/website/docs/main/home/overview/getting-started.mdx @@ -225,14 +225,14 @@ This is common for: You get full control over prompts, custom functions (SWAIG) dedicated to AI, customizeable conversation flow, and seamless LLM integration. Best for complex agents that need to perform actions like booking appointments, looking up data, or integrating with your systems. -{/* + **[AI Agent (Dashboard)](/ai/get-started)** - Configure an AI agent directly in your Dashboard without writing code. Set up prompts, choose a voice, add functions, and connect it to a phone number. Great for getting started quickly or simpler use cases. NOTE: Commenting this out as we need to have a discussion on if this should be recommended to users. It's extremely buggy, and I'm pretty sure is out of date. -*/} + **[SWML with AI](/swml/methods/ai)** - Add AI capabilities to your SWML scripts using the `ai` method. Good when you want AI as part of a larger call flow that includes other logic. @@ -242,9 +242,9 @@ Good when you want AI as part of a larger call flow that includes other logic. Python, full control - {/* + No-code setup - */} + AI in call flows From 6eb3bc6bd511172dc84f3b991e21db10fd300ce8 Mon Sep 17 00:00:00 2001 From: ALR Date: Wed, 24 Dec 2025 00:15:10 +0000 Subject: [PATCH 4/5] fix link --- website/docs/main/home/overview/getting-started.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/main/home/overview/getting-started.mdx b/website/docs/main/home/overview/getting-started.mdx index fff39fa4f..dda02880b 100644 --- a/website/docs/main/home/overview/getting-started.mdx +++ b/website/docs/main/home/overview/getting-started.mdx @@ -269,7 +269,7 @@ agent = MyAgent() agent.serve() ``` - + Build your first AI voice agent From 93d0311e238093cfb7f54c85ca196f0f870a1a1a Mon Sep 17 00:00:00 2001 From: august Date: Sun, 28 Dec 2025 14:55:35 -0500 Subject: [PATCH 5/5] fix link --- website/docs/main/home/overview/getting-started.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/main/home/overview/getting-started.mdx b/website/docs/main/home/overview/getting-started.mdx index dda02880b..ce45c6c18 100644 --- a/website/docs/main/home/overview/getting-started.mdx +++ b/website/docs/main/home/overview/getting-started.mdx @@ -269,7 +269,7 @@ agent = MyAgent() agent.serve() ``` - + Build your first AI voice agent