Twillio - calls or SMS with PowerShell

This article is about PowerShell and the tasks I use it for.

I had some trouble finding examples of placing calls with Twillio. Here is what worked for me.

Place a voice call with PowerShell and Twilio:

#Run these with your SID and Token once to set the variables



# Pull in Twilio account info, previously set as environment variables

$sid =[Environment]::GetEnvironmentVariable('TWILIO_ACCOUNT_SID','User')

$token =[Environment]::GetEnvironmentVariable('TWILIO_AUTH_TOKEN','User')

$number = "+15555555555"

$targetnumber=@() #Using this method to handle additions to an array does not scale well, but it is easy to read

#$targetnumber += "+55555555555" #John

$targetnumber += "+15555555555" #Jane

foreach ($person in $targetnumber)


$url = "$sid/Calls.json"

$params = @{ To = "$person"; From = $number; Twiml = '<?xml version="1.0" encoding="UTF-8"?><Response><Say voice="Polly.Joey">Hello. This is an alert. Something may have gone wrong. .</Say></Response>' }

$p = $token | ConvertTo-SecureString -asPlainText -Force

$credential = New-Object System.Management.Automation.PSCredential($sid, $p)

Invoke-WebRequest $url -Method Post -Credential $credential -Body $params -UseBasicParsing | ConvertFrom-Json | Select sid, body