Skip to main content

Official Dial CrewAI tools — phone numbers, SMS, OTP, and voice calls for multi-agent crews

Project description

dial-crewai

Official Dial tools for CrewAI — give a multi-agent crew the ability to send SMS, receive OTP codes, and place AI voice calls through Dial. Agents automating signups and web tasks get a real phone identity.

It's the CrewAI sibling of dial-langchain: each tool is a crewai.tools.BaseTool subclass wrapping the dial-sdk client. It adds nothing to the REST contract — it just shapes Dial's operations into CrewAI tools.

Install

pip install dial-crewai

This pulls in dial-sdk and crewai.

Give the tools to a crew

Build one DialClient, pass it to dial_tools, and hand the list to an agent. Every tool shares that one client — a single connection pool for the whole crew:

from crewai import Agent, Crew, Task
from dial_sdk import DialClient, DialConfig
from dial_crewai import dial_tools

dial = DialClient(DialConfig(api_key="sk_live_..."))

phone_agent = Agent(
    role="Phone identity agent",
    goal="Send and receive SMS so the crew can complete phone-verified signups",
    backstory="You operate the crew's Dial phone number.",
    tools=dial_tools(dial),
)

DialConfig also takes an optional base_url to target a non-default deployment.

Or pick individual tools

from dial_crewai import SendMessageTool, WaitForMessageTool

tools = [
    SendMessageTool(client=dial),
    WaitForMessageTool(client=dial),
]

Available tools

Each tool takes your shared DialClient (client=):

Tool Action
ListNumbersTool List your phone numbers
PurchaseNumberTool Provision a new number (billable)
SetNumberPropertiesTool Update a number's nickname / inbound instruction
SendMessageTool Send an SMS (optionally MMS)
ListMessagesTool List recent messages
MakeCallTool Place an AI voice call
ListCallsTool List recent calls
GetCallTool Fetch one call by id
GetBillingTool Credit balance, subscription, per-number mode
WaitForMessageTool Block until the next inbound SMS arrives, or time out

OTP flow

The point of phone identity for a crew: send a code and read the reply. WaitForMessageTool blocks until the next inbound SMS arrives, so an agent can:

  1. trigger a signup that texts a code to your Dial number,
  2. call WaitForMessageTool to read the inbound code,
  3. enter it back into the signup form.

See examples/signup_crew.py for a runnable crew.

Notes

  • The dial-sdk client is async; these tools are sync-first (_run) with an async→sync bridge, and also expose _arun for async crews. The shared client's requests run on a single background event loop, so the connection pool is reused across calls; a sync crew needn't close the client explicitly.
  • SendMessageTool is a write action and isn't idempotent — a re-invoke after a failure can send a duplicate. MakeCallTool accepts an idempotency_key.
  • WaitForMessageTool is backed by Dial's presence-based event stream — for durable, at-least-once delivery, register a webhook.

See the CrewAI integration docs for the full guide.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dial_crewai-0.10.0.tar.gz (259.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dial_crewai-0.10.0-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file dial_crewai-0.10.0.tar.gz.

File metadata

  • Download URL: dial_crewai-0.10.0.tar.gz
  • Upload date:
  • Size: 259.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dial_crewai-0.10.0.tar.gz
Algorithm Hash digest
SHA256 568ff1d069fc0e6b806e23140aceda61a4f1827b76b16b972596ac9e4222aac4
MD5 23665e395fcfdaac6bada288a9268e64
BLAKE2b-256 dfa3515c394c0ae7cd839c86f7f44bfb3d7a96fe4655afc4005fe0fa0efc5cfa

See more details on using hashes here.

Provenance

The following attestation bundles were made for dial_crewai-0.10.0.tar.gz:

Publisher: publish-sdk-crewai.yml on GENWAY-AI/dial

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dial_crewai-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: dial_crewai-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 8.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dial_crewai-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a4f429386b4f3e23f3b3d51f33a19936c68828f2f37706365de57da733d6512b
MD5 faf63882740d1d697b5eb7d8cd067fb9
BLAKE2b-256 4e623af8336e8d0af26ff8d56ebe1535ab9afa5016a5d8ebd1456916b6d08225

See more details on using hashes here.

Provenance

The following attestation bundles were made for dial_crewai-0.10.0-py3-none-any.whl:

Publisher: publish-sdk-crewai.yml on GENWAY-AI/dial

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page