Overview

Enable your agents to authenticate with any OAuth enabled provider and take actions. From Salesforce and HubSpot to Google and GitHub, we’ve got you covered with 16+ integrated services.

Supported Integrations

Communication & Collaboration

  • Gmail - Manage emails and drafts
  • Slack - Workspace notifications and alerts
  • Microsoft - Office 365 and Teams integration

Project Management

  • Jira - Issue tracking and project management
  • ClickUp - Task and productivity management
  • Asana - Team task and project coordination
  • Notion - Page and database management
  • Linear - Software project and bug tracking
  • GitHub - Repository and issue management

Customer Relationship Management

  • Salesforce - CRM account and opportunity management
  • HubSpot - Sales pipeline and contact management
  • Zendesk - Customer support ticket management

Business & Finance

  • Stripe - Payment processing and customer management
  • Shopify - E-commerce store and product management

Productivity & Storage

  • Google Sheets - Spreadsheet data synchronization
  • Google Calendar - Event and schedule management
  • Box - File storage and document management

and more to come!

Prerequisites

Before using Authentication Integrations, ensure you have:

Setting Up Integrations

1. Connect Your Account

  1. Navigate to CrewAI Enterprise
  2. Go to Integrations tab - https://app.crewai.com/crewai_plus/connectors
  3. Click Connect on your desired service from the Authentication Integrations section
  4. Complete the OAuth authentication flow
  5. Grant necessary permissions for your use case
  6. Get your Enterprise Token from your CrewAI Enterprise account page - https://app.crewai.com/crewai_plus/settings/account

2. Install Integration Tools

All you need is the latest version of crewai-tools package.

uv add crewai-tools

Usage Examples

Basic Usage

All the services you are authenticated into will be available as tools. So all you need to do is add the CrewaiEnterpriseTools to your agent and you are good to go.

from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools

# Get enterprise tools (Gmail tool will be included)
enterprise_tools = CrewaiEnterpriseTools(
    enterprise_token="your_enterprise_token"
)
# print the tools
print(enterprise_tools)

# Create an agent with Gmail capabilities
email_agent = Agent(
    role="Email Manager",
    goal="Manage and organize email communications",
    backstory="An AI assistant specialized in email management and communication.",
    tools=[enterprise_tools]
)

# Task to send an email
email_task = Task(
    description="Draft and send a follow-up email to john@example.com about the project update",
    agent=email_agent,
    expected_output="Confirmation that email was sent successfully"
)

# Run the task
crew = Crew(
    agents=[email_agent],
    tasks=[email_task]
)

# Run the crew
crew.kickoff()

Filtering Tools

from crewai_tools import CrewaiEnterpriseTools

enterprise_tools = CrewaiEnterpriseTools(
    actions_list=["gmail_find_email"] # only gmail_find_email tool will be available
)
gmail_tool = enterprise_tools[0]

gmail_agent = Agent(
    role="Gmail Manager",
    goal="Manage gmail communications and notifications",
    backstory="An AI assistant that helps coordinate gmail communications.",
    tools=[gmail_tool]
)

notification_task = Task(
    description="Find the email from john@example.com",
    agent=gmail_agent,
    expected_output="Email found from john@example.com"
)

# Run the task
crew = Crew(
    agents=[slack_agent],
    tasks=[notification_task]
)

Best Practices

Security

  • Principle of Least Privilege: Only grant the minimum permissions required for your agents’ tasks
  • Regular Audits: Periodically review connected integrations and their permissions
  • Secure Credentials: Never hardcode credentials; use CrewAI’s secure authentication flow

Filtering Tools

On a deployed crew, you can specify which actions are avialbel for each integration from the settings page of the service you connected to.

Scoped Deployments for multi user organizations

You can deploy your crew and scope each integration to a specific user. For example, a crew that connects to google can use a specific user’s gmail account.

This is useful for multi user organizations where you want to scope the integration to a specific user.

Use the user_bearer_token to scope the integration to a specific user so that when the crew is kicked off, it will use the user’s bearer token to authenticate with the integration. If user is not logged in, then the crew will not use any connected integrations. Use the default bearer token to authenticate with the integrations thats deployed with the crew.

Getting Help

Need Help?

Contact our support team for assistance with integration setup or troubleshooting.