This directory contains examples and guides for building AI-powered business workflows with the WIIL Python SDK.
-
WIIL Platform Account
- Sign up at https://console.wiil.io
- Complete email verification
-
API Key
- Navigate to Settings -> API Keys in the WIIL Console
- Generate and securely store your API key
-
Python Environment
- Python 3.8 or higher
- A virtual environment is recommended
pip install wiil-pythonCreate a .env file or export the variable in your shell:
WIIL_API_KEY=your-api-key-hereNever commit API keys or .env files to version control.
File: dynamic-agent-setup-guide.md
The fastest path to deploy phone or web agents. Use this when you want the platform to provision the required agent, instruction, deployment, and channel pieces for you.
import os
from wiil import WiilClient
from wiil.models.service_mgt.dynamic_setup import DynamicPhoneAgentSetup
from wiil.types import BusinessSupportServices
client = WiilClient(api_key=os.environ["WIIL_API_KEY"])
result = client.dynamic_phone_agent.create(
DynamicPhoneAgentSetup(
assistant_name="Sarah",
capabilities=[BusinessSupportServices.APPOINTMENT_MANAGEMENT],
)
)
print("Phone number:", result.phone_number)File: fundamental-configuration-setup.md
Use the fundamental setup guide when you need fine-grained control over instructions, support models, agent configurations, deployment channels, and deployment configurations.
Setup steps:
- Initialize the client and verify organization access
- Create or select a project
- Create an instruction configuration
- Select a support model
- Create an agent configuration
- Create a deployment channel
- Create a deployment configuration
- Deploy and verify
Read the Fundamental Configuration Guide
File: outbound-communications-guide.md
Build notification workflows across SMS, email, and AI-powered outbound calls without managing provider integrations directly.
File: messaging-guide.md
Send your first SMS, email, and outbound call:
from wiil.models.conversation import CreateSmsRequest
sms = client.outbound_sms.create(
CreateSmsRequest(
to="+12125551234",
from_number="+12125559999",
body="Your appointment is confirmed for tomorrow at 3 PM.",
)
)Directory: business-services/
| Guide | What You Build |
|---|---|
| Services & Appointments | Bookable services and appointment scheduling |
| Menus & Orders | Restaurant menus, item variants, modifiers, and orders |
| Products & Orders | Product catalogs, variants, pricing, and product orders |
| Reservations | Reservable tables, rooms, rentals, and booking flows |
| Property Management | Property listings, inquiries, and lead tracking |
Directory: channels/
| Guide | What You Build |
|---|---|
| Channel Overview | Channel concepts and setup flow |
| Understanding Channels | Channel types and architecture |
| Web Channels | Web chat widget deployment |
| Voice Channels | Phone call handling |
| SMS Channels | Text messaging channels |
| Phone Purchase | Phone number provisioning |
| Troubleshooting | Common channel issues |
Directory: service-mgt/
| Guide | What You Configure |
|---|---|
| Agent Configs | Agent identity, services, and model selection |
| Instruction Configs | Agent role, instructions, and guardrails |
| Deployment Channels | Web, voice, SMS, and email channels |
| Deployment Configs | Live deployment bindings |
| Provisioning Configs | STT/TTS voice chains |
| Knowledge Sources | Agent knowledge bases |
| Support Models | Available AI, STT, and TTS models |
| Telephony Provider | Phone number/provider operations |
| Translation Sessions | Real-time translation sessions |
Organization
-> Project
-> Instruction Configuration
-> Support Model
-> Agent Configuration
-> Deployment Channel
-> Deployment Configuration
-> Live Agent
Dynamic setup creates much of this chain for you. Fundamental setup exposes each step directly.
from wiil.errors import WiilAPIError, WiilNetworkError, WiilValidationError
try:
result = client.deployment_configs.create(payload)
except WiilValidationError as exc:
print("Invalid input:", exc.details)
except WiilAPIError as exc:
print(f"API error {exc.status_code}:", exc.message)
except WiilNetworkError:
print("Network error. Check connectivity and retry.")The WIIL Python SDK is intended for server-side use. Never expose your API key in browser or mobile client code.
import os
from wiil import WiilClient
client = WiilClient(api_key=os.environ["WIIL_API_KEY"])- Documentation: https://docs.wiil.io
- API Reference: https://docs.wiil.io/developer/api-reference
- SDK Reference: https://github.com/wiil-io/wiil-python
- Email: dev-support@wiil.io
Start with Dynamic Agent Setup for the quickest deployment path, or use Fundamental Configuration when you need full control.