-
Notifications
You must be signed in to change notification settings - Fork 5.5k
brainbase labs #18759
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
egrigokhan
wants to merge
5
commits into
PipedreamHQ:master
Choose a base branch
from
egrigokhan:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
brainbase labs #18759
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
864b1d7
brainbase labs
egrigokhan 93f9d95
changes made
egrigokhan 0f2c03b
Update components/kustomer/actions/update-conversation/update-convers…
egrigokhan a2334e3
Update components/close/actions/update-lead/update-lead.mjs
egrigokhan 5974fab
Update components/brainbase_labs/actions/create-voice-deployment/crea…
egrigokhan File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
# Brainbase | ||
|
||
Brainbase is a platform for building and deploying AI voice agents. Create intelligent workers that can handle phone calls, automate customer interactions, and integrate with your existing communication infrastructure. | ||
|
||
## What You Can Do | ||
|
||
With the Brainbase integration on Pipedream, you can: | ||
|
||
- **Automate Voice Agent Deployments** - Programmatically create and configure AI voice agents that can make or receive phone calls | ||
- **Monitor Call Activity** - Track voice deployment logs, analyze sentiment, and retrieve call records for quality assurance | ||
- **Manage Phone Numbers** - Register and configure phone numbers for your voice agents through Twilio integration | ||
- **Build Dynamic Workflows** - Create AI workers with custom flows that adapt based on triggers from other apps in your Pipedream workflows | ||
- **Scale Communications** - Make batch calls to multiple recipients with personalized AI interactions | ||
|
||
## Use Cases | ||
|
||
### Customer Support Automation | ||
|
||
Automatically deploy voice agents when support tickets are created in Zendesk or when specific keywords are detected in emails. Route calls based on customer data and log interactions back to your CRM. | ||
|
||
### Appointment Reminders | ||
|
||
Trigger AI voice calls to remind customers of upcoming appointments when calendar events approach. Collect confirmations and automatically update your scheduling system. | ||
|
||
### Lead Qualification | ||
|
||
Deploy voice agents to call leads from your sales pipeline, ask qualification questions, and route hot leads to human sales reps based on responses and sentiment analysis. | ||
|
||
### Outbound Notifications | ||
|
||
Send voice notifications for order updates, delivery alerts, or account changes by triggering calls when status changes occur in your e-commerce or SaaS platform. | ||
|
||
## Getting Started | ||
|
||
1. Connect your Brainbase account using your API key | ||
2. Create a worker to define your AI agent's purpose | ||
3. Build a flow to script your agent's conversation logic | ||
4. Deploy your voice agent with a phone number | ||
5. Integrate with other Pipedream apps to trigger or respond to voice interactions | ||
|
||
## Authentication | ||
|
||
This integration uses API Key authentication. You'll need to provide your Brainbase API key when connecting the app in Pipedream. | ||
|
||
## Links | ||
|
||
- [Brainbase Documentation](https://docs.usebrainbase.com) | ||
- [Pipedream Community](https://pipedream.com/community) |
68 changes: 68 additions & 0 deletions
68
components/brainbase_labs/actions/create-flow/create-flow.mjs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
import app from "../../brainbase_labs.app.mjs"; | ||
|
||
export default { | ||
key: "brainbase-create-flow", | ||
name: "Create Flow", | ||
description: "Create a new flow for a worker. [See the documentation](https://docs.usebrainbase.com)", | ||
version: "0.0.1", | ||
type: "action", | ||
annotations: { | ||
destructiveHint: false, | ||
openWorldHint: true, | ||
readOnlyHint: false, | ||
}, | ||
props: { | ||
app, | ||
workerId: { | ||
propDefinition: [ | ||
app, | ||
"workerId", | ||
], | ||
}, | ||
name: { | ||
type: "string", | ||
label: "Name", | ||
description: "The name of the flow", | ||
}, | ||
code: { | ||
type: "string", | ||
label: "Code", | ||
description: "The flow code/definition", | ||
}, | ||
label: { | ||
type: "string", | ||
label: "Label", | ||
description: "Optional label for the flow", | ||
optional: true, | ||
}, | ||
variables: { | ||
type: "string", | ||
label: "Variables", | ||
description: "Flow variables (optional)", | ||
optional: true, | ||
}, | ||
validate: { | ||
type: "boolean", | ||
label: "Validate", | ||
description: "Whether to validate the flow", | ||
optional: true, | ||
}, | ||
}, | ||
async run({ $ }) { | ||
const response = await this.app.createFlow({ | ||
$, | ||
workerId: this.workerId, | ||
data: { | ||
name: this.name, | ||
code: this.code, | ||
label: this.label, | ||
variables: this.variables, | ||
validate: this.validate, | ||
}, | ||
}); | ||
|
||
$.export("$summary", `Successfully created flow "${this.name}"`); | ||
return response; | ||
}, | ||
}; | ||
|
41 changes: 41 additions & 0 deletions
41
components/brainbase_labs/actions/create-twilio-integration/create-twilio-integration.mjs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
import app from "../../brainbase_labs.app.mjs"; | ||
|
||
export default { | ||
key: "brainbase-create-twilio-integration", | ||
name: "Create Twilio Integration", | ||
description: "Create a new Twilio integration for the authenticated team. [See the documentation](https://docs.usebrainbase.com)", | ||
version: "0.0.1", | ||
type: "action", | ||
annotations: { | ||
destructiveHint: false, | ||
openWorldHint: true, | ||
readOnlyHint: false, | ||
}, | ||
props: { | ||
app, | ||
accountSid: { | ||
type: "string", | ||
label: "Account SID", | ||
description: "Twilio account SID", | ||
}, | ||
authToken: { | ||
type: "string", | ||
label: "Auth Token", | ||
description: "Twilio auth token (will be encrypted before being stored)", | ||
secret: true, | ||
}, | ||
}, | ||
async run({ $ }) { | ||
const response = await this.app.createTwilioIntegration({ | ||
$, | ||
data: { | ||
accountSid: this.accountSid, | ||
authToken: this.authToken, | ||
}, | ||
}); | ||
|
||
$.export("$summary", "Successfully created Twilio integration"); | ||
return response; | ||
}, | ||
}; | ||
|
85 changes: 85 additions & 0 deletions
85
components/brainbase_labs/actions/create-voice-deployment/create-voice-deployment.mjs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
import app from "../../brainbase_labs.app.mjs"; | ||
|
||
export default { | ||
key: "brainbase-create-voice-deployment", | ||
name: "Create Voice Deployment", | ||
description: "Create a new voice deployment. [See the documentation](https://docs.usebrainbase.com)", | ||
version: "0.0.1", | ||
type: "action", | ||
annotations: { | ||
destructiveHint: false, | ||
openWorldHint: true, | ||
readOnlyHint: false, | ||
}, | ||
props: { | ||
app, | ||
workerId: { | ||
propDefinition: [ | ||
app, | ||
"workerId", | ||
], | ||
}, | ||
name: { | ||
type: "string", | ||
label: "Name", | ||
description: "Deployment name", | ||
}, | ||
phoneNumber: { | ||
type: "string", | ||
label: "Phone Number", | ||
description: "Phone number for deployment (e.g., +1234567890)", | ||
}, | ||
flowId: { | ||
propDefinition: [ | ||
app, | ||
"flowId", | ||
(c) => ({ | ||
workerId: c.workerId, | ||
}), | ||
], | ||
}, | ||
enableVoiceSentiment: { | ||
type: "boolean", | ||
label: "Enable Voice Sentiment", | ||
description: "Enable voice sentiment analysis", | ||
default: false, | ||
}, | ||
externalConfig: { | ||
type: "object", | ||
label: "External Config", | ||
description: "External configuration object with voice settings, language, voiceId, etc. Example: `{\"voice\": \"alloy\", \"language\": \"en\"}`", | ||
optional: true, | ||
}, | ||
extractions: { | ||
type: "object", | ||
label: "Extractions", | ||
description: "Custom data extraction configurations (optional)", | ||
optional: true, | ||
}, | ||
successCriteria: { | ||
type: "string[]", | ||
label: "Success Criteria", | ||
description: "Deployment success measurement criteria (optional)", | ||
optional: true, | ||
}, | ||
}, | ||
async run({ $ }) { | ||
const response = await this.app.createVoiceDeployment({ | ||
$, | ||
workerId: this.workerId, | ||
data: { | ||
name: this.name, | ||
phoneNumber: this.phoneNumber, | ||
flowId: this.flowId, | ||
enableVoiceSentiment: this.enableVoiceSentiment, | ||
...(this.externalConfig && { externalConfig: this.externalConfig }), | ||
...(this.extractions && { extractions: this.extractions }), | ||
...(this.successCriteria && { successCriteria: this.successCriteria }), | ||
}, | ||
}); | ||
|
||
$.export("$summary", `Successfully created voice deployment "${this.name}"`); | ||
return response; | ||
}, | ||
}; | ||
|
53 changes: 53 additions & 0 deletions
53
components/brainbase_labs/actions/create-worker/create-worker.mjs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
import app from "../../brainbase_labs.app.mjs"; | ||
|
||
export default { | ||
key: "brainbase-create-worker", | ||
name: "Create Worker", | ||
description: "Create a new worker for the team. [See the documentation](https://docs.usebrainbase.com)", | ||
version: "0.0.1", | ||
type: "action", | ||
annotations: { | ||
destructiveHint: false, | ||
openWorldHint: true, | ||
readOnlyHint: false, | ||
}, | ||
props: { | ||
app, | ||
name: { | ||
type: "string", | ||
label: "Name", | ||
description: "The name of the worker", | ||
}, | ||
description: { | ||
type: "string", | ||
label: "Description", | ||
description: "Worker description", | ||
optional: true, | ||
}, | ||
status: { | ||
type: "string", | ||
label: "Status", | ||
description: "Worker status", | ||
optional: true, | ||
options: [ | ||
"active", | ||
"inactive", | ||
"archived", | ||
], | ||
}, | ||
}, | ||
async run({ $ }) { | ||
const response = await this.app.createWorker({ | ||
$, | ||
data: { | ||
name: this.name, | ||
description: this.description, | ||
status: this.status, | ||
}, | ||
}); | ||
|
||
$.export("$summary", `Successfully created worker "${this.name}"`); | ||
return response; | ||
}, | ||
}; | ||
|
43 changes: 43 additions & 0 deletions
43
components/brainbase_labs/actions/delete-flow/delete-flow.mjs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
import app from "../../brainbase_labs.app.mjs"; | ||
|
||
export default { | ||
key: "brainbase-delete-flow", | ||
name: "Delete Flow", | ||
description: "Delete a flow. [See the documentation](https://docs.usebrainbase.com)", | ||
version: "0.0.1", | ||
type: "action", | ||
annotations: { | ||
destructiveHint: true, | ||
openWorldHint: true, | ||
readOnlyHint: false, | ||
}, | ||
props: { | ||
app, | ||
workerId: { | ||
propDefinition: [ | ||
app, | ||
"workerId", | ||
], | ||
}, | ||
flowId: { | ||
propDefinition: [ | ||
app, | ||
"flowId", | ||
(c) => ({ | ||
workerId: c.workerId, | ||
}), | ||
], | ||
}, | ||
}, | ||
async run({ $ }) { | ||
const response = await this.app.deleteFlow({ | ||
$, | ||
workerId: this.workerId, | ||
flowId: this.flowId, | ||
}); | ||
|
||
$.export("$summary", `Successfully deleted flow with ID ${this.flowId}`); | ||
return response; | ||
}, | ||
}; | ||
|
33 changes: 33 additions & 0 deletions
33
components/brainbase_labs/actions/delete-integration/delete-integration.mjs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
import app from "../../brainbase_labs.app.mjs"; | ||
|
||
export default { | ||
key: "brainbase-delete-integration", | ||
name: "Delete Integration", | ||
description: "Delete an existing Twilio integration. [See the documentation](https://docs.usebrainbase.com)", | ||
version: "0.0.1", | ||
type: "action", | ||
annotations: { | ||
destructiveHint: true, | ||
openWorldHint: true, | ||
readOnlyHint: false, | ||
}, | ||
props: { | ||
app, | ||
integrationId: { | ||
propDefinition: [ | ||
app, | ||
"integrationId", | ||
], | ||
}, | ||
}, | ||
async run({ $ }) { | ||
const response = await this.app.deleteIntegration({ | ||
$, | ||
integrationId: this.integrationId, | ||
}); | ||
|
||
$.export("$summary", `Successfully deleted integration with ID ${this.integrationId}`); | ||
return response; | ||
}, | ||
}; | ||
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The README is your call - I don't think it's useful to have individual components listed here, but rather a general description of the app and its use cases
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.