Integrate Power Automate with AssemblyAI
Microsoft Power Automate is a low-code workflow automation platform with a rich collection of connectors to Microsoft's first-party services and third-party services. Azure Logic Apps is the equivalent service built for developers and IT pros.
The AssemblyAI connector makes our API available to both Microsoft Power Automate and Azure Logic Apps. With the connector, you can use AssemblyAI to transcribe audio data with speech recognition models, analyze the data with audio intelligence models, and build generative features on top of it with LLMs. You can supply audio to the AssemblyAI connector and connect the output of our models to other services in your flows.
Quickstart
- 1
Create or edit a flow in Power Automate. Add a new action, search for AssemblyAI, and select the action that you want to use.
- 2
You will be prompted to create a connection to AssemblyAI. Give your connection a name and enter the API key from your AssemblyAI dashboard, and click Create new.
- 3
Finally, configure your AssemblyAI action. Continue reading to learn more about all the available actions.
Upload a File
To transcribe an audio file using AssemblyAI, the file needs to be accessible to AssemblyAI. If your audio file is already accessible via a URL, you can use your existing URL.
Otherwise, you can use the Upload a Media File
action to upload a file to AssemblyAI.
You will get back a URL for your file which can only be used to transcribe using your API key.
Once you transcribe the file, the file will be removed from AssemblyAI's servers.
Transcribe Audio
To transcribe your audio, configure the Audio URL
parameter using your audio file URL.
Then, configure the additional parameters to enable more Speech Recognition features and Audio Intelligence models.
The result of the Transcribe Audio action is a queued transcript which will start being processed immediately. To get the completed transcript, you have two options:
Handle the Transcript Ready Webhook
If you don't want to handle the webhook using Logic Apps or Power Automate, configure the Webhook URL
parameter in your Transcribe Audio
action, and implement your webhook following AssemblyAI's webhook documentation.
To handle the webhook using Logic Apps or Power Automate, follow these steps:
- 1
Create a separate Logic App or Power Automate Flow.
- 2
Configure
When an HTTP request is received
as the trigger:- Set
Who Can Trigger The Flow?
toAnyone
- Set
Request Body JSON Schema
to:{
"type": "object",
"properties": {
"transcript_id": {
"type": "string"
},
"status": {
"type": "string"
}
}
} - Set
Method
toPOST
- Set
- 3
Add an AssemblyAI
Get Transcript
action, passing in thetranscript_id
from the trigger to theTranscript ID
parameter. - 4
Before doing anything else, you should check whether the
Status
iscompleted
orerror
. Add aCondition
action that checks if theStatus
from theGet Transcript
output iserror
:- In the
True
branch, add aTerminate
action- Set the
Status
toFailed
- Set the
Code
toTranscript Error
- Pass the
Error
from theGet Transcript
output to theMessage
parameter.
- Set the
- You can leave the
False
branch empty.
Now you can add any action after the
Condition
knowing the transcript status iscompleted
, and you can retrieve any of the output properties of theGet Transcript
action. - In the
- 5
Save your Logic App or Flow. The
HTTP URL
will be generated for theWhen an HTTP request is received
trigger. Copy theHTTP URL
and head back to your original Logic App or Flow. - 6
In your original Logic App or Flow, update the
Transcribe Audio
action. Paste theHTTP URL
you copied previously into theWebhook URL
parameter, and save.
When the transcript status becomes completed
or error
, AssemblyAI will send an HTTP POST request to the webhook URL,
which will be handled by your other Logic App or Flow.
As an alternative to using the webhook, you can poll the transcript status as explained in the next section.
Poll the Transcript Status
You can poll the transcript status using the following steps:
- 1
Add an
Initialize variable
action- Set
Name
totranscript_status
- Set
Type
toString
- Store the
Status
from theTranscribe Audio
output into theValue
parameter
- Set
- 2
Add a
Do until
action- Configure the
Loop Until
parameter with the following Fx code:This code checks whether theor(equals(variables('transcript_status'), 'completed'), equals(variables('transcript_status'), 'error'))
transcript_status
variable iscompleted
orerror
. - Configure the
Count
parameter to86400
- Configure the
Timeout
parameter toPT24H
Inside the
Do until
action, add the following actions:- Add a
Delay
action that waits for one second - Add a
Get Transcript
action and pass theID
from theTranscribe Audio
output to theTranscript ID
parameter - Add a
Set variable
action- Set
Name
totranscript_status
- Pass the
Status
of theGet Transcript
output to theValue
parameter
- Set
The
Do until
loop will continue until the transcript is completed, or an error occurred. - Configure the
- 3
Add another
Get Transcript
action, like before, but add it after theDo until
loop so its output becomes available outside the scope of theDo until
action. - 4
Before doing anything else, you should check whether the transcript
Status
iscompleted
orerror
. Add aCondition
action that checks if thetranscript_status
iserror
:- In the
True
branch, add aTerminate
action- Set
Status
toFailed
- Set
Code
toTranscript Error
- Pass the
Error
from theGet Transcript
output to theMessage
parameter.
- Set
- You can leave the
False
branch empty.
- In the
Now you can add any action after the Condition
knowing the transcript status is completed
,
and you can retrieve any of the output properties of the Get Transcript
action.
Connector actions
The AssemblyAI app for Power Automate provides the following actions:
Files
Upload a Media File
Upload a media file to AssemblyAI's servers.
You can pass the Upload URL
output field to the Audio URL
input field of Transcribe an Audio File action.
Transcripts
Transcribe Audio
Create a transcript from a media file that is accessible via a URL.
Configure the Audio URL
field with the URL of the audio file you want to transcribe.
The Audio URL
must be accessible by AssemblyAI's servers.
If you don't have a publicly accessible URL, you can use the Upload a File action to upload the audio file to AssemblyAI.
The output of this action is a queued
transcript. Learn how to wait until the transcript is ready here.
Configure your desired Audio Intelligence models when you create the transcript. The results of the models will be included in the transcript output when the transcript is completed.
Get Transcript
Get the transcript resource. The transcript is ready when the status
is completed
.
Get Paragraphs in Transcript
Get the transcript split by paragraphs. The API semantically segments your transcript into paragraphs to create more reader-friendly transcripts.
You can only invoke this action after the transcript is completed.
Get Sentences in Transcript
Get the transcript split by sentences. The API semantically segments the transcript into sentences to create more reader-friendly transcripts.
You can only invoke this action after the transcript is completed.
Get Subtitles for Transcript
Get the transcript resource. The transcript is ready when the status
is completed
.
You can only invoke this action after the transcript is completed.
Get Redacted Audio
First, you need to configure PII audio redaction using these fields when you create the transcript:
Redact PII
:Yes
Redact PII Audio
:Yes
Redact PII Policies
: Configure at least one PII policy
Then, you can use this action to retrieve the redacted audio of the transcript.
You can only invoke this action after the transcript is completed.
Search Words in Transcript
Search through the transcript for keywords. You can search for individual words, numbers, or phrases containing up to five words or numbers.
You can only invoke this action after the transcript is completed.
List Transcripts
Get the transcript resource. The transcript is ready when the status
is completed
.
Delete Transcript
Delete the transcript. Deleting does not delete the resource itself, but removes the data from the resource and marks it as deleted.
You can only invoke this action after the transcript status is completed
or error
.
LeMUR
Run a Task Using LeMUR
Use the LeMUR task endpoint to input your own LLM prompt.
You have to configure either the Transcript IDs
or Input Text
input field.
Retrieve LeMUR Response
Retrieve a LeMUR response that was previously generated.
Purge LeMUR Request Data
Delete the data for a previously submitted LeMUR request. The LLM response data, as well as any context provided in the original request will be removed.
Additional resources
You can learn more about using Power Automate with AssemblyAI in these resources: