diff --git a/docs/docs.json b/docs/docs.json
index 44d43d9ace..1aff05285b 100644
--- a/docs/docs.json
+++ b/docs/docs.json
@@ -361,10 +361,20 @@
"en/enterprise/integrations/github",
"en/enterprise/integrations/gmail",
"en/enterprise/integrations/google_calendar",
+ "en/enterprise/integrations/google_contacts",
+ "en/enterprise/integrations/google_docs",
+ "en/enterprise/integrations/google_drive",
"en/enterprise/integrations/google_sheets",
+ "en/enterprise/integrations/google_slides",
"en/enterprise/integrations/hubspot",
"en/enterprise/integrations/jira",
"en/enterprise/integrations/linear",
+ "en/enterprise/integrations/microsoft_excel",
+ "en/enterprise/integrations/microsoft_onedrive",
+ "en/enterprise/integrations/microsoft_outlook",
+ "en/enterprise/integrations/microsoft_sharepoint",
+ "en/enterprise/integrations/microsoft_teams",
+ "en/enterprise/integrations/microsoft_word",
"en/enterprise/integrations/notion",
"en/enterprise/integrations/salesforce",
"en/enterprise/integrations/shopify",
@@ -772,10 +782,20 @@
"pt-BR/enterprise/integrations/github",
"pt-BR/enterprise/integrations/gmail",
"pt-BR/enterprise/integrations/google_calendar",
+ "pt-BR/enterprise/integrations/google_contacts",
+ "pt-BR/enterprise/integrations/google_docs",
+ "pt-BR/enterprise/integrations/google_drive",
"pt-BR/enterprise/integrations/google_sheets",
+ "pt-BR/enterprise/integrations/google_slides",
"pt-BR/enterprise/integrations/hubspot",
"pt-BR/enterprise/integrations/jira",
"pt-BR/enterprise/integrations/linear",
+ "pt-BR/enterprise/integrations/microsoft_excel",
+ "pt-BR/enterprise/integrations/microsoft_onedrive",
+ "pt-BR/enterprise/integrations/microsoft_outlook",
+ "pt-BR/enterprise/integrations/microsoft_sharepoint",
+ "pt-BR/enterprise/integrations/microsoft_teams",
+ "pt-BR/enterprise/integrations/microsoft_word",
"pt-BR/enterprise/integrations/notion",
"pt-BR/enterprise/integrations/salesforce",
"pt-BR/enterprise/integrations/shopify",
@@ -1187,10 +1207,20 @@
"ko/enterprise/integrations/github",
"ko/enterprise/integrations/gmail",
"ko/enterprise/integrations/google_calendar",
+ "ko/enterprise/integrations/google_contacts",
+ "ko/enterprise/integrations/google_docs",
+ "ko/enterprise/integrations/google_drive",
"ko/enterprise/integrations/google_sheets",
+ "ko/enterprise/integrations/google_slides",
"ko/enterprise/integrations/hubspot",
"ko/enterprise/integrations/jira",
"ko/enterprise/integrations/linear",
+ "ko/enterprise/integrations/microsoft_excel",
+ "ko/enterprise/integrations/microsoft_onedrive",
+ "ko/enterprise/integrations/microsoft_outlook",
+ "ko/enterprise/integrations/microsoft_sharepoint",
+ "ko/enterprise/integrations/microsoft_teams",
+ "ko/enterprise/integrations/microsoft_word",
"ko/enterprise/integrations/notion",
"ko/enterprise/integrations/salesforce",
"ko/enterprise/integrations/shopify",
diff --git a/docs/en/enterprise/features/tools-and-integrations.mdx b/docs/en/enterprise/features/tools-and-integrations.mdx
index 4e60021db4..92609b997f 100644
--- a/docs/en/enterprise/features/tools-and-integrations.mdx
+++ b/docs/en/enterprise/features/tools-and-integrations.mdx
@@ -43,7 +43,7 @@ Tools & Integrations is the central hub for connecting third‑party apps and ma
1. Go to Integrations
2. Click Connect on the desired service
3. Complete the OAuth flow and grant scopes
- 4. Copy your Enterprise Token from the Integration tab
+ 4. Copy your Enterprise Token from Integration Settings

@@ -60,26 +60,18 @@ Tools & Integrations is the central hub for connecting third‑party apps and ma
### Usage Example
- All services you have authenticated will be available as tools. Add `CrewaiEnterpriseTools` to your agent and you’re set.
+ Use the new streamlined approach to integrate enterprise apps. Simply specify the app and its actions directly in the Agent configuration.
```python
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
+ apps=['gmail', 'gmail/send_email'] # Using canonical name 'gmail'
)
# Task to send an email
@@ -102,21 +94,14 @@ Tools & Integrations is the central hub for connecting third‑party apps and ma
### Filtering Tools
```python
- 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["gmail_find_email"]
-
+ from crewai import Agent, Task, Crew
+ # Create agent with specific Gmail actions only
gmail_agent = Agent(
role="Gmail Manager",
goal="Manage gmail communications and notifications",
backstory="An AI assistant that helps coordinate gmail communications.",
- tools=[gmail_tool]
+ apps=['gmail/fetch_emails'] # Using canonical name with specific action
)
notification_task = Task(
diff --git a/docs/en/enterprise/integrations/asana.mdx b/docs/en/enterprise/integrations/asana.mdx
index 5e5a2ea468..0d507cc7a8 100644
--- a/docs/en/enterprise/integrations/asana.mdx
+++ b/docs/en/enterprise/integrations/asana.mdx
@@ -25,7 +25,7 @@ Before using the Asana integration, ensure you have:
2. Find **Asana** in the Authentication Integrations section
3. Click **Connect** and complete the OAuth flow
4. Grant the necessary permissions for task and project management
-5. Copy your Enterprise Token from [Account Settings](https://app.crewai.com/crewai_plus/settings/account)
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Install Required Package
@@ -36,7 +36,7 @@ uv add crewai-tools
## Available Actions
-
+
**Description:** Create a comment in Asana.
**Parameters:**
@@ -44,7 +44,7 @@ uv add crewai-tools
- `text` (string, required): Text (example: "This is a comment.").
-
+
**Description:** Create a project in Asana.
**Parameters:**
@@ -54,7 +54,7 @@ uv add crewai-tools
- `notes` (string, optional): Notes (example: "These are things we need to purchase.").
-
+
**Description:** Get a list of projects in Asana.
**Parameters:**
@@ -62,14 +62,14 @@ uv add crewai-tools
- Options: `default`, `true`, `false`
-
+
**Description:** Get a project by ID in Asana.
**Parameters:**
- `projectFilterId` (string, required): Project ID.
-
+
**Description:** Create a task in Asana.
**Parameters:**
@@ -83,7 +83,7 @@ uv add crewai-tools
- `gid` (string, optional): External ID - An ID from your application to associate this task with. You can use this ID to sync updates to this task later.
-
+
**Description:** Update a task in Asana.
**Parameters:**
@@ -98,7 +98,7 @@ uv add crewai-tools
- `gid` (string, optional): External ID - An ID from your application to associate this task with. You can use this ID to sync updates to this task later.
-
+
**Description:** Get a list of tasks in Asana.
**Parameters:**
@@ -108,21 +108,21 @@ uv add crewai-tools
- `completedSince` (string, optional): Completed since - Only return tasks that are either incomplete or that have been completed since this time (ISO or Unix timestamp). (example: "2014-04-25T16:15:47-04:00").
-
+
**Description:** Get a list of tasks by ID in Asana.
**Parameters:**
- `taskId` (string, required): Task ID.
-
+
**Description:** Get a task by external ID in Asana.
**Parameters:**
- `gid` (string, required): External ID - The ID that this task is associated or synced with, from your application.
-
+
**Description:** Add a task to a section in Asana.
**Parameters:**
@@ -132,14 +132,14 @@ uv add crewai-tools
- `afterTaskId` (string, optional): After Task ID - The ID of a task in this section that this task will be inserted after. Cannot be used with Before Task ID. (example: "1204619611402340").
-
+
**Description:** Get a list of teams in Asana.
**Parameters:**
- `workspace` (string, required): Workspace - Returns the teams in this workspace visible to the authorized user.
-
+
**Description:** Get a list of workspaces in Asana.
**Parameters:** None required.
@@ -152,19 +152,13 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get enterprise tools (Asana tools will be included)
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
# Create an agent with Asana capabilities
asana_agent = Agent(
role="Project Manager",
goal="Manage tasks and projects in Asana efficiently",
backstory="An AI assistant specialized in project management and task coordination.",
- tools=[enterprise_tools]
+ apps=['asana'] # All Asana actions will be available
)
# Task to create a new project
@@ -186,19 +180,18 @@ crew.kickoff()
### Filtering Specific Asana Tools
```python
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get only specific Asana tools
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token",
- actions_list=["asana_create_task", "asana_update_task", "asana_get_tasks"]
-)
+from crewai import Agent, Task, Crew
+# Create agent with specific Asana actions only
task_manager_agent = Agent(
role="Task Manager",
goal="Create and manage tasks efficiently",
backstory="An AI assistant that focuses on task creation and management.",
- tools=enterprise_tools
+ apps=[
+ 'asana/create_task',
+ 'asana/update_task',
+ 'asana/get_tasks'
+ ] # Specific Asana actions
)
# Task to create and assign a task
@@ -220,17 +213,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
project_coordinator = Agent(
role="Project Coordinator",
goal="Coordinate project activities and track progress",
backstory="An experienced project coordinator who ensures projects run smoothly.",
- tools=[enterprise_tools]
+ apps=['asana']
)
# Complex task involving multiple Asana operations
diff --git a/docs/en/enterprise/integrations/box.mdx b/docs/en/enterprise/integrations/box.mdx
index 472788505f..1aed216130 100644
--- a/docs/en/enterprise/integrations/box.mdx
+++ b/docs/en/enterprise/integrations/box.mdx
@@ -25,7 +25,7 @@ Before using the Box integration, ensure you have:
2. Find **Box** in the Authentication Integrations section
3. Click **Connect** and complete the OAuth flow
4. Grant the necessary permissions for file and folder management
-5. Copy your Enterprise Token from [Account Settings](https://app.crewai.com/crewai_plus/settings/account)
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Install Required Package
@@ -36,7 +36,7 @@ uv add crewai-tools
## Available Actions
-
+
**Description:** Save a file from URL in Box.
**Parameters:**
@@ -52,7 +52,7 @@ uv add crewai-tools
- `file` (string, required): File URL - Files must be smaller than 50MB in size. (example: "https://picsum.photos/200/300").
-
+
**Description:** Save a file in Box.
**Parameters:**
@@ -61,14 +61,14 @@ uv add crewai-tools
- `folder` (string, optional): Folder - Use Connect Portal Workflow Settings to allow users to select the File's Folder destination. Defaults to the user's root folder if left blank.
-
+
**Description:** Get a file by ID in Box.
**Parameters:**
- `fileId` (string, required): File ID - The unique identifier that represents a file. (example: "12345").
-
+
**Description:** List files in Box.
**Parameters:**
@@ -93,7 +93,7 @@ uv add crewai-tools
```
-
+
**Description:** Create a folder in Box.
**Parameters:**
@@ -106,7 +106,7 @@ uv add crewai-tools
```
-
+
**Description:** Move a folder in Box.
**Parameters:**
@@ -120,14 +120,14 @@ uv add crewai-tools
```
-
+
**Description:** Get a folder by ID in Box.
**Parameters:**
- `folderId` (string, required): Folder ID - The unique identifier that represents a folder. (example: "0").
-
+
**Description:** Search folders in Box.
**Parameters:**
@@ -152,7 +152,7 @@ uv add crewai-tools
```
-
+
**Description:** Delete a folder in Box.
**Parameters:**
@@ -167,19 +167,14 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get enterprise tools (Box tools will be included)
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
+from crewai import Agent, Task, Crew
# Create an agent with Box capabilities
box_agent = Agent(
role="Document Manager",
goal="Manage files and folders in Box efficiently",
backstory="An AI assistant specialized in document management and file organization.",
- tools=[enterprise_tools]
+ apps=['box'] # All Box actions will be available
)
# Task to create a folder structure
@@ -201,19 +196,14 @@ crew.kickoff()
### Filtering Specific Box Tools
```python
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get only specific Box tools
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token",
- actions_list=["box_create_folder", "box_save_file", "box_list_files"]
-)
+from crewai import Agent, Task, Crew
+# Create agent with specific Box actions only
file_organizer_agent = Agent(
role="File Organizer",
goal="Organize and manage file storage efficiently",
backstory="An AI assistant that focuses on file organization and storage management.",
- tools=enterprise_tools
+ apps=['box/create_folder', 'box/save_file', 'box/list_files'] # Specific Box actions
)
# Task to organize files
@@ -235,17 +225,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
file_manager = Agent(
role="File Manager",
goal="Maintain organized file structure and manage document lifecycle",
backstory="An experienced file manager who ensures documents are properly organized and accessible.",
- tools=[enterprise_tools]
+ apps=['box']
)
# Complex task involving multiple Box operations
diff --git a/docs/en/enterprise/integrations/clickup.mdx b/docs/en/enterprise/integrations/clickup.mdx
index a8549f72ac..8afd5ff68f 100644
--- a/docs/en/enterprise/integrations/clickup.mdx
+++ b/docs/en/enterprise/integrations/clickup.mdx
@@ -25,7 +25,7 @@ Before using the ClickUp integration, ensure you have:
2. Find **ClickUp** in the Authentication Integrations section
3. Click **Connect** and complete the OAuth flow
4. Grant the necessary permissions for task and project management
-5. Copy your Enterprise Token from [Account Settings](https://app.crewai.com/crewai_plus/settings/account)
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Install Required Package
@@ -36,7 +36,7 @@ uv add crewai-tools
## Available Actions
-
+
**Description:** Search for tasks in ClickUp using advanced filters.
**Parameters:**
@@ -61,7 +61,7 @@ uv add crewai-tools
Available fields: `space_ids%5B%5D`, `project_ids%5B%5D`, `list_ids%5B%5D`, `statuses%5B%5D`, `include_closed`, `assignees%5B%5D`, `tags%5B%5D`, `due_date_gt`, `due_date_lt`, `date_created_gt`, `date_created_lt`, `date_updated_gt`, `date_updated_lt`
-
+
**Description:** Get tasks in a specific list in ClickUp.
**Parameters:**
@@ -69,7 +69,7 @@ uv add crewai-tools
- `taskFilterFormula` (string, optional): Search for tasks that match specified filters. For example: name=task1.
-
+
**Description:** Create a task in ClickUp.
**Parameters:**
@@ -82,7 +82,7 @@ uv add crewai-tools
- `additionalFields` (string, optional): Additional Fields - Specify additional fields to include on this task as JSON.
-
+
**Description:** Update a task in ClickUp.
**Parameters:**
@@ -96,49 +96,49 @@ uv add crewai-tools
- `additionalFields` (string, optional): Additional Fields - Specify additional fields to include on this task as JSON.
-
+
**Description:** Delete a task in ClickUp.
**Parameters:**
- `taskId` (string, required): Task ID - The ID of the task to delete.
-
+
**Description:** Get List information in ClickUp.
**Parameters:**
- `spaceId` (string, required): Space ID - The ID of the space containing the lists.
-
+
**Description:** Get Custom Fields in a List in ClickUp.
**Parameters:**
- `listId` (string, required): List ID - The ID of the list to get custom fields from.
-
+
**Description:** Get All Fields in a List in ClickUp.
**Parameters:**
- `listId` (string, required): List ID - The ID of the list to get all fields from.
-
+
**Description:** Get Space information in ClickUp.
**Parameters:**
- `spaceId` (string, optional): Space ID - The ID of the space to retrieve.
-
+
**Description:** Get Folders in ClickUp.
**Parameters:**
- `spaceId` (string, required): Space ID - The ID of the space containing the folders.
-
+
**Description:** Get Member information in ClickUp.
**Parameters:** None required.
@@ -151,19 +151,14 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get enterprise tools (ClickUp tools will be included)
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
+from crewai import Agent, Task, Crew
-# Create an agent with ClickUp capabilities
+# Create an agent with Clickup capabilities
clickup_agent = Agent(
role="Task Manager",
goal="Manage tasks and projects in ClickUp efficiently",
backstory="An AI assistant specialized in task management and productivity coordination.",
- tools=[enterprise_tools]
+ apps=['clickup'] # All Clickup actions will be available
)
# Task to create a new task
@@ -185,19 +180,12 @@ crew.kickoff()
### Filtering Specific ClickUp Tools
```python
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get only specific ClickUp tools
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token",
- actions_list=["clickup_create_task", "clickup_update_task", "clickup_search_tasks"]
-)
task_coordinator = Agent(
role="Task Coordinator",
goal="Create and manage tasks efficiently",
backstory="An AI assistant that focuses on task creation and status management.",
- tools=enterprise_tools
+ apps=['clickup/create_task']
)
# Task to manage task workflow
@@ -219,17 +207,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
project_manager = Agent(
role="Project Manager",
goal="Coordinate project activities and track team productivity",
backstory="An experienced project manager who ensures projects are delivered on time.",
- tools=[enterprise_tools]
+ apps=['clickup']
)
# Complex task involving multiple ClickUp operations
@@ -256,17 +239,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
task_analyst = Agent(
role="Task Analyst",
goal="Analyze task patterns and optimize team productivity",
backstory="An AI assistant that analyzes task data to improve team efficiency.",
- tools=[enterprise_tools]
+ apps=['clickup']
)
# Task to analyze and optimize task distribution
diff --git a/docs/en/enterprise/integrations/github.mdx b/docs/en/enterprise/integrations/github.mdx
index 2e439b96c5..5666eef3dd 100644
--- a/docs/en/enterprise/integrations/github.mdx
+++ b/docs/en/enterprise/integrations/github.mdx
@@ -25,7 +25,7 @@ Before using the GitHub integration, ensure you have:
2. Find **GitHub** in the Authentication Integrations section
3. Click **Connect** and complete the OAuth flow
4. Grant the necessary permissions for repository and issue management
-5. Copy your Enterprise Token from [Account Settings](https://app.crewai.com/crewai_plus/settings/account)
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Install Required Package
@@ -36,7 +36,7 @@ uv add crewai-tools
## Available Actions
-
+
**Description:** Create an issue in GitHub.
**Parameters:**
@@ -47,7 +47,7 @@ uv add crewai-tools
- `assignees` (string, optional): Assignees - Specify the assignee(s)' GitHub login as an array of strings for this issue. (example: `["octocat"]`).
-
+
**Description:** Update an issue in GitHub.
**Parameters:**
@@ -61,7 +61,7 @@ uv add crewai-tools
- Options: `open`, `closed`
-
+
**Description:** Get an issue by number in GitHub.
**Parameters:**
@@ -70,7 +70,7 @@ uv add crewai-tools
- `issue_number` (string, required): Issue Number - Specify the number of the issue to fetch.
-
+
**Description:** Lock an issue in GitHub.
**Parameters:**
@@ -81,7 +81,7 @@ uv add crewai-tools
- Options: `off-topic`, `too heated`, `resolved`, `spam`
-
+
**Description:** Search for issues in GitHub.
**Parameters:**
@@ -108,7 +108,7 @@ uv add crewai-tools
Available fields: `assignee`, `creator`, `mentioned`, `labels`
-
+
**Description:** Create a release in GitHub.
**Parameters:**
@@ -126,7 +126,7 @@ uv add crewai-tools
- Options: `true`, `false`
-
+
**Description:** Update a release in GitHub.
**Parameters:**
@@ -145,7 +145,7 @@ uv add crewai-tools
- Options: `true`, `false`
-
+
**Description:** Get a release by ID in GitHub.
**Parameters:**
@@ -154,7 +154,7 @@ uv add crewai-tools
- `id` (string, required): Release ID - Specify the release ID of the release to fetch.
-
+
**Description:** Get a release by tag name in GitHub.
**Parameters:**
@@ -163,7 +163,7 @@ uv add crewai-tools
- `tag_name` (string, required): Name - Specify the tag of the release to fetch. (example: "v1.0.0").
-
+
**Description:** Delete a release in GitHub.
**Parameters:**
@@ -179,19 +179,14 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get enterprise tools (GitHub tools will be included)
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
+from crewai import Agent, Task, Crew
-# Create an agent with GitHub capabilities
+# Create an agent with Github capabilities
github_agent = Agent(
role="Repository Manager",
goal="Manage GitHub repositories, issues, and releases efficiently",
backstory="An AI assistant specialized in repository management and issue tracking.",
- tools=[enterprise_tools]
+ apps=['github'] # All Github actions will be available
)
# Task to create a new issue
@@ -213,19 +208,12 @@ crew.kickoff()
### Filtering Specific GitHub Tools
```python
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get only specific GitHub tools
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token",
- actions_list=["github_create_issue", "github_update_issue", "github_search_issue"]
-)
issue_manager = Agent(
role="Issue Manager",
goal="Create and manage GitHub issues efficiently",
backstory="An AI assistant that focuses on issue tracking and management.",
- tools=enterprise_tools
+ apps=['github/create_issue']
)
# Task to manage issue workflow
@@ -247,17 +235,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
release_manager = Agent(
role="Release Manager",
goal="Manage software releases and versioning",
backstory="An experienced release manager who handles version control and release processes.",
- tools=[enterprise_tools]
+ apps=['github']
)
# Task to create a new release
@@ -284,17 +267,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
project_coordinator = Agent(
role="Project Coordinator",
goal="Track and coordinate project issues and development progress",
backstory="An AI assistant that helps coordinate development work and track project progress.",
- tools=[enterprise_tools]
+ apps=['github']
)
# Complex task involving multiple GitHub operations
diff --git a/docs/en/enterprise/integrations/gmail.mdx b/docs/en/enterprise/integrations/gmail.mdx
index 594ece22ff..2c197467b0 100644
--- a/docs/en/enterprise/integrations/gmail.mdx
+++ b/docs/en/enterprise/integrations/gmail.mdx
@@ -25,7 +25,7 @@ Before using the Gmail integration, ensure you have:
2. Find **Gmail** in the Authentication Integrations section
3. Click **Connect** and complete the OAuth flow
4. Grant the necessary permissions for email and contact management
-5. Copy your Enterprise Token from [Account Settings](https://app.crewai.com/crewai_plus/settings/account)
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Install Required Package
@@ -36,138 +36,103 @@ uv add crewai-tools
## Available Actions
-
- **Description:** Send an email in Gmail.
+
+ **Description:** Retrieve a list of messages.
**Parameters:**
- - `toRecipients` (array, required): To - Specify the recipients as either a single string or a JSON array.
- ```json
- [
- "recipient1@domain.com",
- "recipient2@domain.com"
- ]
- ```
- - `from` (string, required): From - Specify the email of the sender.
- - `subject` (string, required): Subject - Specify the subject of the message.
- - `messageContent` (string, required): Message Content - Specify the content of the email message as plain text or HTML.
- - `attachments` (string, optional): Attachments - Accepts either a single file object or a JSON array of file objects.
- - `additionalHeaders` (object, optional): Additional Headers - Specify any additional header fields here.
- ```json
- {
- "reply-to": "Sender Name "
- }
- ```
+ - `userId` (string, required): The user's email address or 'me' for the authenticated user. (default: "me")
+ - `q` (string, optional): Search query to filter messages (e.g., 'from:someone@example.com is:unread').
+ - `maxResults` (integer, optional): Maximum number of messages to return (1-500). (default: 100)
+ - `pageToken` (string, optional): Page token to retrieve a specific page of results.
+ - `labelIds` (array, optional): Only return messages with labels that match all of the specified label IDs.
+ - `includeSpamTrash` (boolean, optional): Include messages from SPAM and TRASH in the results. (default: false)
-
- **Description:** Get an email by ID in Gmail.
+
+ **Description:** Send an email.
**Parameters:**
- - `userId` (string, required): User ID - Specify the user's email address. (example: "user@domain.com").
- - `messageId` (string, required): Message ID - Specify the ID of the message to retrieve.
+ - `to` (string, required): Recipient email address.
+ - `subject` (string, required): Email subject line.
+ - `body` (string, required): Email message content.
+ - `userId` (string, optional): The user's email address or 'me' for the authenticated user. (default: "me")
+ - `cc` (string, optional): CC email addresses (comma-separated).
+ - `bcc` (string, optional): BCC email addresses (comma-separated).
+ - `from` (string, optional): Sender email address (if different from authenticated user).
+ - `replyTo` (string, optional): Reply-to email address.
+ - `threadId` (string, optional): Thread ID if replying to an existing conversation.
-
- **Description:** Search for emails in Gmail using advanced filters.
+
+ **Description:** Delete an email by ID.
**Parameters:**
- - `emailFilterFormula` (object, optional): A filter in disjunctive normal form - OR of AND groups of single conditions.
- ```json
- {
- "operator": "OR",
- "conditions": [
- {
- "operator": "AND",
- "conditions": [
- {
- "field": "from",
- "operator": "$stringContains",
- "value": "example@domain.com"
- }
- ]
- }
- ]
- }
- ```
- Available fields: `from`, `to`, `date`, `label`, `subject`, `cc`, `bcc`, `category`, `deliveredto:`, `size`, `filename`, `older_than`, `newer_than`, `list`, `is:important`, `is:unread`, `is:snoozed`, `is:starred`, `is:read`, `has:drive`, `has:document`, `has:spreadsheet`, `has:presentation`, `has:attachment`, `has:youtube`, `has:userlabels`
- - `paginationParameters` (object, optional): Pagination Parameters.
- ```json
- {
- "pageCursor": "page_cursor_string"
- }
- ```
+ - `userId` (string, required): The user's email address or 'me' for the authenticated user.
+ - `id` (string, required): The ID of the message to delete.
-
- **Description:** Delete an email in Gmail.
+
+ **Description:** Create a new draft email.
**Parameters:**
- - `userId` (string, required): User ID - Specify the user's email address. (example: "user@domain.com").
- - `messageId` (string, required): Message ID - Specify the ID of the message to trash.
+ - `userId` (string, required): The user's email address or 'me' for the authenticated user.
+ - `message` (object, required): Message object containing the draft content.
+ - `raw` (string, required): Base64url encoded email message.
-
- **Description:** Create a contact in Gmail.
+
+ **Description:** Retrieve a specific message by ID.
**Parameters:**
- - `givenName` (string, required): Given Name - Specify the Given Name of the Contact to create. (example: "John").
- - `familyName` (string, required): Family Name - Specify the Family Name of the Contact to create. (example: "Doe").
- - `email` (string, required): Email - Specify the Email Address of the Contact to create.
- - `additionalFields` (object, optional): Additional Fields - Additional contact information.
- ```json
- {
- "addresses": [
- {
- "streetAddress": "1000 North St.",
- "city": "Los Angeles"
- }
- ]
- }
- ```
+ - `userId` (string, required): The user's email address or 'me' for the authenticated user. (default: "me")
+ - `id` (string, required): The ID of the message to retrieve.
+ - `format` (string, optional): The format to return the message in. Options: "full", "metadata", "minimal", "raw". (default: "full")
+ - `metadataHeaders` (array, optional): When given and format is METADATA, only include headers specified.
-
- **Description:** Get a contact by resource name in Gmail.
+
+ **Description:** Retrieve a message attachment.
**Parameters:**
- - `resourceName` (string, required): Resource Name - Specify the resource name of the contact to fetch.
+ - `userId` (string, required): The user's email address or 'me' for the authenticated user. (default: "me")
+ - `messageId` (string, required): The ID of the message containing the attachment.
+ - `id` (string, required): The ID of the attachment to retrieve.
-
- **Description:** Search for a contact in Gmail.
+
+ **Description:** Retrieve a specific email thread by ID.
**Parameters:**
- - `searchTerm` (string, required): Term - Specify a search term to search for near or exact matches on the names, nickNames, emailAddresses, phoneNumbers, or organizations Contact properties.
+ - `userId` (string, required): The user's email address or 'me' for the authenticated user. (default: "me")
+ - `id` (string, required): The ID of the thread to retrieve.
+ - `format` (string, optional): The format to return the messages in. Options: "full", "metadata", "minimal". (default: "full")
+ - `metadataHeaders` (array, optional): When given and format is METADATA, only include headers specified.
-
- **Description:** Delete a contact in Gmail.
+
+ **Description:** Modify the labels applied to a thread.
**Parameters:**
- - `resourceName` (string, required): Resource Name - Specify the resource name of the contact to delete.
+ - `userId` (string, required): The user's email address or 'me' for the authenticated user. (default: "me")
+ - `id` (string, required): The ID of the thread to modify.
+ - `addLabelIds` (array, optional): A list of IDs of labels to add to this thread.
+ - `removeLabelIds` (array, optional): A list of IDs of labels to remove from this thread.
-
- **Description:** Create a draft in Gmail.
+
+ **Description:** Move a thread to the trash.
**Parameters:**
- - `toRecipients` (array, optional): To - Specify the recipients as either a single string or a JSON array.
- ```json
- [
- "recipient1@domain.com",
- "recipient2@domain.com"
- ]
- ```
- - `from` (string, optional): From - Specify the email of the sender.
- - `subject` (string, optional): Subject - Specify the subject of the message.
- - `messageContent` (string, optional): Message Content - Specify the content of the email message as plain text or HTML.
- - `attachments` (string, optional): Attachments - Accepts either a single file object or a JSON array of file objects.
- - `additionalHeaders` (object, optional): Additional Headers - Specify any additional header fields here.
- ```json
- {
- "reply-to": "Sender Name "
- }
- ```
+ - `userId` (string, required): The user's email address or 'me' for the authenticated user. (default: "me")
+ - `id` (string, required): The ID of the thread to trash.
+
+
+
+ **Description:** Remove a thread from the trash.
+
+ **Parameters:**
+ - `userId` (string, required): The user's email address or 'me' for the authenticated user. (default: "me")
+ - `id` (string, required): The ID of the thread to untrash.
@@ -177,19 +142,13 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get enterprise tools (Gmail tools will be included)
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
# Create an agent with Gmail capabilities
gmail_agent = Agent(
role="Email Manager",
- goal="Manage email communications and contacts efficiently",
+ goal="Manage email communications and messages efficiently",
backstory="An AI assistant specialized in email management and communication.",
- tools=[enterprise_tools]
+ apps=['gmail'] # All Gmail actions will be available
)
# Task to send a follow-up email
@@ -211,19 +170,18 @@ crew.kickoff()
### Filtering Specific Gmail Tools
```python
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get only specific Gmail tools
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token",
- actions_list=["gmail_send_email", "gmail_search_for_email", "gmail_create_draft"]
-)
+from crewai import Agent, Task, Crew
+# Create agent with specific Gmail actions only
email_coordinator = Agent(
role="Email Coordinator",
goal="Coordinate email communications and manage drafts",
backstory="An AI assistant that focuses on email coordination and draft management.",
- tools=enterprise_tools
+ apps=[
+ 'gmail/send_email',
+ 'gmail/fetch_emails',
+ 'gmail/create_draft'
+ ]
)
# Task to prepare and send emails
@@ -241,57 +199,17 @@ crew = Crew(
crew.kickoff()
```
-### Contact Management
-
-```python
-from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
-
-contact_manager = Agent(
- role="Contact Manager",
- goal="Manage and organize email contacts efficiently",
- backstory="An experienced contact manager who maintains organized contact databases.",
- tools=[enterprise_tools]
-)
-
-# Task to manage contacts
-contact_task = Task(
- description="""
- 1. Search for contacts from the 'example.com' domain
- 2. Create new contacts for recent email senders not in the contact list
- 3. Update contact information with recent interaction data
- """,
- agent=contact_manager,
- expected_output="Contact database updated with new contacts and recent interactions"
-)
-
-crew = Crew(
- agents=[contact_manager],
- tasks=[contact_task]
-)
-
-crew.kickoff()
-```
-
### Email Search and Analysis
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
+# Create agent with Gmail search and analysis capabilities
email_analyst = Agent(
role="Email Analyst",
goal="Analyze email patterns and provide insights",
backstory="An AI assistant that analyzes email data to provide actionable insights.",
- tools=[enterprise_tools]
+ apps=['gmail/fetch_emails', 'gmail/get_message'] # Specific actions for email analysis
)
# Task to analyze email patterns
@@ -313,38 +231,37 @@ crew = Crew(
crew.kickoff()
```
-### Automated Email Workflows
+### Thread Management
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
-workflow_manager = Agent(
- role="Email Workflow Manager",
- goal="Automate email workflows and responses",
- backstory="An AI assistant that manages automated email workflows and responses.",
- tools=[enterprise_tools]
+# Create agent with Gmail thread management capabilities
+thread_manager = Agent(
+ role="Thread Manager",
+ goal="Organize and manage email threads efficiently",
+ backstory="An AI assistant that specializes in email thread organization and management.",
+ apps=[
+ 'gmail/fetch_thread',
+ 'gmail/modify_thread',
+ 'gmail/trash_thread'
+ ]
)
-# Complex task involving multiple Gmail operations
-workflow_task = Task(
+# Task to organize email threads
+thread_task = Task(
description="""
- 1. Search for emails with 'urgent' in the subject from the last 24 hours
- 2. Create draft responses for each urgent email
- 3. Send automated acknowledgment emails to senders
- 4. Create a summary report of urgent items requiring attention
+ 1. Fetch all threads from the last month
+ 2. Apply appropriate labels to organize threads by project
+ 3. Archive or trash threads that are no longer relevant
""",
- agent=workflow_manager,
- expected_output="Urgent emails processed with automated responses and summary report"
+ agent=thread_manager,
+ expected_output="Email threads organized with appropriate labels and cleanup completed"
)
crew = Crew(
- agents=[workflow_manager],
- tasks=[workflow_task]
+ agents=[thread_manager],
+ tasks=[thread_task]
)
crew.kickoff()
diff --git a/docs/en/enterprise/integrations/google_calendar.mdx b/docs/en/enterprise/integrations/google_calendar.mdx
index 01eb8a0311..38b35d3076 100644
--- a/docs/en/enterprise/integrations/google_calendar.mdx
+++ b/docs/en/enterprise/integrations/google_calendar.mdx
@@ -24,8 +24,8 @@ Before using the Google Calendar integration, ensure you have:
1. Navigate to [CrewAI AMP Integrations](https://app.crewai.com/crewai_plus/connectors)
2. Find **Google Calendar** in the Authentication Integrations section
3. Click **Connect** and complete the OAuth flow
-4. Grant the necessary permissions for calendar and contact access
-5. Copy your Enterprise Token from [Account Settings](https://app.crewai.com/crewai_plus/settings/account)
+4. Grant the necessary permissions for calendar access
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Install Required Package
@@ -36,141 +36,121 @@ uv add crewai-tools
## Available Actions
-
- **Description:** Create an event in Google Calendar.
+
+ **Description:** Get calendar availability (free/busy information).
**Parameters:**
- - `eventName` (string, required): Event name.
- - `startTime` (string, required): Start time - Accepts Unix timestamp or ISO8601 date formats.
- - `endTime` (string, optional): End time - Defaults to one hour after the start time if left blank.
- - `calendar` (string, optional): Calendar - Use Connect Portal Workflow Settings to allow users to select which calendar the event will be added to. Defaults to the user's primary calendar if left blank.
- - `attendees` (string, optional): Attendees - Accepts an array of email addresses or email addresses separated by commas.
- - `eventLocation` (string, optional): Event location.
- - `eventDescription` (string, optional): Event description.
- - `eventId` (string, optional): Event ID - An ID from your application to associate this event with. You can use this ID to sync updates to this event later.
- - `includeMeetLink` (boolean, optional): Include Google Meet link? - Automatically creates Google Meet conference link for this event.
-
-
-
- **Description:** Update an existing event in Google Calendar.
-
- **Parameters:**
- - `eventId` (string, required): Event ID - The ID of the event to update.
- - `eventName` (string, optional): Event name.
- - `startTime` (string, optional): Start time - Accepts Unix timestamp or ISO8601 date formats.
- - `endTime` (string, optional): End time - Defaults to one hour after the start time if left blank.
- - `calendar` (string, optional): Calendar - Use Connect Portal Workflow Settings to allow users to select which calendar the event will be added to. Defaults to the user's primary calendar if left blank.
- - `attendees` (string, optional): Attendees - Accepts an array of email addresses or email addresses separated by commas.
- - `eventLocation` (string, optional): Event location.
- - `eventDescription` (string, optional): Event description.
-
-
-
- **Description:** List events from Google Calendar.
-
- **Parameters:**
- - `calendar` (string, optional): Calendar - Use Connect Portal Workflow Settings to allow users to select which calendar the event will be added to. Defaults to the user's primary calendar if left blank.
- - `after` (string, optional): After - Filters events that start after the provided date (Unix in milliseconds or ISO timestamp). (example: "2025-04-12T10:00:00Z or 1712908800000").
- - `before` (string, optional): Before - Filters events that end before the provided date (Unix in milliseconds or ISO timestamp). (example: "2025-04-12T10:00:00Z or 1712908800000").
-
-
-
- **Description:** Get a specific event by ID from Google Calendar.
-
- **Parameters:**
- - `eventId` (string, required): Event ID.
- - `calendar` (string, optional): Calendar - Use Connect Portal Workflow Settings to allow users to select which calendar the event will be added to. Defaults to the user's primary calendar if left blank.
-
-
-
- **Description:** Delete an event from Google Calendar.
-
- **Parameters:**
- - `eventId` (string, required): Event ID - The ID of the calendar event to be deleted.
- - `calendar` (string, optional): Calendar - Use Connect Portal Workflow Settings to allow users to select which calendar the event will be added to. Defaults to the user's primary calendar if left blank.
+ - `timeMin` (string, required): Start time (RFC3339 format)
+ - `timeMax` (string, required): End time (RFC3339 format)
+ - `items` (array, required): Calendar IDs to check
+ ```json
+ [
+ {
+ "id": "calendar_id"
+ }
+ ]
+ ```
+ - `timeZone` (string, optional): Time zone used in the response. The default is UTC.
+ - `groupExpansionMax` (integer, optional): Maximal number of calendar identifiers to be provided for a single group. Maximum: 100
+ - `calendarExpansionMax` (integer, optional): Maximal number of calendars for which FreeBusy information is to be provided. Maximum: 50
-
- **Description:** Get contacts from Google Calendar.
+
+ **Description:** Create a new event in the specified calendar.
**Parameters:**
- - `paginationParameters` (object, optional): Pagination Parameters.
+ - `calendarId` (string, required): Calendar ID (use 'primary' for main calendar)
+ - `summary` (string, required): Event title/summary
+ - `start_dateTime` (string, required): Start time in RFC3339 format (e.g., 2024-01-20T10:00:00-07:00)
+ - `end_dateTime` (string, required): End time in RFC3339 format
+ - `description` (string, optional): Event description
+ - `timeZone` (string, optional): Time zone (e.g., America/Los_Angeles)
+ - `location` (string, optional): Geographic location of the event as free-form text.
+ - `attendees` (array, optional): List of attendees for the event.
+ ```json
+ [
+ {
+ "email": "attendee@example.com",
+ "displayName": "Attendee Name",
+ "optional": false
+ }
+ ]
+ ```
+ - `reminders` (object, optional): Information about the event's reminders.
```json
{
- "pageCursor": "page_cursor_string"
+ "useDefault": true,
+ "overrides": [
+ {
+ "method": "email",
+ "minutes": 15
+ }
+ ]
}
```
-
-
-
- **Description:** Search for contacts in Google Calendar.
-
- **Parameters:**
- - `query` (string, optional): Search query to search contacts.
-
-
-
- **Description:** List directory people.
-
- **Parameters:**
- - `paginationParameters` (object, optional): Pagination Parameters.
+ - `conferenceData` (object, optional): The conference-related information, such as details of a Google Meet conference.
```json
{
- "pageCursor": "page_cursor_string"
+ "createRequest": {
+ "requestId": "unique-request-id",
+ "conferenceSolutionKey": {
+ "type": "hangoutsMeet"
+ }
+ }
}
```
+ - `visibility` (string, optional): Visibility of the event. Options: default, public, private, confidential. Default: default
+ - `transparency` (string, optional): Whether the event blocks time on the calendar. Options: opaque, transparent. Default: opaque
-
- **Description:** Search directory people.
+
+ **Description:** Retrieve events for the specified calendar.
**Parameters:**
- - `query` (string, required): Search query to search contacts.
- - `paginationParameters` (object, optional): Pagination Parameters.
- ```json
- {
- "pageCursor": "page_cursor_string"
- }
- ```
+ - `calendarId` (string, required): Calendar ID (use 'primary' for main calendar)
+ - `timeMin` (string, optional): Lower bound for events (RFC3339)
+ - `timeMax` (string, optional): Upper bound for events (RFC3339)
+ - `maxResults` (integer, optional): Maximum number of events (default 10). Minimum: 1, Maximum: 2500
+ - `orderBy` (string, optional): The order of the events returned in the result. Options: startTime, updated. Default: startTime
+ - `singleEvents` (boolean, optional): Whether to expand recurring events into instances and only return single one-off events and instances of recurring events. Default: true
+ - `showDeleted` (boolean, optional): Whether to include deleted events (with status equals cancelled) in the result. Default: false
+ - `showHiddenInvitations` (boolean, optional): Whether to include hidden invitations in the result. Default: false
+ - `q` (string, optional): Free text search terms to find events that match these terms in any field.
+ - `pageToken` (string, optional): Token specifying which result page to return.
+ - `timeZone` (string, optional): Time zone used in the response.
+ - `updatedMin` (string, optional): Lower bound for an event's last modification time (RFC3339) to filter by.
+ - `iCalUID` (string, optional): Specifies an event ID in the iCalendar format to be provided in the response.
-
- **Description:** List other contacts.
+
+ **Description:** Update an existing event.
**Parameters:**
- - `paginationParameters` (object, optional): Pagination Parameters.
- ```json
- {
- "pageCursor": "page_cursor_string"
- }
- ```
+ - `calendarId` (string, required): Calendar ID
+ - `eventId` (string, required): Event ID to update
+ - `summary` (string, optional): Updated event title
+ - `description` (string, optional): Updated event description
+ - `start_dateTime` (string, optional): Updated start time
+ - `end_dateTime` (string, optional): Updated end time
-
- **Description:** Search other contacts.
+
+ **Description:** Delete a specified event.
**Parameters:**
- - `query` (string, optional): Search query to search contacts.
+ - `calendarId` (string, required): Calendar ID
+ - `eventId` (string, required): Event ID to delete
-
- **Description:** Get availability information for calendars.
+
+ **Description:** Retrieve user's calendar list.
**Parameters:**
- - `timeMin` (string, required): The start of the interval. In ISO format.
- - `timeMax` (string, required): The end of the interval. In ISO format.
- - `timeZone` (string, optional): Time zone used in the response. Optional. The default is UTC.
- - `items` (array, optional): List of calendars and/or groups to query. Defaults to the user default calendar.
- ```json
- [
- {
- "id": "calendar_id_1"
- },
- {
- "id": "calendar_id_2"
- }
- ]
- ```
+ - `maxResults` (integer, optional): Maximum number of entries returned on one result page. Minimum: 1
+ - `pageToken` (string, optional): Token specifying which result page to return.
+ - `showDeleted` (boolean, optional): Whether to include deleted calendar list entries in the result. Default: false
+ - `showHidden` (boolean, optional): Whether to show hidden entries. Default: false
+ - `minAccessRole` (string, optional): The minimum access role for the user in the returned entries. Options: freeBusyReader, owner, reader, writer
@@ -180,19 +160,13 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get enterprise tools (Google Calendar tools will be included)
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
# Create an agent with Google Calendar capabilities
calendar_agent = Agent(
role="Schedule Manager",
goal="Manage calendar events and scheduling efficiently",
backstory="An AI assistant specialized in calendar management and scheduling coordination.",
- tools=[enterprise_tools]
+ apps=['google_calendar'] # All Google Calendar actions will be available
)
# Task to create a meeting
@@ -214,19 +188,11 @@ crew.kickoff()
### Filtering Specific Calendar Tools
```python
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get only specific Google Calendar tools
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token",
- actions_list=["google_calendar_create_event", "google_calendar_list_events", "google_calendar_get_availability"]
-)
-
meeting_coordinator = Agent(
role="Meeting Coordinator",
goal="Coordinate meetings and check availability",
backstory="An AI assistant that focuses on meeting scheduling and availability management.",
- tools=enterprise_tools
+ apps=['google_calendar/create_event', 'google_calendar/get_availability']
)
# Task to schedule a meeting with availability check
@@ -248,17 +214,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
event_manager = Agent(
role="Event Manager",
goal="Manage and update calendar events efficiently",
backstory="An experienced event manager who handles event logistics and updates.",
- tools=[enterprise_tools]
+ apps=['google_calendar']
)
# Task to manage event updates
@@ -266,10 +227,10 @@ event_management = Task(
description="""
1. List all events for this week
2. Update any events that need location changes to include video conference links
- 3. Send calendar invitations to new team members for recurring meetings
+ 3. Check availability for upcoming meetings
""",
agent=event_manager,
- expected_output="Weekly events updated with proper locations and new attendees added"
+ expected_output="Weekly events updated with proper locations and availability checked"
)
crew = Crew(
@@ -280,33 +241,28 @@ crew = Crew(
crew.kickoff()
```
-### Contact and Availability Management
+### Availability and Calendar Management
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
availability_coordinator = Agent(
role="Availability Coordinator",
- goal="Coordinate availability and manage contacts for scheduling",
- backstory="An AI assistant that specializes in availability management and contact coordination.",
- tools=[enterprise_tools]
+ goal="Coordinate availability and manage calendars for scheduling",
+ backstory="An AI assistant that specializes in availability management and calendar coordination.",
+ apps=['google_calendar']
)
# Task to coordinate availability
availability_task = Task(
description="""
- 1. Search for contacts in the engineering department
- 2. Check availability for all engineers next Friday afternoon
+ 1. Get the list of available calendars
+ 2. Check availability for all calendars next Friday afternoon
3. Create a team meeting for the first available 2-hour slot
4. Include Google Meet link and send invitations
""",
agent=availability_coordinator,
- expected_output="Team meeting scheduled based on availability with all engineers invited"
+ expected_output="Team meeting scheduled based on availability with all team members invited"
)
crew = Crew(
@@ -321,17 +277,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
scheduling_automator = Agent(
role="Scheduling Automator",
goal="Automate scheduling workflows and calendar management",
backstory="An AI assistant that automates complex scheduling scenarios and calendar workflows.",
- tools=[enterprise_tools]
+ apps=['google_calendar']
)
# Complex scheduling automation task
@@ -365,21 +316,16 @@ crew.kickoff()
- Check if calendar sharing settings allow the required access level
**Event Creation Issues**
-- Verify that time formats are correct (ISO8601 or Unix timestamps)
+- Verify that time formats are correct (RFC3339 format)
- Ensure attendee email addresses are properly formatted
- Check that the target calendar exists and is accessible
- Verify time zones are correctly specified
**Availability and Time Conflicts**
-- Use proper ISO format for time ranges when checking availability
+- Use proper RFC3339 format for time ranges when checking availability
- Ensure time zones are consistent across all operations
- Verify that calendar IDs are correct when checking multiple calendars
-**Contact and People Search**
-- Ensure search queries are properly formatted
-- Check that directory access permissions are granted
-- Verify that contact information is up to date and accessible
-
**Event Updates and Deletions**
- Verify that event IDs are correct and events exist
- Ensure you have edit permissions for the events
diff --git a/docs/en/enterprise/integrations/google_contacts.mdx b/docs/en/enterprise/integrations/google_contacts.mdx
new file mode 100644
index 0000000000..6892c9e3db
--- /dev/null
+++ b/docs/en/enterprise/integrations/google_contacts.mdx
@@ -0,0 +1,402 @@
+---
+title: Google Contacts Integration
+description: "Contact and directory management with Google Contacts integration for CrewAI."
+icon: "address-book"
+mode: "wide"
+---
+
+## Overview
+
+Enable your agents to manage contacts and directory information through Google Contacts. Access personal contacts, search directory people, create and update contact information, and manage contact groups with AI-powered automation.
+
+## Prerequisites
+
+Before using the Google Contacts integration, ensure you have:
+
+- A [CrewAI AMP](https://app.crewai.com) account with an active subscription
+- A Google account with Google Contacts access
+- Connected your Google account through the [Integrations page](https://app.crewai.com/crewai_plus/connectors)
+
+## Setting Up Google Contacts Integration
+
+### 1. Connect Your Google Account
+
+1. Navigate to [CrewAI AMP Integrations](https://app.crewai.com/crewai_plus/connectors)
+2. Find **Google Contacts** in the Authentication Integrations section
+3. Click **Connect** and complete the OAuth flow
+4. Grant the necessary permissions for contacts and directory access
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
+
+### 2. Install Required Package
+
+```bash
+uv add crewai-tools
+```
+
+## Available Actions
+
+
+
+ **Description:** Retrieve user's contacts from Google Contacts.
+
+ **Parameters:**
+ - `pageSize` (integer, optional): Number of contacts to return (max 1000). Minimum: 1, Maximum: 1000
+ - `pageToken` (string, optional): The token of the page to retrieve.
+ - `personFields` (string, optional): Fields to include (e.g., 'names,emailAddresses,phoneNumbers'). Default: names,emailAddresses,phoneNumbers
+ - `requestSyncToken` (boolean, optional): Whether the response should include a sync token. Default: false
+ - `sortOrder` (string, optional): The order in which the connections should be sorted. Options: LAST_MODIFIED_ASCENDING, LAST_MODIFIED_DESCENDING, FIRST_NAME_ASCENDING, LAST_NAME_ASCENDING
+
+
+
+ **Description:** Search for contacts using a query string.
+
+ **Parameters:**
+ - `query` (string, required): Search query string
+ - `readMask` (string, required): Fields to read (e.g., 'names,emailAddresses,phoneNumbers')
+ - `pageSize` (integer, optional): Number of results to return. Minimum: 1, Maximum: 30
+ - `pageToken` (string, optional): Token specifying which result page to return.
+ - `sources` (array, optional): The sources to search in. Options: READ_SOURCE_TYPE_CONTACT, READ_SOURCE_TYPE_PROFILE. Default: READ_SOURCE_TYPE_CONTACT
+
+
+
+ **Description:** List people in the authenticated user's directory.
+
+ **Parameters:**
+ - `sources` (array, required): Directory sources to search within. Options: DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE, DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT. Default: DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE
+ - `pageSize` (integer, optional): Number of people to return. Minimum: 1, Maximum: 1000
+ - `pageToken` (string, optional): Token specifying which result page to return.
+ - `readMask` (string, optional): Fields to read (e.g., 'names,emailAddresses')
+ - `requestSyncToken` (boolean, optional): Whether the response should include a sync token. Default: false
+ - `mergeSources` (array, optional): Additional data to merge into the directory people responses. Options: CONTACT
+
+
+
+ **Description:** Search for people in the directory.
+
+ **Parameters:**
+ - `query` (string, required): Search query
+ - `sources` (string, required): Directory sources (use 'DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE')
+ - `pageSize` (integer, optional): Number of results to return
+ - `readMask` (string, optional): Fields to read
+
+
+
+ **Description:** List other contacts (not in user's personal contacts).
+
+ **Parameters:**
+ - `pageSize` (integer, optional): Number of contacts to return. Minimum: 1, Maximum: 1000
+ - `pageToken` (string, optional): Token specifying which result page to return.
+ - `readMask` (string, optional): Fields to read
+ - `requestSyncToken` (boolean, optional): Whether the response should include a sync token. Default: false
+
+
+
+ **Description:** Search other contacts.
+
+ **Parameters:**
+ - `query` (string, required): Search query
+ - `readMask` (string, required): Fields to read (e.g., 'names,emailAddresses')
+ - `pageSize` (integer, optional): Number of results
+
+
+
+ **Description:** Get a single person's contact information by resource name.
+
+ **Parameters:**
+ - `resourceName` (string, required): The resource name of the person to get (e.g., 'people/c123456789')
+ - `personFields` (string, optional): Fields to include (e.g., 'names,emailAddresses,phoneNumbers'). Default: names,emailAddresses,phoneNumbers
+
+
+
+ **Description:** Create a new contact in the user's address book.
+
+ **Parameters:**
+ - `names` (array, optional): Person's names
+ ```json
+ [
+ {
+ "givenName": "John",
+ "familyName": "Doe",
+ "displayName": "John Doe"
+ }
+ ]
+ ```
+ - `emailAddresses` (array, optional): Email addresses
+ ```json
+ [
+ {
+ "value": "john.doe@example.com",
+ "type": "work"
+ }
+ ]
+ ```
+ - `phoneNumbers` (array, optional): Phone numbers
+ ```json
+ [
+ {
+ "value": "+1234567890",
+ "type": "mobile"
+ }
+ ]
+ ```
+ - `addresses` (array, optional): Postal addresses
+ ```json
+ [
+ {
+ "formattedValue": "123 Main St, City, State 12345",
+ "type": "home"
+ }
+ ]
+ ```
+ - `organizations` (array, optional): Organizations/companies
+ ```json
+ [
+ {
+ "name": "Company Name",
+ "title": "Job Title",
+ "type": "work"
+ }
+ ]
+ ```
+
+
+
+ **Description:** Update an existing contact's information.
+
+ **Parameters:**
+ - `resourceName` (string, required): The resource name of the person to update (e.g., 'people/c123456789')
+ - `updatePersonFields` (string, required): Fields to update (e.g., 'names,emailAddresses,phoneNumbers')
+ - `names` (array, optional): Person's names
+ - `emailAddresses` (array, optional): Email addresses
+ - `phoneNumbers` (array, optional): Phone numbers
+
+
+
+ **Description:** Delete a contact from the user's address book.
+
+ **Parameters:**
+ - `resourceName` (string, required): The resource name of the person to delete (e.g., 'people/c123456789')
+
+
+
+ **Description:** Get information about multiple people in a single request.
+
+ **Parameters:**
+ - `resourceNames` (array, required): Resource names of people to get. Maximum: 200 items
+ - `personFields` (string, optional): Fields to include (e.g., 'names,emailAddresses,phoneNumbers'). Default: names,emailAddresses,phoneNumbers
+
+
+
+ **Description:** List the user's contact groups (labels).
+
+ **Parameters:**
+ - `pageSize` (integer, optional): Number of contact groups to return. Minimum: 1, Maximum: 1000
+ - `pageToken` (string, optional): Token specifying which result page to return.
+ - `groupFields` (string, optional): Fields to include (e.g., 'name,memberCount,clientData'). Default: name,memberCount
+
+
+
+## Usage Examples
+
+### Basic Google Contacts Agent Setup
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent with Google Contacts capabilities
+contacts_agent = Agent(
+ role="Contact Manager",
+ goal="Manage contacts and directory information efficiently",
+ backstory="An AI assistant specialized in contact management and directory operations.",
+ apps=['google_contacts'] # All Google Contacts actions will be available
+)
+
+# Task to retrieve and organize contacts
+contact_management_task = Task(
+ description="Retrieve all contacts and organize them by company affiliation",
+ agent=contacts_agent,
+ expected_output="Contacts retrieved and organized by company with summary report"
+)
+
+# Run the task
+crew = Crew(
+ agents=[contacts_agent],
+ tasks=[contact_management_task]
+)
+
+crew.kickoff()
+```
+
+### Directory Search and Management
+
+```python
+from crewai import Agent, Task, Crew
+
+directory_manager = Agent(
+ role="Directory Manager",
+ goal="Search and manage directory people and contacts",
+ backstory="An AI assistant that specializes in directory management and people search.",
+ apps=[
+ 'google_contacts/search_directory_people',
+ 'google_contacts/list_directory_people',
+ 'google_contacts/search_contacts'
+ ]
+)
+
+# Task to search and manage directory
+directory_task = Task(
+ description="Search for team members in the company directory and create a team contact list",
+ agent=directory_manager,
+ expected_output="Team directory compiled with contact information"
+)
+
+crew = Crew(
+ agents=[directory_manager],
+ tasks=[directory_task]
+)
+
+crew.kickoff()
+```
+
+### Contact Creation and Updates
+
+```python
+from crewai import Agent, Task, Crew
+
+contact_curator = Agent(
+ role="Contact Curator",
+ goal="Create and update contact information systematically",
+ backstory="An AI assistant that maintains accurate and up-to-date contact information.",
+ apps=['google_contacts']
+)
+
+# Task to create and update contacts
+curation_task = Task(
+ description="""
+ 1. Search for existing contacts related to new business partners
+ 2. Create new contacts for partners not in the system
+ 3. Update existing contact information with latest details
+ 4. Organize contacts into appropriate groups
+ """,
+ agent=contact_curator,
+ expected_output="Contact database updated with new partners and organized groups"
+)
+
+crew = Crew(
+ agents=[contact_curator],
+ tasks=[curation_task]
+)
+
+crew.kickoff()
+```
+
+### Contact Group Management
+
+```python
+from crewai import Agent, Task, Crew
+
+group_organizer = Agent(
+ role="Contact Group Organizer",
+ goal="Organize contacts into meaningful groups and categories",
+ backstory="An AI assistant that specializes in contact organization and group management.",
+ apps=['google_contacts']
+)
+
+# Task to organize contact groups
+organization_task = Task(
+ description="""
+ 1. List all existing contact groups
+ 2. Analyze contact distribution across groups
+ 3. Create new groups for better organization
+ 4. Move contacts to appropriate groups based on their information
+ """,
+ agent=group_organizer,
+ expected_output="Contacts organized into logical groups with improved structure"
+)
+
+crew = Crew(
+ agents=[group_organizer],
+ tasks=[organization_task]
+)
+
+crew.kickoff()
+```
+
+### Comprehensive Contact Management
+
+```python
+from crewai import Agent, Task, Crew
+
+contact_specialist = Agent(
+ role="Contact Management Specialist",
+ goal="Provide comprehensive contact management across all sources",
+ backstory="An AI assistant that handles all aspects of contact management including personal, directory, and other contacts.",
+ apps=['google_contacts']
+)
+
+# Complex contact management task
+comprehensive_task = Task(
+ description="""
+ 1. Retrieve contacts from all sources (personal, directory, other)
+ 2. Search for duplicate contacts and merge information
+ 3. Update outdated contact information
+ 4. Create missing contacts for important stakeholders
+ 5. Organize contacts into meaningful groups
+ 6. Generate a comprehensive contact report
+ """,
+ agent=contact_specialist,
+ expected_output="Complete contact management performed with unified contact database and detailed report"
+)
+
+crew = Crew(
+ agents=[contact_specialist],
+ tasks=[comprehensive_task]
+)
+
+crew.kickoff()
+```
+
+## Troubleshooting
+
+### Common Issues
+
+**Permission Errors**
+- Ensure your Google account has appropriate permissions for contacts access
+- Verify that the OAuth connection includes required scopes for Google Contacts API
+- Check that directory access permissions are granted for organization contacts
+
+**Resource Name Format Issues**
+- Ensure resource names follow the correct format (e.g., 'people/c123456789' for contacts)
+- Verify that contact group resource names use the format 'contactGroups/groupId'
+- Check that resource names exist and are accessible
+
+**Search and Query Issues**
+- Ensure search queries are properly formatted and not empty
+- Use appropriate readMask fields for the data you need
+- Verify that search sources are correctly specified (contacts vs profiles)
+
+**Contact Creation and Updates**
+- Ensure required fields are provided when creating contacts
+- Verify that email addresses and phone numbers are properly formatted
+- Check that updatePersonFields parameter includes all fields being updated
+
+**Directory Access Issues**
+- Ensure you have appropriate permissions to access organization directory
+- Verify that directory sources are correctly specified
+- Check that your organization allows API access to directory information
+
+**Pagination and Limits**
+- Be mindful of page size limits (varies by endpoint)
+- Use pageToken for pagination through large result sets
+- Respect API rate limits and implement appropriate delays
+
+**Contact Groups and Organization**
+- Ensure contact group names are unique when creating new groups
+- Verify that contacts exist before adding them to groups
+- Check that you have permissions to modify contact groups
+
+### Getting Help
+
+
+ Contact our support team for assistance with Google Contacts integration setup or troubleshooting.
+
diff --git a/docs/en/enterprise/integrations/google_docs.mdx b/docs/en/enterprise/integrations/google_docs.mdx
new file mode 100644
index 0000000000..6b553f5bbc
--- /dev/null
+++ b/docs/en/enterprise/integrations/google_docs.mdx
@@ -0,0 +1,228 @@
+---
+title: Google Docs Integration
+description: "Document creation and editing with Google Docs integration for CrewAI."
+icon: "file-lines"
+mode: "wide"
+---
+
+## Overview
+
+Enable your agents to create, edit, and manage Google Docs documents with text manipulation and formatting. Automate document creation, insert and replace text, manage content ranges, and streamline your document workflows with AI-powered automation.
+
+## Prerequisites
+
+Before using the Google Docs integration, ensure you have:
+
+- A [CrewAI AMP](https://app.crewai.com) account with an active subscription
+- A Google account with Google Docs access
+- Connected your Google account through the [Integrations page](https://app.crewai.com/crewai_plus/connectors)
+
+## Setting Up Google Docs Integration
+
+### 1. Connect Your Google Account
+
+1. Navigate to [CrewAI AMP Integrations](https://app.crewai.com/crewai_plus/connectors)
+2. Find **Google Docs** in the Authentication Integrations section
+3. Click **Connect** and complete the OAuth flow
+4. Grant the necessary permissions for document access
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
+
+### 2. Install Required Package
+
+```bash
+uv add crewai-tools
+```
+
+## Available Actions
+
+
+
+ **Description:** Create a new Google Document.
+
+ **Parameters:**
+ - `title` (string, optional): The title for the new document.
+
+
+
+ **Description:** Get the contents and metadata of a Google Document.
+
+ **Parameters:**
+ - `documentId` (string, required): The ID of the document to retrieve.
+ - `includeTabsContent` (boolean, optional): Whether to include tab content. Default is `false`.
+ - `suggestionsViewMode` (string, optional): The suggestions view mode to apply to the document. Enum: `DEFAULT_FOR_CURRENT_ACCESS`, `PREVIEW_SUGGESTIONS_ACCEPTED`, `PREVIEW_WITHOUT_SUGGESTIONS`. Default is `DEFAULT_FOR_CURRENT_ACCESS`.
+
+
+
+ **Description:** Apply one or more updates to a Google Document.
+
+ **Parameters:**
+ - `documentId` (string, required): The ID of the document to update.
+ - `requests` (array, required): A list of updates to apply to the document. Each item is an object representing a request.
+ - `writeControl` (object, optional): Provides control over how write requests are executed. Contains `requiredRevisionId` (string) and `targetRevisionId` (string).
+
+
+
+ **Description:** Insert text into a Google Document at a specific location.
+
+ **Parameters:**
+ - `documentId` (string, required): The ID of the document to update.
+ - `text` (string, required): The text to insert.
+ - `index` (integer, optional): The zero-based index where to insert the text. Default is `1`.
+
+
+
+ **Description:** Replace all instances of text in a Google Document.
+
+ **Parameters:**
+ - `documentId` (string, required): The ID of the document to update.
+ - `containsText` (string, required): The text to find and replace.
+ - `replaceText` (string, required): The text to replace it with.
+ - `matchCase` (boolean, optional): Whether the search should respect case. Default is `false`.
+
+
+
+ **Description:** Delete content from a specific range in a Google Document.
+
+ **Parameters:**
+ - `documentId` (string, required): The ID of the document to update.
+ - `startIndex` (integer, required): The start index of the range to delete.
+ - `endIndex` (integer, required): The end index of the range to delete.
+
+
+
+ **Description:** Insert a page break at a specific location in a Google Document.
+
+ **Parameters:**
+ - `documentId` (string, required): The ID of the document to update.
+ - `index` (integer, optional): The zero-based index where to insert the page break. Default is `1`.
+
+
+
+ **Description:** Create a named range in a Google Document.
+
+ **Parameters:**
+ - `documentId` (string, required): The ID of the document to update.
+ - `name` (string, required): The name for the named range.
+ - `startIndex` (integer, required): The start index of the range.
+ - `endIndex` (integer, required): The end index of the range.
+
+
+
+## Usage Examples
+
+### Basic Google Docs Agent Setup
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent with Google Docs capabilities
+docs_agent = Agent(
+ role="Document Creator",
+ goal="Create and manage Google Docs documents efficiently",
+ backstory="An AI assistant specialized in Google Docs document creation and editing.",
+ apps=['google_docs'] # All Google Docs actions will be available
+)
+
+# Task to create a new document
+create_doc_task = Task(
+ description="Create a new Google Document titled 'Project Status Report'",
+ agent=docs_agent,
+ expected_output="New Google Document 'Project Status Report' created successfully"
+)
+
+# Run the task
+crew = Crew(
+ agents=[docs_agent],
+ tasks=[create_doc_task]
+)
+
+crew.kickoff()
+```
+
+### Text Editing and Content Management
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent focused on text editing
+text_editor = Agent(
+ role="Document Editor",
+ goal="Edit and update content in Google Docs documents",
+ backstory="An AI assistant skilled in precise text editing and content management.",
+ apps=['google_docs/insert_text', 'google_docs/replace_text', 'google_docs/delete_content_range']
+)
+
+# Task to edit document content
+edit_content_task = Task(
+ description="In document 'your_document_id', insert the text 'Executive Summary: ' at the beginning, then replace all instances of 'TODO' with 'COMPLETED'.",
+ agent=text_editor,
+ expected_output="Document updated with new text inserted and TODO items replaced."
+)
+
+crew = Crew(
+ agents=[text_editor],
+ tasks=[edit_content_task]
+)
+
+crew.kickoff()
+```
+
+### Advanced Document Operations
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent for advanced document operations
+document_formatter = Agent(
+ role="Document Formatter",
+ goal="Apply advanced formatting and structure to Google Docs",
+ backstory="An AI assistant that handles complex document formatting and organization.",
+ apps=['google_docs/batch_update', 'google_docs/insert_page_break', 'google_docs/create_named_range']
+)
+
+# Task to format document
+format_doc_task = Task(
+ description="In document 'your_document_id', insert a page break at position 100, create a named range called 'Introduction' for characters 1-50, and apply batch formatting updates.",
+ agent=document_formatter,
+ expected_output="Document formatted with page break, named range, and styling applied."
+)
+
+crew = Crew(
+ agents=[document_formatter],
+ tasks=[format_doc_task]
+)
+
+crew.kickoff()
+```
+
+## Troubleshooting
+
+### Common Issues
+
+**Authentication Errors**
+- Ensure your Google account has the necessary permissions for Google Docs access.
+- Verify that the OAuth connection includes all required scopes (`https://www.googleapis.com/auth/documents`).
+
+**Document ID Issues**
+- Double-check document IDs for correctness.
+- Ensure the document exists and is accessible to your account.
+- Document IDs can be found in the Google Docs URL.
+
+**Text Insertion and Range Operations**
+- When using `insert_text` or `delete_content_range`, ensure index positions are valid.
+- Remember that Google Docs uses zero-based indexing.
+- The document must have content at the specified index positions.
+
+**Batch Update Request Formatting**
+- When using `batch_update`, ensure the `requests` array is correctly formatted according to the Google Docs API documentation.
+- Complex updates require specific JSON structures for each request type.
+
+**Replace Text Operations**
+- For `replace_text`, ensure the `containsText` parameter exactly matches the text you want to replace.
+- Use `matchCase` parameter to control case sensitivity.
+
+### Getting Help
+
+
+ Contact our support team for assistance with Google Docs integration setup or troubleshooting.
+
diff --git a/docs/en/enterprise/integrations/google_drive.mdx b/docs/en/enterprise/integrations/google_drive.mdx
new file mode 100644
index 0000000000..11f88a02a2
--- /dev/null
+++ b/docs/en/enterprise/integrations/google_drive.mdx
@@ -0,0 +1,213 @@
+---
+title: Google Drive Integration
+description: "File storage and management with Google Drive integration for CrewAI."
+icon: "google"
+mode: "wide"
+---
+
+## Overview
+
+Enable your agents to manage files and folders through Google Drive. Upload, download, organize, and share files, create folders, and streamline your document management workflows with AI-powered automation.
+
+## Prerequisites
+
+Before using the Google Drive integration, ensure you have:
+
+- A [CrewAI AMP](https://app.crewai.com) account with an active subscription
+- A Google account with Google Drive access
+- Connected your Google account through the [Integrations page](https://app.crewai.com/crewai_plus/connectors)
+
+## Setting Up Google Drive Integration
+
+### 1. Connect Your Google Account
+
+1. Navigate to [CrewAI AMP Integrations](https://app.crewai.com/crewai_plus/connectors)
+2. Find **Google Drive** in the Authentication Integrations section
+3. Click **Connect** and complete the OAuth flow
+4. Grant the necessary permissions for file and folder management
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
+
+### 2. Install Required Package
+
+```bash
+uv add crewai-tools
+```
+
+## Available Actions
+
+
+
+ **Description:** Get a file by ID from Google Drive.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the file to retrieve.
+
+
+
+ **Description:** List files in Google Drive.
+
+ **Parameters:**
+ - `q` (string, optional): Query string to filter files (example: "name contains 'report'").
+ - `page_size` (integer, optional): Maximum number of files to return (default: 100, max: 1000).
+ - `page_token` (string, optional): Token for retrieving the next page of results.
+ - `order_by` (string, optional): Sort order (example: "name", "createdTime desc", "modifiedTime").
+ - `spaces` (string, optional): Comma-separated list of spaces to query (drive, appDataFolder, photos).
+
+
+
+ **Description:** Upload a file to Google Drive.
+
+ **Parameters:**
+ - `name` (string, required): Name of the file to create.
+ - `content` (string, required): Content of the file to upload.
+ - `mime_type` (string, optional): MIME type of the file (example: "text/plain", "application/pdf").
+ - `parent_folder_id` (string, optional): ID of the parent folder where the file should be created.
+ - `description` (string, optional): Description of the file.
+
+
+
+ **Description:** Download a file from Google Drive.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the file to download.
+ - `mime_type` (string, optional): MIME type for export (required for Google Workspace documents).
+
+
+
+ **Description:** Create a new folder in Google Drive.
+
+ **Parameters:**
+ - `name` (string, required): Name of the folder to create.
+ - `parent_folder_id` (string, optional): ID of the parent folder where the new folder should be created.
+ - `description` (string, optional): Description of the folder.
+
+
+
+ **Description:** Delete a file from Google Drive.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the file to delete.
+
+
+
+ **Description:** Share a file in Google Drive with specific users or make it public.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the file to share.
+ - `role` (string, required): The role granted by this permission (reader, writer, commenter, owner).
+ - `type` (string, required): The type of the grantee (user, group, domain, anyone).
+ - `email_address` (string, optional): The email address of the user or group to share with (required for user/group types).
+ - `domain` (string, optional): The domain to share with (required for domain type).
+ - `send_notification_email` (boolean, optional): Whether to send a notification email (default: true).
+ - `email_message` (string, optional): A plain text custom message to include in the notification email.
+
+
+
+ **Description:** Update an existing file in Google Drive.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the file to update.
+ - `name` (string, optional): New name for the file.
+ - `content` (string, optional): New content for the file.
+ - `mime_type` (string, optional): New MIME type for the file.
+ - `description` (string, optional): New description for the file.
+ - `add_parents` (string, optional): Comma-separated list of parent folder IDs to add.
+ - `remove_parents` (string, optional): Comma-separated list of parent folder IDs to remove.
+
+
+
+## Usage Examples
+
+### Basic Google Drive Agent Setup
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent with Google Drive capabilities
+drive_agent = Agent(
+ role="File Manager",
+ goal="Manage files and folders in Google Drive efficiently",
+ backstory="An AI assistant specialized in document and file management.",
+ apps=['google_drive'] # All Google Drive actions will be available
+)
+
+# Task to organize files
+organize_files_task = Task(
+ description="List all files in the root directory and organize them into appropriate folders",
+ agent=drive_agent,
+ expected_output="Summary of files organized with folder structure"
+)
+
+# Run the task
+crew = Crew(
+ agents=[drive_agent],
+ tasks=[organize_files_task]
+)
+
+crew.kickoff()
+```
+
+### Filtering Specific Google Drive Tools
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create agent with specific Google Drive actions only
+file_manager_agent = Agent(
+ role="Document Manager",
+ goal="Upload and manage documents efficiently",
+ backstory="An AI assistant that focuses on document upload and organization.",
+ apps=[
+ 'google_drive/upload_file',
+ 'google_drive/create_folder',
+ 'google_drive/share_file'
+ ] # Specific Google Drive actions
+)
+
+# Task to upload and share documents
+document_task = Task(
+ description="Upload the quarterly report and share it with the finance team",
+ agent=file_manager_agent,
+ expected_output="Document uploaded and sharing permissions configured"
+)
+
+crew = Crew(
+ agents=[file_manager_agent],
+ tasks=[document_task]
+)
+
+crew.kickoff()
+```
+
+### Advanced File Management
+
+```python
+from crewai import Agent, Task, Crew
+
+file_organizer = Agent(
+ role="File Organizer",
+ goal="Maintain organized file structure and manage permissions",
+ backstory="An experienced file manager who ensures proper organization and access control.",
+ apps=['google_drive']
+)
+
+# Complex task involving multiple Google Drive operations
+organization_task = Task(
+ description="""
+ 1. List all files in the shared folder
+ 2. Create folders for different document types (Reports, Presentations, Spreadsheets)
+ 3. Move files to appropriate folders based on their type
+ 4. Set appropriate sharing permissions for each folder
+ 5. Create a summary document of the organization changes
+ """,
+ agent=file_organizer,
+ expected_output="Files organized into categorized folders with proper permissions and summary report"
+)
+
+crew = Crew(
+ agents=[file_organizer],
+ tasks=[organization_task]
+)
+
+crew.kickoff()
+```
diff --git a/docs/en/enterprise/integrations/google_sheets.mdx b/docs/en/enterprise/integrations/google_sheets.mdx
index 9ccad0d33e..61183edc9a 100644
--- a/docs/en/enterprise/integrations/google_sheets.mdx
+++ b/docs/en/enterprise/integrations/google_sheets.mdx
@@ -26,7 +26,7 @@ Before using the Google Sheets integration, ensure you have:
2. Find **Google Sheets** in the Authentication Integrations section
3. Click **Connect** and complete the OAuth flow
4. Grant the necessary permissions for spreadsheet access
-5. Copy your Enterprise Token from [Account Settings](https://app.crewai.com/crewai_plus/settings/account)
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Install Required Package
@@ -37,64 +37,74 @@ uv add crewai-tools
## Available Actions
-
- **Description:** Get rows from a Google Sheets spreadsheet.
+
+ **Description:** Retrieve properties and data of a spreadsheet.
**Parameters:**
- - `spreadsheetId` (string, required): Spreadsheet - Use Connect Portal Workflow Settings to allow users to select a spreadsheet. Defaults to using the first worksheet in the selected spreadsheet.
- - `limit` (string, optional): Limit rows - Limit the maximum number of rows to return.
+ - `spreadsheetId` (string, required): The ID of the spreadsheet to retrieve.
+ - `ranges` (array, optional): The ranges to retrieve from the spreadsheet.
+ - `includeGridData` (boolean, optional): True if grid data should be returned. Default: false
+ - `fields` (string, optional): The fields to include in the response. Use this to improve performance by only returning needed data.
-
- **Description:** Create a new row in a Google Sheets spreadsheet.
+
+ **Description:** Returns a range of values from a spreadsheet.
**Parameters:**
- - `spreadsheetId` (string, required): Spreadsheet - Use Connect Portal Workflow Settings to allow users to select a spreadsheet. Defaults to using the first worksheet in the selected spreadsheet..
- - `worksheet` (string, required): Worksheet - Your worksheet must have column headers.
- - `additionalFields` (object, required): Fields - Include fields to create this row with, as an object with keys of Column Names. Use Connect Portal Workflow Settings to allow users to select a Column Mapping.
+ - `spreadsheetId` (string, required): The ID of the spreadsheet to retrieve data from.
+ - `range` (string, required): The A1 notation or R1C1 notation of the range to retrieve values from.
+ - `valueRenderOption` (string, optional): How values should be represented in the output. Options: FORMATTED_VALUE, UNFORMATTED_VALUE, FORMULA. Default: FORMATTED_VALUE
+ - `dateTimeRenderOption` (string, optional): How dates, times, and durations should be represented in the output. Options: SERIAL_NUMBER, FORMATTED_STRING. Default: SERIAL_NUMBER
+ - `majorDimension` (string, optional): The major dimension that results should use. Options: ROWS, COLUMNS. Default: ROWS
+
+
+
+ **Description:** Sets values in a range of a spreadsheet.
+
+ **Parameters:**
+ - `spreadsheetId` (string, required): The ID of the spreadsheet to update.
+ - `range` (string, required): The A1 notation of the range to update.
+ - `values` (array, required): The data to be written. Each array represents a row.
```json
- {
- "columnName1": "columnValue1",
- "columnName2": "columnValue2",
- "columnName3": "columnValue3",
- "columnName4": "columnValue4"
- }
+ [
+ ["Value1", "Value2", "Value3"],
+ ["Value4", "Value5", "Value6"]
+ ]
```
+ - `valueInputOption` (string, optional): How the input data should be interpreted. Options: RAW, USER_ENTERED. Default: USER_ENTERED
-
- **Description:** Update existing rows in a Google Sheets spreadsheet.
+
+ **Description:** Appends values to a spreadsheet.
**Parameters:**
- - `spreadsheetId` (string, required): Spreadsheet - Use Connect Portal Workflow Settings to allow users to select a spreadsheet. Defaults to using the first worksheet in the selected spreadsheet.
- - `worksheet` (string, required): Worksheet - Your worksheet must have column headers.
- - `filterFormula` (object, optional): A filter in disjunctive normal form - OR of AND groups of single conditions to identify which rows to update.
+ - `spreadsheetId` (string, required): The ID of the spreadsheet to update.
+ - `range` (string, required): The A1 notation of a range to search for a logical table of data.
+ - `values` (array, required): The data to append. Each array represents a row.
```json
- {
- "operator": "OR",
- "conditions": [
- {
- "operator": "AND",
- "conditions": [
- {
- "field": "status",
- "operator": "$stringExactlyMatches",
- "value": "pending"
- }
- ]
- }
- ]
- }
+ [
+ ["Value1", "Value2", "Value3"],
+ ["Value4", "Value5", "Value6"]
+ ]
```
- Available operators: `$stringContains`, `$stringDoesNotContain`, `$stringExactlyMatches`, `$stringDoesNotExactlyMatch`, `$stringStartsWith`, `$stringDoesNotStartWith`, `$stringEndsWith`, `$stringDoesNotEndWith`, `$numberGreaterThan`, `$numberLessThan`, `$numberEquals`, `$numberDoesNotEqual`, `$dateTimeAfter`, `$dateTimeBefore`, `$dateTimeEquals`, `$booleanTrue`, `$booleanFalse`, `$exists`, `$doesNotExist`
- - `additionalFields` (object, required): Fields - Include fields to update, as an object with keys of Column Names. Use Connect Portal Workflow Settings to allow users to select a Column Mapping.
+ - `valueInputOption` (string, optional): How the input data should be interpreted. Options: RAW, USER_ENTERED. Default: USER_ENTERED
+ - `insertDataOption` (string, optional): How the input data should be inserted. Options: OVERWRITE, INSERT_ROWS. Default: INSERT_ROWS
+
+
+
+ **Description:** Creates a new spreadsheet.
+
+ **Parameters:**
+ - `title` (string, required): The title of the new spreadsheet.
+ - `sheets` (array, optional): The sheets that are part of the spreadsheet.
```json
- {
- "columnName1": "newValue1",
- "columnName2": "newValue2",
- "columnName3": "newValue3",
- "columnName4": "newValue4"
- }
+ [
+ {
+ "properties": {
+ "title": "Sheet1"
+ }
+ }
+ ]
```
@@ -105,19 +115,13 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get enterprise tools (Google Sheets tools will be included)
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
# Create an agent with Google Sheets capabilities
sheets_agent = Agent(
role="Data Manager",
goal="Manage spreadsheet data and track information efficiently",
backstory="An AI assistant specialized in data management and spreadsheet operations.",
- tools=[enterprise_tools]
+ apps=['google_sheets']
)
# Task to add new data to a spreadsheet
@@ -139,19 +143,17 @@ crew.kickoff()
### Filtering Specific Google Sheets Tools
```python
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get only specific Google Sheets tools
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token",
- actions_list=["google_sheets_get_row", "google_sheets_create_row"]
-)
+from crewai import Agent, Task, Crew
+# Create agent with specific Google Sheets actions only
data_collector = Agent(
role="Data Collector",
goal="Collect and organize data in spreadsheets",
backstory="An AI assistant that focuses on data collection and organization.",
- tools=enterprise_tools
+ apps=[
+ 'google_sheets/get_values',
+ 'google_sheets/update_values'
+ ]
)
# Task to collect and organize data
@@ -173,17 +175,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
data_analyst = Agent(
role="Data Analyst",
goal="Analyze spreadsheet data and generate insights",
backstory="An experienced data analyst who extracts insights from spreadsheet data.",
- tools=[enterprise_tools]
+ apps=['google_sheets']
)
# Task to analyze data and create reports
@@ -205,33 +202,59 @@ crew = Crew(
crew.kickoff()
```
-### Automated Data Updates
+### Spreadsheet Creation and Management
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
+spreadsheet_manager = Agent(
+ role="Spreadsheet Manager",
+ goal="Create and manage spreadsheets efficiently",
+ backstory="An AI assistant that specializes in creating and organizing spreadsheets.",
+ apps=['google_sheets']
)
+# Task to create and set up new spreadsheets
+setup_task = Task(
+ description="""
+ 1. Create a new spreadsheet for quarterly reports
+ 2. Set up proper headers and structure
+ 3. Add initial data and formatting
+ """,
+ agent=spreadsheet_manager,
+ expected_output="New quarterly report spreadsheet created and properly structured"
+)
+
+crew = Crew(
+ agents=[spreadsheet_manager],
+ tasks=[setup_task]
+)
+
+crew.kickoff()
+```
+
+### Automated Data Updates
+
+```python
+from crewai import Agent, Task, Crew
+
data_updater = Agent(
role="Data Updater",
goal="Automatically update and maintain spreadsheet data",
backstory="An AI assistant that maintains data accuracy and updates records automatically.",
- tools=[enterprise_tools]
+ apps=['google_sheets']
)
# Task to update data based on conditions
update_task = Task(
description="""
- 1. Find all pending orders in the orders spreadsheet
- 2. Update their status to 'processing'
- 3. Add a timestamp for when the status was updated
- 4. Log the changes in a separate tracking sheet
+ 1. Get spreadsheet properties and structure
+ 2. Read current data from specific ranges
+ 3. Update values in target ranges with new data
+ 4. Append new records to the bottom of the sheet
""",
agent=data_updater,
- expected_output="All pending orders updated to processing status with timestamps logged"
+ expected_output="Spreadsheet data updated successfully with new values and records"
)
crew = Crew(
@@ -246,30 +269,25 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
workflow_manager = Agent(
role="Data Workflow Manager",
goal="Manage complex data workflows across multiple spreadsheets",
backstory="An AI assistant that orchestrates complex data operations across multiple spreadsheets.",
- tools=[enterprise_tools]
+ apps=['google_sheets']
)
# Complex workflow task
workflow_task = Task(
description="""
1. Get all customer data from the main customer spreadsheet
- 2. Create monthly summary entries for active customers
- 3. Update customer status based on activity in the last 30 days
- 4. Generate a monthly report with customer metrics
- 5. Archive inactive customer records to a separate sheet
+ 2. Create a new monthly summary spreadsheet
+ 3. Append summary data to the new spreadsheet
+ 4. Update customer status based on activity metrics
+ 5. Generate reports with proper formatting
""",
agent=workflow_manager,
- expected_output="Monthly customer workflow completed with updated statuses and generated reports"
+ expected_output="Monthly customer workflow completed with new spreadsheet and updated data"
)
crew = Crew(
@@ -291,29 +309,28 @@ crew.kickoff()
**Spreadsheet Structure Issues**
- Ensure worksheets have proper column headers before creating or updating rows
-- Verify that column names in `additionalFields` match the actual column headers
-- Check that the specified worksheet exists in the spreadsheet
+- Verify that range notation (A1 format) is correct for the target cells
+- Check that the specified spreadsheet ID exists and is accessible
**Data Type and Format Issues**
- Ensure data values match the expected format for each column
- Use proper date formats for date columns (ISO format recommended)
- Verify that numeric values are properly formatted for number columns
-**Filter Formula Issues**
-- Ensure filter formulas follow the correct JSON structure for disjunctive normal form
-- Use valid field names that match actual column headers
-- Test simple filters before building complex multi-condition queries
-- Verify that operator types match the data types in the columns
-
-**Row Limits and Performance**
-- Be mindful of row limits when using `GOOGLE_SHEETS_GET_ROW`
-- Consider pagination for large datasets
-- Use specific filters to reduce the amount of data processed
-
-**Update Operations**
-- Ensure filter conditions properly identify the intended rows for updates
-- Test filter conditions with small datasets before large updates
-- Verify that all required fields are included in update operations
+**Range and Cell Reference Issues**
+- Use proper A1 notation for ranges (e.g., "A1:C10", "Sheet1!A1:B5")
+- Ensure range references don't exceed the actual spreadsheet dimensions
+- Verify that sheet names in range references match actual sheet names
+
+**Value Input and Rendering Options**
+- Choose appropriate `valueInputOption` (RAW vs USER_ENTERED) for your data
+- Select proper `valueRenderOption` based on how you want data formatted
+- Consider `dateTimeRenderOption` for consistent date/time handling
+
+**Spreadsheet Creation Issues**
+- Ensure spreadsheet titles are unique and follow naming conventions
+- Verify that sheet properties are properly structured when creating sheets
+- Check that you have permissions to create new spreadsheets in your account
### Getting Help
diff --git a/docs/en/enterprise/integrations/google_slides.mdx b/docs/en/enterprise/integrations/google_slides.mdx
new file mode 100644
index 0000000000..fc0b28ea0a
--- /dev/null
+++ b/docs/en/enterprise/integrations/google_slides.mdx
@@ -0,0 +1,371 @@
+---
+title: Google Slides Integration
+description: "Presentation creation and management with Google Slides integration for CrewAI."
+icon: "chart-bar"
+mode: "wide"
+---
+
+## Overview
+
+Enable your agents to create, edit, and manage Google Slides presentations. Create presentations, update content, import data from Google Sheets, manage pages and thumbnails, and streamline your presentation workflows with AI-powered automation.
+
+## Prerequisites
+
+Before using the Google Slides integration, ensure you have:
+
+- A [CrewAI AMP](https://app.crewai.com) account with an active subscription
+- A Google account with Google Slides access
+- Connected your Google account through the [Integrations page](https://app.crewai.com/crewai_plus/connectors)
+
+## Setting Up Google Slides Integration
+
+### 1. Connect Your Google Account
+
+1. Navigate to [CrewAI AMP Integrations](https://app.crewai.com/crewai_plus/connectors)
+2. Find **Google Slides** in the Authentication Integrations section
+3. Click **Connect** and complete the OAuth flow
+4. Grant the necessary permissions for presentations, spreadsheets, and drive access
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
+
+### 2. Install Required Package
+
+```bash
+uv add crewai-tools
+```
+
+## Available Actions
+
+
+
+ **Description:** Creates a blank presentation with no content.
+
+ **Parameters:**
+ - `title` (string, required): The title of the presentation.
+
+
+
+ **Description:** Retrieves a presentation by ID.
+
+ **Parameters:**
+ - `presentationId` (string, required): The ID of the presentation to retrieve.
+ - `fields` (string, optional): The fields to include in the response. Use this to improve performance by only returning needed data.
+
+
+
+ **Description:** Applies updates, add content, or remove content from a presentation.
+
+ **Parameters:**
+ - `presentationId` (string, required): The ID of the presentation to update.
+ - `requests` (array, required): A list of updates to apply to the presentation.
+ ```json
+ [
+ {
+ "insertText": {
+ "objectId": "slide_id",
+ "text": "Your text content here"
+ }
+ }
+ ]
+ ```
+ - `writeControl` (object, optional): Provides control over how write requests are executed.
+ ```json
+ {
+ "requiredRevisionId": "revision_id_string"
+ }
+ ```
+
+
+
+ **Description:** Retrieves a specific page by its ID.
+
+ **Parameters:**
+ - `presentationId` (string, required): The ID of the presentation.
+ - `pageObjectId` (string, required): The ID of the page to retrieve.
+
+
+
+ **Description:** Generates a page thumbnail.
+
+ **Parameters:**
+ - `presentationId` (string, required): The ID of the presentation.
+ - `pageObjectId` (string, required): The ID of the page for thumbnail generation.
+
+
+
+ **Description:** Imports data from a Google Sheet into a presentation.
+
+ **Parameters:**
+ - `presentationId` (string, required): The ID of the presentation.
+ - `sheetId` (string, required): The ID of the Google Sheet to import from.
+ - `dataRange` (string, required): The range of data to import from the sheet.
+
+
+
+ **Description:** Uploads a file to Google Drive associated with the presentation.
+
+ **Parameters:**
+ - `file` (string, required): The file data to upload.
+ - `presentationId` (string, required): The ID of the presentation to link the uploaded file.
+
+
+
+ **Description:** Links a file in Google Drive to a presentation.
+
+ **Parameters:**
+ - `presentationId` (string, required): The ID of the presentation.
+ - `fileId` (string, required): The ID of the file to link.
+
+
+
+ **Description:** Lists all presentations accessible to the user.
+
+ **Parameters:**
+ - `pageSize` (integer, optional): The number of presentations to return per page.
+ - `pageToken` (string, optional): A token for pagination.
+
+
+
+ **Description:** Deletes a presentation by ID.
+
+ **Parameters:**
+ - `presentationId` (string, required): The ID of the presentation to delete.
+
+
+
+## Usage Examples
+
+### Basic Google Slides Agent Setup
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent with Google Slides capabilities
+slides_agent = Agent(
+ role="Presentation Manager",
+ goal="Create and manage presentations efficiently",
+ backstory="An AI assistant specialized in presentation creation and content management.",
+ apps=['google_slides'] # All Google Slides actions will be available
+)
+
+# Task to create a presentation
+create_presentation_task = Task(
+ description="Create a new presentation for the quarterly business review with key slides",
+ agent=slides_agent,
+ expected_output="Quarterly business review presentation created with structured content"
+)
+
+# Run the task
+crew = Crew(
+ agents=[slides_agent],
+ tasks=[create_presentation_task]
+)
+
+crew.kickoff()
+```
+
+### Presentation Content Management
+
+```python
+from crewai import Agent, Task, Crew
+
+content_manager = Agent(
+ role="Content Manager",
+ goal="Manage presentation content and updates",
+ backstory="An AI assistant that focuses on content creation and presentation updates.",
+ apps=[
+ 'google_slides/create_blank_presentation',
+ 'google_slides/batch_update_presentation',
+ 'google_slides/get_presentation'
+ ]
+)
+
+# Task to create and update presentations
+content_task = Task(
+ description="Create a new presentation and add content slides with charts and text",
+ agent=content_manager,
+ expected_output="Presentation created with updated content and visual elements"
+)
+
+crew = Crew(
+ agents=[content_manager],
+ tasks=[content_task]
+)
+
+crew.kickoff()
+```
+
+### Data Integration and Visualization
+
+```python
+from crewai import Agent, Task, Crew
+
+data_visualizer = Agent(
+ role="Data Visualizer",
+ goal="Create presentations with data imported from spreadsheets",
+ backstory="An AI assistant that specializes in data visualization and presentation integration.",
+ apps=['google_slides']
+)
+
+# Task to create data-driven presentations
+visualization_task = Task(
+ description="""
+ 1. Create a new presentation for monthly sales report
+ 2. Import data from the sales spreadsheet
+ 3. Create charts and visualizations from the imported data
+ 4. Generate thumbnails for slide previews
+ """,
+ agent=data_visualizer,
+ expected_output="Data-driven presentation created with imported spreadsheet data and visualizations"
+)
+
+crew = Crew(
+ agents=[data_visualizer],
+ tasks=[visualization_task]
+)
+
+crew.kickoff()
+```
+
+### Presentation Library Management
+
+```python
+from crewai import Agent, Task, Crew
+
+library_manager = Agent(
+ role="Presentation Library Manager",
+ goal="Manage and organize presentation libraries",
+ backstory="An AI assistant that manages presentation collections and file organization.",
+ apps=['google_slides']
+)
+
+# Task to manage presentation library
+library_task = Task(
+ description="""
+ 1. List all existing presentations
+ 2. Generate thumbnails for presentation previews
+ 3. Upload supporting files to Drive and link to presentations
+ 4. Organize presentations by topic and date
+ """,
+ agent=library_manager,
+ expected_output="Presentation library organized with thumbnails and linked supporting files"
+)
+
+crew = Crew(
+ agents=[library_manager],
+ tasks=[library_task]
+)
+
+crew.kickoff()
+```
+
+### Automated Presentation Workflows
+
+```python
+from crewai import Agent, Task, Crew
+
+presentation_automator = Agent(
+ role="Presentation Automator",
+ goal="Automate presentation creation and management workflows",
+ backstory="An AI assistant that automates complex presentation workflows and content generation.",
+ apps=['google_slides']
+)
+
+# Complex presentation automation task
+automation_task = Task(
+ description="""
+ 1. Create multiple presentations for different departments
+ 2. Import relevant data from various spreadsheets
+ 3. Update existing presentations with new content
+ 4. Generate thumbnails for all presentations
+ 5. Link supporting documents from Drive
+ 6. Create a master index presentation with links to all others
+ """,
+ agent=presentation_automator,
+ expected_output="Automated presentation workflow completed with multiple presentations and organized structure"
+)
+
+crew = Crew(
+ agents=[presentation_automator],
+ tasks=[automation_task]
+)
+
+crew.kickoff()
+```
+
+### Template and Content Creation
+
+```python
+from crewai import Agent, Task, Crew
+
+template_creator = Agent(
+ role="Template Creator",
+ goal="Create presentation templates and standardized content",
+ backstory="An AI assistant that creates consistent presentation templates and content standards.",
+ apps=['google_slides']
+)
+
+# Task to create templates
+template_task = Task(
+ description="""
+ 1. Create blank presentation templates for different use cases
+ 2. Add standard layouts and content placeholders
+ 3. Create sample presentations with best practices
+ 4. Generate thumbnails for template previews
+ 5. Upload template assets to Drive and link appropriately
+ """,
+ agent=template_creator,
+ expected_output="Presentation templates created with standardized layouts and linked assets"
+)
+
+crew = Crew(
+ agents=[template_creator],
+ tasks=[template_task]
+)
+
+crew.kickoff()
+```
+
+## Troubleshooting
+
+### Common Issues
+
+**Permission Errors**
+- Ensure your Google account has appropriate permissions for Google Slides
+- Verify that the OAuth connection includes required scopes for presentations, spreadsheets, and drive access
+- Check that presentations are shared with the authenticated account
+
+**Presentation ID Issues**
+- Verify that presentation IDs are correct and presentations exist
+- Ensure you have access permissions to the presentations you're trying to modify
+- Check that presentation IDs are properly formatted
+
+**Content Update Issues**
+- Ensure batch update requests are properly formatted according to Google Slides API specifications
+- Verify that object IDs for slides and elements exist in the presentation
+- Check that write control revision IDs are current if using optimistic concurrency
+
+**Data Import Issues**
+- Verify that Google Sheet IDs are correct and accessible
+- Ensure data ranges are properly specified using A1 notation
+- Check that you have read permissions for the source spreadsheets
+
+**File Upload and Linking Issues**
+- Ensure file data is properly encoded for upload
+- Verify that Drive file IDs are correct when linking files
+- Check that you have appropriate Drive permissions for file operations
+
+**Page and Thumbnail Operations**
+- Verify that page object IDs exist in the specified presentation
+- Ensure presentations have content before attempting to generate thumbnails
+- Check that page structure is valid for thumbnail generation
+
+**Pagination and Listing Issues**
+- Use appropriate page sizes for listing presentations
+- Implement proper pagination using page tokens for large result sets
+- Handle empty result sets gracefully
+
+### Getting Help
+
+
+ Contact our support team for assistance with Google Slides integration setup or troubleshooting.
+
diff --git a/docs/en/enterprise/integrations/hubspot.mdx b/docs/en/enterprise/integrations/hubspot.mdx
index e3aeda8ab4..f51fe3194b 100644
--- a/docs/en/enterprise/integrations/hubspot.mdx
+++ b/docs/en/enterprise/integrations/hubspot.mdx
@@ -25,7 +25,7 @@ Before using the HubSpot integration, ensure you have:
2. Find **HubSpot** in the Authentication Integrations section.
3. Click **Connect** and complete the OAuth flow.
4. Grant the necessary permissions for company and contact management.
-5. Copy your Enterprise Token from [Account Settings](https://app.crewai.com/crewai_plus/settings/account).
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Install Required Package
@@ -36,7 +36,7 @@ uv add crewai-tools
## Available Actions
-
+
**Description:** Create a new company record in HubSpot.
**Parameters:**
@@ -101,7 +101,7 @@ uv add crewai-tools
- `founded_year` (string, optional): Year Founded.
-
+
**Description:** Create a new contact record in HubSpot.
**Parameters:**
@@ -200,7 +200,7 @@ uv add crewai-tools
- `hs_googleplusid` (string, optional): googleplus ID.
-
+
**Description:** Create a new deal record in HubSpot.
**Parameters:**
@@ -215,7 +215,7 @@ uv add crewai-tools
- `hs_priority` (string, optional): The priority of the deal. Available values: `low`, `medium`, `high`.
-
+
**Description:** Create a new engagement (e.g., note, email, call, meeting, task) in HubSpot.
**Parameters:**
@@ -232,7 +232,7 @@ uv add crewai-tools
- `hs_meeting_end_time` (string, optional): The end time of the meeting. (Used for `MEETING`)
-
+
**Description:** Update an existing company record in HubSpot.
**Parameters:**
@@ -249,7 +249,7 @@ uv add crewai-tools
- `description` (string, optional): Description.
-
+
**Description:** Create a record for a specified object type in HubSpot.
**Parameters:**
@@ -257,7 +257,7 @@ uv add crewai-tools
- Additional parameters depend on the custom object's schema.
-
+
**Description:** Update an existing contact record in HubSpot.
**Parameters:**
@@ -271,7 +271,7 @@ uv add crewai-tools
- `lifecyclestage` (string, optional): Lifecycle Stage.
-
+
**Description:** Update an existing deal record in HubSpot.
**Parameters:**
@@ -284,7 +284,7 @@ uv add crewai-tools
- `dealtype` (string, optional): The type of deal.
-
+
**Description:** Update an existing engagement in HubSpot.
**Parameters:**
@@ -295,7 +295,7 @@ uv add crewai-tools
- `hs_task_status` (string, optional): The status of the task.
-
+
**Description:** Update a record for a specified object type in HubSpot.
**Parameters:**
@@ -304,28 +304,28 @@ uv add crewai-tools
- Additional parameters depend on the custom object's schema.
-
+
**Description:** Get a list of company records from HubSpot.
**Parameters:**
- `paginationParameters` (object, optional): Use `pageCursor` to fetch subsequent pages.
-
+
**Description:** Get a list of contact records from HubSpot.
**Parameters:**
- `paginationParameters` (object, optional): Use `pageCursor` to fetch subsequent pages.
-
+
**Description:** Get a list of deal records from HubSpot.
**Parameters:**
- `paginationParameters` (object, optional): Use `pageCursor` to fetch subsequent pages.
-
+
**Description:** Get a list of engagement records from HubSpot.
**Parameters:**
@@ -333,7 +333,7 @@ uv add crewai-tools
- `paginationParameters` (object, optional): Use `pageCursor` to fetch subsequent pages.
-
+
**Description:** Get a list of records for any specified object type in HubSpot.
**Parameters:**
@@ -341,35 +341,35 @@ uv add crewai-tools
- `paginationParameters` (object, optional): Use `pageCursor` to fetch subsequent pages.
-
+
**Description:** Get a single company record by its ID.
**Parameters:**
- `recordId` (string, required): The ID of the company to retrieve.
-
+
**Description:** Get a single contact record by its ID.
**Parameters:**
- `recordId` (string, required): The ID of the contact to retrieve.
-
+
**Description:** Get a single deal record by its ID.
**Parameters:**
- `recordId` (string, required): The ID of the deal to retrieve.
-
+
**Description:** Get a single engagement record by its ID.
**Parameters:**
- `recordId` (string, required): The ID of the engagement to retrieve.
-
+
**Description:** Get a single record of any specified object type by its ID.
**Parameters:**
@@ -377,7 +377,7 @@ uv add crewai-tools
- `recordId` (string, required): The ID of the record to retrieve.
-
+
**Description:** Search for company records in HubSpot using a filter formula.
**Parameters:**
@@ -385,7 +385,7 @@ uv add crewai-tools
- `paginationParameters` (object, optional): Use `pageCursor` to fetch subsequent pages.
-
+
**Description:** Search for contact records in HubSpot using a filter formula.
**Parameters:**
@@ -393,7 +393,7 @@ uv add crewai-tools
- `paginationParameters` (object, optional): Use `pageCursor` to fetch subsequent pages.
-
+
**Description:** Search for deal records in HubSpot using a filter formula.
**Parameters:**
@@ -401,7 +401,7 @@ uv add crewai-tools
- `paginationParameters` (object, optional): Use `pageCursor` to fetch subsequent pages.
-
+
**Description:** Search for engagement records in HubSpot using a filter formula.
**Parameters:**
@@ -409,7 +409,7 @@ uv add crewai-tools
- `paginationParameters` (object, optional): Use `pageCursor` to fetch subsequent pages.
-
+
**Description:** Search for records of any specified object type in HubSpot.
**Parameters:**
@@ -418,35 +418,35 @@ uv add crewai-tools
- `paginationParameters` (object, optional): Use `pageCursor` to fetch subsequent pages.
-
+
**Description:** Delete a company record by its ID.
**Parameters:**
- `recordId` (string, required): The ID of the company to delete.
-
+
**Description:** Delete a contact record by its ID.
**Parameters:**
- `recordId` (string, required): The ID of the contact to delete.
-
+
**Description:** Delete a deal record by its ID.
**Parameters:**
- `recordId` (string, required): The ID of the deal to delete.
-
+
**Description:** Delete an engagement record by its ID.
**Parameters:**
- `recordId` (string, required): The ID of the engagement to delete.
-
+
**Description:** Delete a record of any specified object type by its ID.
**Parameters:**
@@ -454,7 +454,7 @@ uv add crewai-tools
- `recordId` (string, required): The ID of the record to delete.
-
+
**Description:** Get contacts from a specific list by its ID.
**Parameters:**
@@ -462,7 +462,7 @@ uv add crewai-tools
- `paginationParameters` (object, optional): Use `pageCursor` for subsequent pages.
-
+
**Description:** Get the expected schema for a given object type and operation.
**Parameters:**
@@ -477,19 +477,13 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get enterprise tools (HubSpot tools will be included)
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
# Create an agent with HubSpot capabilities
hubspot_agent = Agent(
role="CRM Manager",
goal="Manage company and contact records in HubSpot",
backstory="An AI assistant specialized in CRM management.",
- tools=[enterprise_tools]
+ apps=['hubspot'] # All HubSpot actions will be available
)
# Task to create a new company
@@ -511,19 +505,14 @@ crew.kickoff()
### Filtering Specific HubSpot Tools
```python
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get only the tool to create contacts
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token",
- actions_list=["hubspot_create_record_contacts"]
-)
+from crewai import Agent, Task, Crew
+# Create agent with specific HubSpot actions only
contact_creator = Agent(
role="Contact Creator",
goal="Create new contacts in HubSpot",
backstory="An AI assistant that focuses on creating new contact entries in the CRM.",
- tools=[enterprise_tools]
+ apps=['hubspot/create_contact'] # Only contact creation action
)
# Task to create a contact
@@ -545,17 +534,13 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
+# Create agent with HubSpot contact management capabilities
crm_manager = Agent(
role="CRM Manager",
goal="Manage and organize HubSpot contacts efficiently.",
backstory="An experienced CRM manager who maintains an organized contact database.",
- tools=[enterprise_tools]
+ apps=['hubspot'] # All HubSpot actions including contact management
)
# Task to manage contacts
diff --git a/docs/en/enterprise/integrations/jira.mdx b/docs/en/enterprise/integrations/jira.mdx
index 1eedb8fb91..783a7cfb6f 100644
--- a/docs/en/enterprise/integrations/jira.mdx
+++ b/docs/en/enterprise/integrations/jira.mdx
@@ -25,7 +25,7 @@ Before using the Jira integration, ensure you have:
2. Find **Jira** in the Authentication Integrations section
3. Click **Connect** and complete the OAuth flow
4. Grant the necessary permissions for issue and project management
-5. Copy your Enterprise Token from [Account Settings](https://app.crewai.com/crewai_plus/settings/account)
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Install Required Package
@@ -36,7 +36,7 @@ uv add crewai-tools
## Available Actions
-
+
**Description:** Create an issue in Jira.
**Parameters:**
@@ -56,7 +56,7 @@ uv add crewai-tools
```
-
+
**Description:** Update an issue in Jira.
**Parameters:**
@@ -71,14 +71,14 @@ uv add crewai-tools
- `additionalFields` (string, optional): Additional Fields - Specify any other fields that should be included in JSON format.
-
+
**Description:** Get an issue by key in Jira.
**Parameters:**
- `issueKey` (string, required): Issue Key (example: "TEST-1234").
-
+
**Description:** Search issues in Jira using filters.
**Parameters:**
@@ -104,7 +104,7 @@ uv add crewai-tools
- `limit` (string, optional): Limit results - Limit the maximum number of issues to return. Defaults to 10 if left blank.
-
+
**Description:** Search issues by JQL in Jira.
**Parameters:**
@@ -117,13 +117,13 @@ uv add crewai-tools
```
-
+
**Description:** Update any issue in Jira. Use DESCRIBE_ACTION_SCHEMA to get properties schema for this function.
**Parameters:** No specific parameters - use JIRA_DESCRIBE_ACTION_SCHEMA first to get the expected schema.
-
+
**Description:** Get the expected schema for an issue type. Use this function first if no other function matches the issue type you want to operate on.
**Parameters:**
@@ -132,7 +132,7 @@ uv add crewai-tools
- `operation` (string, required): Operation Type value, for example CREATE_ISSUE or UPDATE_ISSUE.
-
+
**Description:** Get Projects in Jira.
**Parameters:**
@@ -144,27 +144,27 @@ uv add crewai-tools
```
-
+
**Description:** Get Issue Types by project in Jira.
**Parameters:**
- `project` (string, required): Project key.
-
+
**Description:** Get all Issue Types in Jira.
**Parameters:** None required.
-
+
**Description:** Get issue statuses for a given project.
**Parameters:**
- `project` (string, required): Project key.
-
+
**Description:** Get assignees for a given project.
**Parameters:**
@@ -178,19 +178,14 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get enterprise tools (Jira tools will be included)
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
+from crewai import Agent, Task, Crew
# Create an agent with Jira capabilities
jira_agent = Agent(
role="Issue Manager",
goal="Manage Jira issues and track project progress efficiently",
backstory="An AI assistant specialized in issue tracking and project management.",
- tools=[enterprise_tools]
+ apps=['jira'] # All Jira actions will be available
)
# Task to create a bug report
@@ -212,19 +207,12 @@ crew.kickoff()
### Filtering Specific Jira Tools
```python
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get only specific Jira tools
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token",
- actions_list=["jira_create_issue", "jira_update_issue", "jira_search_by_jql"]
-)
issue_coordinator = Agent(
role="Issue Coordinator",
goal="Create and manage Jira issues efficiently",
backstory="An AI assistant that focuses on issue creation and management.",
- tools=enterprise_tools
+ apps=['jira']
)
# Task to manage issue workflow
@@ -246,17 +234,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
project_analyst = Agent(
role="Project Analyst",
goal="Analyze project data and generate insights from Jira",
backstory="An experienced project analyst who extracts insights from project management data.",
- tools=[enterprise_tools]
+ apps=['jira']
)
# Task to analyze project status
@@ -283,17 +266,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
automation_manager = Agent(
role="Automation Manager",
goal="Automate issue management and workflow processes",
backstory="An AI assistant that automates repetitive issue management tasks.",
- tools=[enterprise_tools]
+ apps=['jira']
)
# Task to automate issue management
@@ -321,17 +299,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
schema_specialist = Agent(
role="Schema Specialist",
goal="Handle complex Jira operations using dynamic schemas",
backstory="An AI assistant that can work with dynamic Jira schemas and custom issue types.",
- tools=[enterprise_tools]
+ apps=['jira']
)
# Task using schema-based operations
diff --git a/docs/en/enterprise/integrations/linear.mdx b/docs/en/enterprise/integrations/linear.mdx
index 875c64808f..35cb4e1743 100644
--- a/docs/en/enterprise/integrations/linear.mdx
+++ b/docs/en/enterprise/integrations/linear.mdx
@@ -25,7 +25,7 @@ Before using the Linear integration, ensure you have:
2. Find **Linear** in the Authentication Integrations section
3. Click **Connect** and complete the OAuth flow
4. Grant the necessary permissions for issue and project management
-5. Copy your Enterprise Token from [Account Settings](https://app.crewai.com/crewai_plus/settings/account)
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Install Required Package
@@ -36,7 +36,7 @@ uv add crewai-tools
## Available Actions
-
+
**Description:** Create a new issue in Linear.
**Parameters:**
@@ -56,7 +56,7 @@ uv add crewai-tools
```
-
+
**Description:** Update an issue in Linear.
**Parameters:**
@@ -76,21 +76,21 @@ uv add crewai-tools
```
-
+
**Description:** Get an issue by ID in Linear.
**Parameters:**
- `issueId` (string, required): Issue ID - Specify the record ID of the issue to fetch. (example: "90fbc706-18cd-42c9-ae66-6bd344cc8977").
-
+
**Description:** Get an issue by issue identifier in Linear.
**Parameters:**
- `externalId` (string, required): External ID - Specify the human-readable Issue identifier of the issue to fetch. (example: "ABC-1").
-
+
**Description:** Search issues in Linear.
**Parameters:**
@@ -117,21 +117,21 @@ uv add crewai-tools
Available operators: `$stringExactlyMatches`, `$stringDoesNotExactlyMatch`, `$stringIsIn`, `$stringIsNotIn`, `$stringStartsWith`, `$stringDoesNotStartWith`, `$stringEndsWith`, `$stringDoesNotEndWith`, `$stringContains`, `$stringDoesNotContain`, `$stringGreaterThan`, `$stringLessThan`, `$numberGreaterThanOrEqualTo`, `$numberLessThanOrEqualTo`, `$numberGreaterThan`, `$numberLessThan`, `$dateTimeAfter`, `$dateTimeBefore`
-
+
**Description:** Delete an issue in Linear.
**Parameters:**
- `issueId` (string, required): Issue ID - Specify the record ID of the issue to delete. (example: "90fbc706-18cd-42c9-ae66-6bd344cc8977").
-
+
**Description:** Archive an issue in Linear.
**Parameters:**
- `issueId` (string, required): Issue ID - Specify the record ID of the issue to archive. (example: "90fbc706-18cd-42c9-ae66-6bd344cc8977").
-
+
**Description:** Create a sub-issue in Linear.
**Parameters:**
@@ -147,7 +147,7 @@ uv add crewai-tools
```
-
+
**Description:** Create a new project in Linear.
**Parameters:**
@@ -169,7 +169,7 @@ uv add crewai-tools
```
-
+
**Description:** Update a project in Linear.
**Parameters:**
@@ -185,21 +185,21 @@ uv add crewai-tools
```
-
+
**Description:** Get a project by ID in Linear.
**Parameters:**
- `projectId` (string, required): Project ID - Specify the Project ID of the project to fetch. (example: "a6634484-6061-4ac7-9739-7dc5e52c796b").
-
+
**Description:** Delete a project in Linear.
**Parameters:**
- `projectId` (string, required): Project ID - Specify the Project ID of the project to delete. (example: "a6634484-6061-4ac7-9739-7dc5e52c796b").
-
+
**Description:** Search teams in Linear.
**Parameters:**
@@ -231,19 +231,14 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get enterprise tools (Linear tools will be included)
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
+from crewai import Agent, Task, Crew
# Create an agent with Linear capabilities
linear_agent = Agent(
role="Development Manager",
goal="Manage Linear issues and track development progress efficiently",
backstory="An AI assistant specialized in software development project management.",
- tools=[enterprise_tools]
+ apps=['linear'] # All Linear actions will be available
)
# Task to create a bug report
@@ -265,19 +260,12 @@ crew.kickoff()
### Filtering Specific Linear Tools
```python
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get only specific Linear tools
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token",
- actions_list=["linear_create_issue", "linear_update_issue", "linear_search_issue"]
-)
issue_manager = Agent(
role="Issue Manager",
goal="Create and manage Linear issues efficiently",
backstory="An AI assistant that focuses on issue creation and lifecycle management.",
- tools=enterprise_tools
+ apps=['linear/create_issue']
)
# Task to manage issue workflow
@@ -299,17 +287,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
project_coordinator = Agent(
role="Project Coordinator",
goal="Coordinate projects and teams in Linear efficiently",
backstory="An experienced project coordinator who manages development cycles and team workflows.",
- tools=[enterprise_tools]
+ apps=['linear']
)
# Task to coordinate project setup
@@ -336,17 +319,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
task_organizer = Agent(
role="Task Organizer",
goal="Organize complex issues into manageable sub-tasks",
backstory="An AI assistant that breaks down complex development work into organized sub-tasks.",
- tools=[enterprise_tools]
+ apps=['linear']
)
# Task to create issue hierarchy
@@ -373,17 +351,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
workflow_automator = Agent(
role="Workflow Automator",
goal="Automate development workflow processes in Linear",
backstory="An AI assistant that automates repetitive development workflow tasks.",
- tools=[enterprise_tools]
+ apps=['linear']
)
# Complex workflow automation task
diff --git a/docs/en/enterprise/integrations/microsoft_excel.mdx b/docs/en/enterprise/integrations/microsoft_excel.mdx
new file mode 100644
index 0000000000..8d462f4239
--- /dev/null
+++ b/docs/en/enterprise/integrations/microsoft_excel.mdx
@@ -0,0 +1,446 @@
+---
+title: Microsoft Excel Integration
+description: "Workbook and data management with Microsoft Excel integration for CrewAI."
+icon: "table"
+mode: "wide"
+---
+
+## Overview
+
+Enable your agents to create and manage Excel workbooks, worksheets, tables, and charts in OneDrive or SharePoint. Manipulate data ranges, create visualizations, manage tables, and streamline your spreadsheet workflows with AI-powered automation.
+
+## Prerequisites
+
+Before using the Microsoft Excel integration, ensure you have:
+
+- A [CrewAI AMP](https://app.crewai.com) account with an active subscription
+- A Microsoft 365 account with Excel and OneDrive/SharePoint access
+- Connected your Microsoft account through the [Integrations page](https://app.crewai.com/crewai_plus/connectors)
+
+## Setting Up Microsoft Excel Integration
+
+### 1. Connect Your Microsoft Account
+
+1. Navigate to [CrewAI AMP Integrations](https://app.crewai.com/crewai_plus/connectors)
+2. Find **Microsoft Excel** in the Authentication Integrations section
+3. Click **Connect** and complete the OAuth flow
+4. Grant the necessary permissions for files and Excel workbook access
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
+
+### 2. Install Required Package
+
+```bash
+uv add crewai-tools
+```
+
+## Available Actions
+
+
+
+ **Description:** Create a new Excel workbook in OneDrive or SharePoint.
+
+ **Parameters:**
+ - `file_path` (string, required): Path where to create the workbook (e.g., 'MyWorkbook.xlsx')
+ - `worksheets` (array, optional): Initial worksheets to create
+ ```json
+ [
+ {
+ "name": "Sheet1"
+ },
+ {
+ "name": "Data"
+ }
+ ]
+ ```
+
+
+
+ **Description:** Get all Excel workbooks from OneDrive or SharePoint.
+
+ **Parameters:**
+ - `select` (string, optional): Select specific properties to return
+ - `filter` (string, optional): Filter results using OData syntax
+ - `expand` (string, optional): Expand related resources inline
+ - `top` (integer, optional): Number of items to return. Minimum: 1, Maximum: 999
+ - `orderby` (string, optional): Order results by specified properties
+
+
+
+ **Description:** Get all worksheets in an Excel workbook.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the Excel file
+ - `select` (string, optional): Select specific properties to return (e.g., 'id,name,position')
+ - `filter` (string, optional): Filter results using OData syntax
+ - `expand` (string, optional): Expand related resources inline
+ - `top` (integer, optional): Number of items to return. Minimum: 1, Maximum: 999
+ - `orderby` (string, optional): Order results by specified properties
+
+
+
+ **Description:** Create a new worksheet in an Excel workbook.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the Excel file
+ - `name` (string, required): Name of the new worksheet
+
+
+
+ **Description:** Get data from a specific range in an Excel worksheet.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the Excel file
+ - `worksheet_name` (string, required): Name of the worksheet
+ - `range` (string, required): Range address (e.g., 'A1:C10')
+
+
+
+ **Description:** Update data in a specific range in an Excel worksheet.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the Excel file
+ - `worksheet_name` (string, required): Name of the worksheet
+ - `range` (string, required): Range address (e.g., 'A1:C10')
+ - `values` (array, required): 2D array of values to set in the range
+ ```json
+ [
+ ["Name", "Age", "City"],
+ ["John", 30, "New York"],
+ ["Jane", 25, "Los Angeles"]
+ ]
+ ```
+
+
+
+ **Description:** Create a table in an Excel worksheet.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the Excel file
+ - `worksheet_name` (string, required): Name of the worksheet
+ - `range` (string, required): Range for the table (e.g., 'A1:D10')
+ - `has_headers` (boolean, optional): Whether the first row contains headers. Default: true
+
+
+
+ **Description:** Get all tables in an Excel worksheet.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the Excel file
+ - `worksheet_name` (string, required): Name of the worksheet
+
+
+
+ **Description:** Add a new row to an Excel table.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the Excel file
+ - `worksheet_name` (string, required): Name of the worksheet
+ - `table_name` (string, required): Name of the table
+ - `values` (array, required): Array of values for the new row
+ ```json
+ ["John Doe", 35, "Manager", "Sales"]
+ ```
+
+
+
+ **Description:** Create a chart in an Excel worksheet.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the Excel file
+ - `worksheet_name` (string, required): Name of the worksheet
+ - `chart_type` (string, required): Type of chart (e.g., 'ColumnClustered', 'Line', 'Pie')
+ - `source_data` (string, required): Range of data for the chart (e.g., 'A1:B10')
+ - `series_by` (string, optional): How to interpret the data ('Auto', 'Columns', or 'Rows'). Default: Auto
+
+
+
+ **Description:** Get the value of a single cell in an Excel worksheet.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the Excel file
+ - `worksheet_name` (string, required): Name of the worksheet
+ - `row` (integer, required): Row number (0-based)
+ - `column` (integer, required): Column number (0-based)
+
+
+
+ **Description:** Get the used range of an Excel worksheet (contains all data).
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the Excel file
+ - `worksheet_name` (string, required): Name of the worksheet
+
+
+
+ **Description:** Get all charts in an Excel worksheet.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the Excel file
+ - `worksheet_name` (string, required): Name of the worksheet
+
+
+
+ **Description:** Delete a worksheet from an Excel workbook.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the Excel file
+ - `worksheet_name` (string, required): Name of the worksheet to delete
+
+
+
+ **Description:** Delete a table from an Excel worksheet.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the Excel file
+ - `worksheet_name` (string, required): Name of the worksheet
+ - `table_name` (string, required): Name of the table to delete
+
+
+
+ **Description:** Get all named ranges in an Excel workbook.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the Excel file
+
+
+
+## Usage Examples
+
+### Basic Excel Agent Setup
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent with Excel capabilities
+excel_agent = Agent(
+ role="Excel Data Manager",
+ goal="Manage Excel workbooks and data efficiently",
+ backstory="An AI assistant specialized in Excel data management and analysis.",
+ apps=['microsoft_excel'] # All Excel actions will be available
+)
+
+# Task to create and populate a workbook
+data_management_task = Task(
+ description="Create a new sales report workbook with data analysis and charts",
+ agent=excel_agent,
+ expected_output="Excel workbook created with sales data, analysis, and visualizations"
+)
+
+# Run the task
+crew = Crew(
+ agents=[excel_agent],
+ tasks=[data_management_task]
+)
+
+crew.kickoff()
+```
+
+### Data Analysis and Reporting
+
+```python
+from crewai import Agent, Task, Crew
+
+data_analyst = Agent(
+ role="Data Analyst",
+ goal="Analyze data in Excel and create comprehensive reports",
+ backstory="An AI assistant that specializes in data analysis and Excel reporting.",
+ apps=[
+ 'microsoft_excel/get_workbooks',
+ 'microsoft_excel/get_range_data',
+ 'microsoft_excel/create_chart',
+ 'microsoft_excel/add_table'
+ ]
+)
+
+# Task to analyze existing data
+analysis_task = Task(
+ description="Analyze sales data in existing workbooks and create summary charts and tables",
+ agent=data_analyst,
+ expected_output="Data analyzed with summary charts and tables created"
+)
+
+crew = Crew(
+ agents=[data_analyst],
+ tasks=[analysis_task]
+)
+
+crew.kickoff()
+```
+
+### Workbook Creation and Structure
+
+```python
+from crewai import Agent, Task, Crew
+
+workbook_creator = Agent(
+ role="Workbook Creator",
+ goal="Create structured Excel workbooks with multiple worksheets and data organization",
+ backstory="An AI assistant that creates well-organized Excel workbooks for various business needs.",
+ apps=['microsoft_excel']
+)
+
+# Task to create structured workbooks
+creation_task = Task(
+ description="""
+ 1. Create a new quarterly report workbook
+ 2. Add multiple worksheets for different departments
+ 3. Create tables with headers for data organization
+ 4. Set up charts for key metrics visualization
+ """,
+ agent=workbook_creator,
+ expected_output="Structured workbook created with multiple worksheets, tables, and charts"
+)
+
+crew = Crew(
+ agents=[workbook_creator],
+ tasks=[creation_task]
+)
+
+crew.kickoff()
+```
+
+### Data Manipulation and Updates
+
+```python
+from crewai import Agent, Task, Crew
+
+data_manipulator = Agent(
+ role="Data Manipulator",
+ goal="Update and manipulate data in Excel worksheets efficiently",
+ backstory="An AI assistant that handles data updates, table management, and range operations.",
+ apps=['microsoft_excel']
+)
+
+# Task to manipulate data
+manipulation_task = Task(
+ description="""
+ 1. Get data from existing worksheets
+ 2. Update specific ranges with new information
+ 3. Add new rows to existing tables
+ 4. Create additional charts based on updated data
+ 5. Organize data across multiple worksheets
+ """,
+ agent=data_manipulator,
+ expected_output="Data updated across worksheets with new charts and organized structure"
+)
+
+crew = Crew(
+ agents=[data_manipulator],
+ tasks=[manipulation_task]
+)
+
+crew.kickoff()
+```
+
+### Advanced Excel Automation
+
+```python
+from crewai import Agent, Task, Crew
+
+excel_automator = Agent(
+ role="Excel Automator",
+ goal="Automate complex Excel workflows and data processing",
+ backstory="An AI assistant that automates sophisticated Excel operations and data workflows.",
+ apps=['microsoft_excel']
+)
+
+# Complex automation task
+automation_task = Task(
+ description="""
+ 1. Scan all Excel workbooks for specific data patterns
+ 2. Create consolidated reports from multiple workbooks
+ 3. Generate charts and tables for trend analysis
+ 4. Set up named ranges for easy data reference
+ 5. Create dashboard worksheets with key metrics
+ 6. Clean up unused worksheets and tables
+ """,
+ agent=excel_automator,
+ expected_output="Automated Excel workflow completed with consolidated reports and dashboards"
+)
+
+crew = Crew(
+ agents=[excel_automator],
+ tasks=[automation_task]
+)
+
+crew.kickoff()
+```
+
+### Financial Modeling and Analysis
+
+```python
+from crewai import Agent, Task, Crew
+
+financial_modeler = Agent(
+ role="Financial Modeler",
+ goal="Create financial models and analysis in Excel",
+ backstory="An AI assistant specialized in financial modeling and analysis using Excel.",
+ apps=['microsoft_excel']
+)
+
+# Task for financial modeling
+modeling_task = Task(
+ description="""
+ 1. Create financial model workbooks with multiple scenarios
+ 2. Set up input tables for assumptions and variables
+ 3. Create calculation worksheets with formulas and logic
+ 4. Generate charts for financial projections and trends
+ 5. Add summary tables for key financial metrics
+ 6. Create sensitivity analysis tables
+ """,
+ agent=financial_modeler,
+ expected_output="Financial model created with scenarios, calculations, and analysis charts"
+)
+
+crew = Crew(
+ agents=[financial_modeler],
+ tasks=[modeling_task]
+)
+
+crew.kickoff()
+```
+
+## Troubleshooting
+
+### Common Issues
+
+**Permission Errors**
+- Ensure your Microsoft account has appropriate permissions for Excel and OneDrive/SharePoint
+- Verify that the OAuth connection includes required scopes (Files.Read.All, Files.ReadWrite.All)
+- Check that you have access to the specific workbooks you're trying to modify
+
+**File ID and Path Issues**
+- Verify that file IDs are correct and files exist in your OneDrive or SharePoint
+- Ensure file paths are properly formatted when creating new workbooks
+- Check that workbook files have the correct .xlsx extension
+
+**Worksheet and Range Issues**
+- Verify that worksheet names exist in the specified workbook
+- Ensure range addresses are properly formatted (e.g., 'A1:C10')
+- Check that ranges don't exceed worksheet boundaries
+
+**Data Format Issues**
+- Ensure data values are properly formatted for Excel (strings, numbers, integers)
+- Verify that 2D arrays for ranges have consistent row and column counts
+- Check that table data includes proper headers when has_headers is true
+
+**Chart Creation Issues**
+- Verify that chart types are supported (ColumnClustered, Line, Pie, etc.)
+- Ensure source data ranges contain appropriate data for the chart type
+- Check that the source data range exists and contains data
+
+**Table Management Issues**
+- Ensure table names are unique within worksheets
+- Verify that table ranges don't overlap with existing tables
+- Check that new row data matches the table's column structure
+
+**Cell and Range Operations**
+- Verify that row and column indices are 0-based for cell operations
+- Ensure ranges contain data when using get_used_range
+- Check that named ranges exist before referencing them
+
+### Getting Help
+
+
+ Contact our support team for assistance with Microsoft Excel integration setup or troubleshooting.
+
diff --git a/docs/en/enterprise/integrations/microsoft_onedrive.mdx b/docs/en/enterprise/integrations/microsoft_onedrive.mdx
new file mode 100644
index 0000000000..c0ef2f93f2
--- /dev/null
+++ b/docs/en/enterprise/integrations/microsoft_onedrive.mdx
@@ -0,0 +1,250 @@
+---
+title: Microsoft OneDrive Integration
+description: "File and folder management with Microsoft OneDrive integration for CrewAI."
+icon: "cloud"
+mode: "wide"
+---
+
+## Overview
+
+Enable your agents to upload, download, and manage files and folders in Microsoft OneDrive. Automate file operations, organize content, create sharing links, and streamline your cloud storage workflows with AI-powered automation.
+
+## Prerequisites
+
+Before using the Microsoft OneDrive integration, ensure you have:
+
+- A [CrewAI AMP](https://app.crewai.com) account with an active subscription
+- A Microsoft account with OneDrive access
+- Connected your Microsoft account through the [Integrations page](https://app.crewai.com/crewai_plus/connectors)
+
+## Setting Up Microsoft OneDrive Integration
+
+### 1. Connect Your Microsoft Account
+
+1. Navigate to [CrewAI AMP Integrations](https://app.crewai.com/crewai_plus/connectors)
+2. Find **Microsoft OneDrive** in the Authentication Integrations section
+3. Click **Connect** and complete the OAuth flow
+4. Grant the necessary permissions for file access
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
+
+### 2. Install Required Package
+
+```bash
+uv add crewai-tools
+```
+
+## Available Actions
+
+
+
+ **Description:** List files and folders in OneDrive.
+
+ **Parameters:**
+ - `top` (integer, optional): Number of items to retrieve (max 1000). Default is `50`.
+ - `orderby` (string, optional): Order by field (e.g., "name asc", "lastModifiedDateTime desc"). Default is "name asc".
+ - `filter` (string, optional): OData filter expression.
+
+
+
+ **Description:** Get information about a specific file or folder.
+
+ **Parameters:**
+ - `item_id` (string, required): The ID of the file or folder.
+
+
+
+ **Description:** Download a file from OneDrive.
+
+ **Parameters:**
+ - `item_id` (string, required): The ID of the file to download.
+
+
+
+ **Description:** Upload a file to OneDrive.
+
+ **Parameters:**
+ - `file_name` (string, required): Name of the file to upload.
+ - `content` (string, required): Base64 encoded file content.
+
+
+
+ **Description:** Create a new folder in OneDrive.
+
+ **Parameters:**
+ - `folder_name` (string, required): Name of the folder to create.
+
+
+
+ **Description:** Delete a file or folder from OneDrive.
+
+ **Parameters:**
+ - `item_id` (string, required): The ID of the file or folder to delete.
+
+
+
+ **Description:** Copy a file or folder in OneDrive.
+
+ **Parameters:**
+ - `item_id` (string, required): The ID of the file or folder to copy.
+ - `parent_id` (string, optional): The ID of the destination folder (optional, defaults to root).
+ - `new_name` (string, optional): New name for the copied item (optional).
+
+
+
+ **Description:** Move a file or folder in OneDrive.
+
+ **Parameters:**
+ - `item_id` (string, required): The ID of the file or folder to move.
+ - `parent_id` (string, required): The ID of the destination folder.
+ - `new_name` (string, optional): New name for the item (optional).
+
+
+
+ **Description:** Search for files and folders in OneDrive.
+
+ **Parameters:**
+ - `query` (string, required): Search query string.
+ - `top` (integer, optional): Number of results to return (max 1000). Default is `50`.
+
+
+
+ **Description:** Create a sharing link for a file or folder.
+
+ **Parameters:**
+ - `item_id` (string, required): The ID of the file or folder to share.
+ - `type` (string, optional): Type of sharing link. Enum: `view`, `edit`, `embed`. Default is `view`.
+ - `scope` (string, optional): Scope of the sharing link. Enum: `anonymous`, `organization`. Default is `anonymous`.
+
+
+
+ **Description:** Get thumbnails for a file.
+
+ **Parameters:**
+ - `item_id` (string, required): The ID of the file.
+
+
+
+## Usage Examples
+
+### Basic Microsoft OneDrive Agent Setup
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent with Microsoft OneDrive capabilities
+onedrive_agent = Agent(
+ role="File Manager",
+ goal="Manage files and folders in OneDrive efficiently",
+ backstory="An AI assistant specialized in Microsoft OneDrive file operations and organization.",
+ apps=['microsoft_onedrive'] # All OneDrive actions will be available
+)
+
+# Task to list files and create a folder
+organize_files_task = Task(
+ description="List all files in my OneDrive root directory and create a new folder called 'Project Documents'.",
+ agent=onedrive_agent,
+ expected_output="List of files displayed and new folder 'Project Documents' created."
+)
+
+# Run the task
+crew = Crew(
+ agents=[onedrive_agent],
+ tasks=[organize_files_task]
+)
+
+crew.kickoff()
+```
+
+### File Upload and Management
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent focused on file operations
+file_operator = Agent(
+ role="File Operator",
+ goal="Upload, download, and manage files with precision",
+ backstory="An AI assistant skilled in file handling and content management.",
+ apps=['microsoft_onedrive/upload_file', 'microsoft_onedrive/download_file', 'microsoft_onedrive/get_file_info']
+)
+
+# Task to upload and manage a file
+file_management_task = Task(
+ description="Upload a text file named 'report.txt' with content 'This is a sample report for the project.' Then get information about the uploaded file.",
+ agent=file_operator,
+ expected_output="File uploaded successfully and file information retrieved."
+)
+
+crew = Crew(
+ agents=[file_operator],
+ tasks=[file_management_task]
+)
+
+crew.kickoff()
+```
+
+### File Organization and Sharing
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent for file organization and sharing
+file_organizer = Agent(
+ role="File Organizer",
+ goal="Organize files and create sharing links for collaboration",
+ backstory="An AI assistant that excels at organizing files and managing sharing permissions.",
+ apps=['microsoft_onedrive/search_files', 'microsoft_onedrive/move_item', 'microsoft_onedrive/share_item', 'microsoft_onedrive/create_folder']
+)
+
+# Task to organize and share files
+organize_share_task = Task(
+ description="Search for files containing 'presentation' in the name, create a folder called 'Presentations', move the found files to this folder, and create a view-only sharing link for the folder.",
+ agent=file_organizer,
+ expected_output="Files organized into 'Presentations' folder and sharing link created."
+)
+
+crew = Crew(
+ agents=[file_organizer],
+ tasks=[organize_share_task]
+)
+
+crew.kickoff()
+```
+
+## Troubleshooting
+
+### Common Issues
+
+**Authentication Errors**
+- Ensure your Microsoft account has the necessary permissions for file access (e.g., `Files.Read`, `Files.ReadWrite`).
+- Verify that the OAuth connection includes all required scopes.
+
+**File Upload Issues**
+- Ensure `file_name` and `content` are provided for file uploads.
+- Content must be Base64 encoded for binary files.
+- Check that you have write permissions to OneDrive.
+
+**File/Folder ID Issues**
+- Double-check item IDs for correctness when accessing specific files or folders.
+- Item IDs are returned by other operations like `list_files` or `search_files`.
+- Ensure the referenced items exist and are accessible.
+
+**Search and Filter Operations**
+- Use appropriate search terms for `search_files` operations.
+- For `filter` parameters, use proper OData syntax.
+
+**File Operations (Copy/Move)**
+- For `move_item`, ensure both `item_id` and `parent_id` are provided.
+- For `copy_item`, only `item_id` is required; `parent_id` defaults to root if not specified.
+- Verify that destination folders exist and are accessible.
+
+**Sharing Link Creation**
+- Ensure the item exists before creating sharing links.
+- Choose appropriate `type` and `scope` based on your sharing requirements.
+- `anonymous` scope allows access without sign-in; `organization` requires organizational account.
+
+### Getting Help
+
+
+ Contact our support team for assistance with Microsoft OneDrive integration setup or troubleshooting.
+
diff --git a/docs/en/enterprise/integrations/microsoft_outlook.mdx b/docs/en/enterprise/integrations/microsoft_outlook.mdx
new file mode 100644
index 0000000000..de5ceb0c29
--- /dev/null
+++ b/docs/en/enterprise/integrations/microsoft_outlook.mdx
@@ -0,0 +1,232 @@
+---
+title: Microsoft Outlook Integration
+description: "Email, calendar, and contact management with Microsoft Outlook integration for CrewAI."
+icon: "envelope"
+mode: "wide"
+---
+
+## Overview
+
+Enable your agents to access and manage Outlook emails, calendar events, and contacts. Send emails, retrieve messages, manage calendar events, and organize contacts with AI-powered automation.
+
+## Prerequisites
+
+Before using the Microsoft Outlook integration, ensure you have:
+
+- A [CrewAI AMP](https://app.crewai.com) account with an active subscription
+- A Microsoft account with Outlook access
+- Connected your Microsoft account through the [Integrations page](https://app.crewai.com/crewai_plus/connectors)
+
+## Setting Up Microsoft Outlook Integration
+
+### 1. Connect Your Microsoft Account
+
+1. Navigate to [CrewAI AMP Integrations](https://app.crewai.com/crewai_plus/connectors)
+2. Find **Microsoft Outlook** in the Authentication Integrations section
+3. Click **Connect** and complete the OAuth flow
+4. Grant the necessary permissions for mail, calendar, and contact access
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
+
+### 2. Install Required Package
+
+```bash
+uv add crewai-tools
+```
+
+## Available Actions
+
+
+
+ **Description:** Get email messages from the user's mailbox.
+
+ **Parameters:**
+ - `top` (integer, optional): Number of messages to retrieve (max 1000). Default is `10`.
+ - `filter` (string, optional): OData filter expression (e.g., "isRead eq false").
+ - `search` (string, optional): Search query string.
+ - `orderby` (string, optional): Order by field (e.g., "receivedDateTime desc"). Default is "receivedDateTime desc".
+ - `select` (string, optional): Select specific properties to return.
+ - `expand` (string, optional): Expand related resources inline.
+
+
+
+ **Description:** Send an email message.
+
+ **Parameters:**
+ - `to_recipients` (array, required): Array of recipient email addresses.
+ - `cc_recipients` (array, optional): Array of CC recipient email addresses.
+ - `bcc_recipients` (array, optional): Array of BCC recipient email addresses.
+ - `subject` (string, required): Email subject.
+ - `body` (string, required): Email body content.
+ - `body_type` (string, optional): Body content type. Enum: `Text`, `HTML`. Default is `HTML`.
+ - `importance` (string, optional): Message importance level. Enum: `low`, `normal`, `high`. Default is `normal`.
+ - `reply_to` (array, optional): Array of reply-to email addresses.
+ - `save_to_sent_items` (boolean, optional): Whether to save the message to Sent Items folder. Default is `true`.
+
+
+
+ **Description:** Get calendar events from the user's calendar.
+
+ **Parameters:**
+ - `top` (integer, optional): Number of events to retrieve (max 1000). Default is `10`.
+ - `skip` (integer, optional): Number of events to skip. Default is `0`.
+ - `filter` (string, optional): OData filter expression (e.g., "start/dateTime ge '2024-01-01T00:00:00Z'").
+ - `orderby` (string, optional): Order by field (e.g., "start/dateTime asc"). Default is "start/dateTime asc".
+
+
+
+ **Description:** Create a new calendar event.
+
+ **Parameters:**
+ - `subject` (string, required): Event subject/title.
+ - `body` (string, optional): Event body/description.
+ - `start_datetime` (string, required): Start date and time in ISO 8601 format (e.g., '2024-01-20T10:00:00').
+ - `end_datetime` (string, required): End date and time in ISO 8601 format.
+ - `timezone` (string, optional): Time zone (e.g., 'Pacific Standard Time'). Default is `UTC`.
+ - `location` (string, optional): Event location.
+ - `attendees` (array, optional): Array of attendee email addresses.
+
+
+
+ **Description:** Get contacts from the user's address book.
+
+ **Parameters:**
+ - `top` (integer, optional): Number of contacts to retrieve (max 1000). Default is `10`.
+ - `skip` (integer, optional): Number of contacts to skip. Default is `0`.
+ - `filter` (string, optional): OData filter expression.
+ - `orderby` (string, optional): Order by field (e.g., "displayName asc"). Default is "displayName asc".
+
+
+
+ **Description:** Create a new contact in the user's address book.
+
+ **Parameters:**
+ - `displayName` (string, required): Contact's display name.
+ - `givenName` (string, optional): Contact's first name.
+ - `surname` (string, optional): Contact's last name.
+ - `emailAddresses` (array, optional): Array of email addresses. Each item is an object with `address` (string) and `name` (string).
+ - `businessPhones` (array, optional): Array of business phone numbers.
+ - `homePhones` (array, optional): Array of home phone numbers.
+ - `jobTitle` (string, optional): Contact's job title.
+ - `companyName` (string, optional): Contact's company name.
+
+
+
+## Usage Examples
+
+### Basic Microsoft Outlook Agent Setup
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent with Microsoft Outlook capabilities
+outlook_agent = Agent(
+ role="Email Assistant",
+ goal="Manage emails, calendar events, and contacts efficiently",
+ backstory="An AI assistant specialized in Microsoft Outlook operations and communication management.",
+ apps=['microsoft_outlook'] # All Outlook actions will be available
+)
+
+# Task to send an email
+send_email_task = Task(
+ description="Send an email to 'colleague@example.com' with subject 'Project Update' and body 'Hi, here is the latest project update. Best regards.'",
+ agent=outlook_agent,
+ expected_output="Email sent successfully to colleague@example.com"
+)
+
+# Run the task
+crew = Crew(
+ agents=[outlook_agent],
+ tasks=[send_email_task]
+)
+
+crew.kickoff()
+```
+
+### Email Management and Search
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent focused on email management
+email_manager = Agent(
+ role="Email Manager",
+ goal="Retrieve, search, and organize email messages",
+ backstory="An AI assistant skilled in email organization and management.",
+ apps=['microsoft_outlook/get_messages']
+)
+
+# Task to search and retrieve emails
+search_emails_task = Task(
+ description="Get the latest 20 unread emails and provide a summary of the most important ones.",
+ agent=email_manager,
+ expected_output="Summary of the most important unread emails with key details."
+)
+
+crew = Crew(
+ agents=[email_manager],
+ tasks=[search_emails_task]
+)
+
+crew.kickoff()
+```
+
+### Calendar and Contact Management
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent for calendar and contact management
+scheduler = Agent(
+ role="Calendar and Contact Manager",
+ goal="Manage calendar events and maintain contact information",
+ backstory="An AI assistant that handles scheduling and contact organization.",
+ apps=['microsoft_outlook/create_calendar_event', 'microsoft_outlook/get_calendar_events', 'microsoft_outlook/create_contact']
+)
+
+# Task to create a meeting and add a contact
+schedule_task = Task(
+ description="Create a calendar event for tomorrow at 2 PM titled 'Team Meeting' with location 'Conference Room A', and create a new contact for 'John Smith' with email 'john.smith@example.com' and job title 'Project Manager'.",
+ agent=scheduler,
+ expected_output="Calendar event created and new contact added successfully."
+)
+
+crew = Crew(
+ agents=[scheduler],
+ tasks=[schedule_task]
+)
+
+crew.kickoff()
+```
+
+## Troubleshooting
+
+### Common Issues
+
+**Authentication Errors**
+- Ensure your Microsoft account has the necessary permissions for mail, calendar, and contact access.
+- Required scopes include: `Mail.Read`, `Mail.Send`, `Calendars.Read`, `Calendars.ReadWrite`, `Contacts.Read`, `Contacts.ReadWrite`.
+- Verify that the OAuth connection includes all required scopes.
+
+**Email Sending Issues**
+- Ensure `to_recipients`, `subject`, and `body` are provided for `send_email`.
+- Check that email addresses are properly formatted.
+- Verify that the account has `Mail.Send` permissions.
+
+**Calendar Event Creation**
+- Ensure `subject`, `start_datetime`, and `end_datetime` are provided.
+- Use proper ISO 8601 format for datetime fields (e.g., '2024-01-20T10:00:00').
+- Verify timezone settings if events appear at incorrect times.
+
+**Contact Management**
+- For `create_contact`, ensure `displayName` is provided as it's required.
+- When providing `emailAddresses`, use the proper object format with `address` and `name` properties.
+
+**Search and Filter Issues**
+- Use proper OData syntax for `filter` parameters.
+- For date filters, use ISO 8601 format (e.g., "receivedDateTime ge '2024-01-01T00:00:00Z'").
+
+### Getting Help
+
+
+ Contact our support team for assistance with Microsoft Outlook integration setup or troubleshooting.
+
diff --git a/docs/en/enterprise/integrations/microsoft_sharepoint.mdx b/docs/en/enterprise/integrations/microsoft_sharepoint.mdx
new file mode 100644
index 0000000000..8c4e3021a5
--- /dev/null
+++ b/docs/en/enterprise/integrations/microsoft_sharepoint.mdx
@@ -0,0 +1,388 @@
+---
+title: Microsoft SharePoint Integration
+description: "Site, list, and document management with Microsoft SharePoint integration for CrewAI."
+icon: "folder-tree"
+mode: "wide"
+---
+
+## Overview
+
+Enable your agents to access and manage SharePoint sites, lists, and document libraries. Retrieve site information, manage list items, upload and organize files, and streamline your SharePoint workflows with AI-powered automation.
+
+## Prerequisites
+
+Before using the Microsoft SharePoint integration, ensure you have:
+
+- A [CrewAI AMP](https://app.crewai.com) account with an active subscription
+- A Microsoft 365 account with SharePoint access
+- Connected your Microsoft account through the [Integrations page](https://app.crewai.com/crewai_plus/connectors)
+
+## Setting Up Microsoft SharePoint Integration
+
+### 1. Connect Your Microsoft Account
+
+1. Navigate to [CrewAI AMP Integrations](https://app.crewai.com/crewai_plus/connectors)
+2. Find **Microsoft SharePoint** in the Authentication Integrations section
+3. Click **Connect** and complete the OAuth flow
+4. Grant the necessary permissions for SharePoint sites and content access
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
+
+### 2. Install Required Package
+
+```bash
+uv add crewai-tools
+```
+
+## Available Actions
+
+
+
+ **Description:** Get all SharePoint sites the user has access to.
+
+ **Parameters:**
+ - `search` (string, optional): Search query to filter sites
+ - `select` (string, optional): Select specific properties to return (e.g., 'displayName,id,webUrl')
+ - `filter` (string, optional): Filter results using OData syntax
+ - `expand` (string, optional): Expand related resources inline
+ - `top` (integer, optional): Number of items to return. Minimum: 1, Maximum: 999
+ - `skip` (integer, optional): Number of items to skip. Minimum: 0
+ - `orderby` (string, optional): Order results by specified properties (e.g., 'displayName desc')
+
+
+
+ **Description:** Get information about a specific SharePoint site.
+
+ **Parameters:**
+ - `site_id` (string, required): The ID of the SharePoint site
+ - `select` (string, optional): Select specific properties to return (e.g., 'displayName,id,webUrl,drives')
+ - `expand` (string, optional): Expand related resources inline (e.g., 'drives,lists')
+
+
+
+ **Description:** Get all lists in a SharePoint site.
+
+ **Parameters:**
+ - `site_id` (string, required): The ID of the SharePoint site
+
+
+
+ **Description:** Get information about a specific list.
+
+ **Parameters:**
+ - `site_id` (string, required): The ID of the SharePoint site
+ - `list_id` (string, required): The ID of the list
+
+
+
+ **Description:** Get items from a SharePoint list.
+
+ **Parameters:**
+ - `site_id` (string, required): The ID of the SharePoint site
+ - `list_id` (string, required): The ID of the list
+ - `expand` (string, optional): Expand related data (e.g., 'fields')
+
+
+
+ **Description:** Create a new item in a SharePoint list.
+
+ **Parameters:**
+ - `site_id` (string, required): The ID of the SharePoint site
+ - `list_id` (string, required): The ID of the list
+ - `fields` (object, required): The field values for the new item
+ ```json
+ {
+ "Title": "New Item Title",
+ "Description": "Item description",
+ "Status": "Active"
+ }
+ ```
+
+
+
+ **Description:** Update an item in a SharePoint list.
+
+ **Parameters:**
+ - `site_id` (string, required): The ID of the SharePoint site
+ - `list_id` (string, required): The ID of the list
+ - `item_id` (string, required): The ID of the item to update
+ - `fields` (object, required): The field values to update
+ ```json
+ {
+ "Title": "Updated Title",
+ "Status": "Completed"
+ }
+ ```
+
+
+
+ **Description:** Delete an item from a SharePoint list.
+
+ **Parameters:**
+ - `site_id` (string, required): The ID of the SharePoint site
+ - `list_id` (string, required): The ID of the list
+ - `item_id` (string, required): The ID of the item to delete
+
+
+
+ **Description:** Upload a file to a SharePoint document library.
+
+ **Parameters:**
+ - `site_id` (string, required): The ID of the SharePoint site
+ - `file_path` (string, required): The path where to upload the file (e.g., 'folder/filename.txt')
+ - `content` (string, required): The file content to upload
+
+
+
+ **Description:** Get files and folders from a SharePoint document library.
+
+ **Parameters:**
+ - `site_id` (string, required): The ID of the SharePoint site
+
+
+
+ **Description:** Delete a file or folder from SharePoint document library.
+
+ **Parameters:**
+ - `site_id` (string, required): The ID of the SharePoint site
+ - `item_id` (string, required): The ID of the file or folder to delete
+
+
+
+## Usage Examples
+
+### Basic SharePoint Agent Setup
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent with SharePoint capabilities
+sharepoint_agent = Agent(
+ role="SharePoint Manager",
+ goal="Manage SharePoint sites, lists, and documents efficiently",
+ backstory="An AI assistant specialized in SharePoint content management and collaboration.",
+ apps=['microsoft_sharepoint'] # All SharePoint actions will be available
+)
+
+# Task to organize SharePoint content
+content_organization_task = Task(
+ description="List all accessible SharePoint sites and organize content by department",
+ agent=sharepoint_agent,
+ expected_output="SharePoint sites listed and content organized by department"
+)
+
+# Run the task
+crew = Crew(
+ agents=[sharepoint_agent],
+ tasks=[content_organization_task]
+)
+
+crew.kickoff()
+```
+
+### List Management and Data Operations
+
+```python
+from crewai import Agent, Task, Crew
+
+list_manager = Agent(
+ role="List Manager",
+ goal="Manage SharePoint lists and data efficiently",
+ backstory="An AI assistant that focuses on SharePoint list management and data operations.",
+ apps=[
+ 'microsoft_sharepoint/get_site_lists',
+ 'microsoft_sharepoint/get_list_items',
+ 'microsoft_sharepoint/create_list_item',
+ 'microsoft_sharepoint/update_list_item'
+ ]
+)
+
+# Task to manage list data
+list_management_task = Task(
+ description="Get all lists from the project site, review items, and update status for completed tasks",
+ agent=list_manager,
+ expected_output="SharePoint lists reviewed and task statuses updated"
+)
+
+crew = Crew(
+ agents=[list_manager],
+ tasks=[list_management_task]
+)
+
+crew.kickoff()
+```
+
+### Document Library Management
+
+```python
+from crewai import Agent, Task, Crew
+
+document_manager = Agent(
+ role="Document Manager",
+ goal="Manage SharePoint document libraries and files",
+ backstory="An AI assistant that specializes in document organization and file management.",
+ apps=['microsoft_sharepoint']
+)
+
+# Task to manage documents
+document_task = Task(
+ description="""
+ 1. Get all files from the main document library
+ 2. Upload new policy documents to the appropriate folders
+ 3. Organize files by department and date
+ 4. Remove outdated documents
+ """,
+ agent=document_manager,
+ expected_output="Document library organized with new files uploaded and outdated files removed"
+)
+
+crew = Crew(
+ agents=[document_manager],
+ tasks=[document_task]
+)
+
+crew.kickoff()
+```
+
+### Site Administration and Analysis
+
+```python
+from crewai import Agent, Task, Crew
+
+site_administrator = Agent(
+ role="Site Administrator",
+ goal="Administer and analyze SharePoint sites",
+ backstory="An AI assistant that handles site administration and provides insights on site usage.",
+ apps=['microsoft_sharepoint']
+)
+
+# Task for site administration
+admin_task = Task(
+ description="""
+ 1. Get information about all accessible SharePoint sites
+ 2. Analyze site structure and content organization
+ 3. Identify sites with low activity or outdated content
+ 4. Generate recommendations for site optimization
+ """,
+ agent=site_administrator,
+ expected_output="Site analysis completed with optimization recommendations"
+)
+
+crew = Crew(
+ agents=[site_administrator],
+ tasks=[admin_task]
+)
+
+crew.kickoff()
+```
+
+### Automated Content Workflows
+
+```python
+from crewai import Agent, Task, Crew
+
+workflow_automator = Agent(
+ role="Workflow Automator",
+ goal="Automate SharePoint content workflows and processes",
+ backstory="An AI assistant that automates complex SharePoint workflows and content management processes.",
+ apps=['microsoft_sharepoint']
+)
+
+# Complex workflow automation task
+automation_task = Task(
+ description="""
+ 1. Monitor project lists across multiple sites
+ 2. Create status reports based on list data
+ 3. Upload reports to designated document libraries
+ 4. Update project tracking lists with completion status
+ 5. Archive completed project documents
+ 6. Send notifications for overdue items
+ """,
+ agent=workflow_automator,
+ expected_output="Automated workflow completed with status reports generated and project tracking updated"
+)
+
+crew = Crew(
+ agents=[workflow_automator],
+ tasks=[automation_task]
+)
+
+crew.kickoff()
+```
+
+### Data Integration and Reporting
+
+```python
+from crewai import Agent, Task, Crew
+
+data_integrator = Agent(
+ role="Data Integrator",
+ goal="Integrate and analyze data across SharePoint sites and lists",
+ backstory="An AI assistant that specializes in data integration and cross-site analysis.",
+ apps=['microsoft_sharepoint']
+)
+
+# Task for data integration
+integration_task = Task(
+ description="""
+ 1. Get data from multiple SharePoint lists across different sites
+ 2. Consolidate information into comprehensive reports
+ 3. Create new list items with aggregated data
+ 4. Upload analytical reports to executive document library
+ 5. Update dashboard lists with key metrics
+ """,
+ agent=data_integrator,
+ expected_output="Data integrated across sites with comprehensive reports and updated dashboards"
+)
+
+crew = Crew(
+ agents=[data_integrator],
+ tasks=[integration_task]
+)
+
+crew.kickoff()
+```
+
+## Troubleshooting
+
+### Common Issues
+
+**Permission Errors**
+- Ensure your Microsoft account has appropriate permissions for SharePoint sites
+- Verify that the OAuth connection includes required scopes (Sites.Read.All, Sites.ReadWrite.All)
+- Check that you have access to the specific sites and lists you're trying to access
+
+**Site and List ID Issues**
+- Verify that site IDs and list IDs are correct and properly formatted
+- Ensure that sites and lists exist and are accessible to your account
+- Use the get_sites and get_site_lists actions to discover valid IDs
+
+**Field and Schema Issues**
+- Ensure field names match exactly with the SharePoint list schema
+- Verify that required fields are included when creating or updating list items
+- Check that field types and values are compatible with the list column definitions
+
+**File Upload Issues**
+- Ensure file paths are properly formatted and don't contain invalid characters
+- Verify that you have write permissions to the target document library
+- Check that file content is properly encoded for upload
+
+**OData Query Issues**
+- Use proper OData syntax for filter, select, expand, and orderby parameters
+- Verify that property names used in queries exist in the target resources
+- Test simple queries before building complex filter expressions
+
+**Pagination and Performance**
+- Use top and skip parameters appropriately for large result sets
+- Implement proper pagination for lists with many items
+- Consider using select parameters to return only needed properties
+
+**Document Library Operations**
+- Ensure you have proper permissions for document library operations
+- Verify that drive item IDs are correct when deleting files or folders
+- Check that file paths don't conflict with existing content
+
+### Getting Help
+
+
+ Contact our support team for assistance with Microsoft SharePoint integration setup or troubleshooting.
+
diff --git a/docs/en/enterprise/integrations/microsoft_teams.mdx b/docs/en/enterprise/integrations/microsoft_teams.mdx
new file mode 100644
index 0000000000..6b9115704d
--- /dev/null
+++ b/docs/en/enterprise/integrations/microsoft_teams.mdx
@@ -0,0 +1,212 @@
+---
+title: Microsoft Teams Integration
+description: "Team collaboration and communication with Microsoft Teams integration for CrewAI."
+icon: "users"
+mode: "wide"
+---
+
+## Overview
+
+Enable your agents to access Teams data, send messages, create meetings, and manage channels. Automate team communication, schedule meetings, retrieve messages, and streamline your collaboration workflows with AI-powered automation.
+
+## Prerequisites
+
+Before using the Microsoft Teams integration, ensure you have:
+
+- A [CrewAI AMP](https://app.crewai.com) account with an active subscription
+- A Microsoft account with Teams access
+- Connected your Microsoft account through the [Integrations page](https://app.crewai.com/crewai_plus/connectors)
+
+## Setting Up Microsoft Teams Integration
+
+### 1. Connect Your Microsoft Account
+
+1. Navigate to [CrewAI AMP Integrations](https://app.crewai.com/crewai_plus/connectors)
+2. Find **Microsoft Teams** in the Authentication Integrations section
+3. Click **Connect** and complete the OAuth flow
+4. Grant the necessary permissions for Teams access
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
+
+### 2. Install Required Package
+
+```bash
+uv add crewai-tools
+```
+
+## Available Actions
+
+
+
+ **Description:** Get all teams the user is a member of.
+
+ **Parameters:**
+ - No parameters required.
+
+
+
+ **Description:** Get channels in a specific team.
+
+ **Parameters:**
+ - `team_id` (string, required): The ID of the team.
+
+
+
+ **Description:** Send a message to a Teams channel.
+
+ **Parameters:**
+ - `team_id` (string, required): The ID of the team.
+ - `channel_id` (string, required): The ID of the channel.
+ - `message` (string, required): The message content.
+ - `content_type` (string, optional): Content type (html or text). Enum: `html`, `text`. Default is `text`.
+
+
+
+ **Description:** Get messages from a Teams channel.
+
+ **Parameters:**
+ - `team_id` (string, required): The ID of the team.
+ - `channel_id` (string, required): The ID of the channel.
+ - `top` (integer, optional): Number of messages to retrieve (max 50). Default is `20`.
+
+
+
+ **Description:** Create a Teams meeting.
+
+ **Parameters:**
+ - `subject` (string, required): Meeting subject/title.
+ - `startDateTime` (string, required): Meeting start time (ISO 8601 format with timezone).
+ - `endDateTime` (string, required): Meeting end time (ISO 8601 format with timezone).
+
+
+
+ **Description:** Search online meetings by Join Web URL.
+
+ **Parameters:**
+ - `join_web_url` (string, required): The join web URL of the meeting to search for.
+
+
+
+## Usage Examples
+
+### Basic Microsoft Teams Agent Setup
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent with Microsoft Teams capabilities
+teams_agent = Agent(
+ role="Teams Coordinator",
+ goal="Manage Teams communication and meetings efficiently",
+ backstory="An AI assistant specialized in Microsoft Teams operations and team collaboration.",
+ apps=['microsoft_teams'] # All Teams actions will be available
+)
+
+# Task to list teams and channels
+explore_teams_task = Task(
+ description="List all teams I'm a member of and then get the channels for the first team.",
+ agent=teams_agent,
+ expected_output="List of teams and channels displayed."
+)
+
+# Run the task
+crew = Crew(
+ agents=[teams_agent],
+ tasks=[explore_teams_task]
+)
+
+crew.kickoff()
+```
+
+### Messaging and Communication
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent focused on messaging
+messenger = Agent(
+ role="Teams Messenger",
+ goal="Send and retrieve messages in Teams channels",
+ backstory="An AI assistant skilled in team communication and message management.",
+ apps=['microsoft_teams/send_message', 'microsoft_teams/get_messages']
+)
+
+# Task to send a message and retrieve recent messages
+messaging_task = Task(
+ description="Send a message 'Hello team! This is an automated update from our AI assistant.' to the General channel of team 'your_team_id', then retrieve the last 10 messages from that channel.",
+ agent=messenger,
+ expected_output="Message sent successfully and recent messages retrieved."
+)
+
+crew = Crew(
+ agents=[messenger],
+ tasks=[messaging_task]
+)
+
+crew.kickoff()
+```
+
+### Meeting Management
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent for meeting management
+meeting_scheduler = Agent(
+ role="Meeting Scheduler",
+ goal="Create and manage Teams meetings",
+ backstory="An AI assistant that handles meeting scheduling and organization.",
+ apps=['microsoft_teams/create_meeting', 'microsoft_teams/search_online_meetings_by_join_url']
+)
+
+# Task to create a meeting
+schedule_meeting_task = Task(
+ description="Create a Teams meeting titled 'Weekly Team Sync' scheduled for tomorrow at 10:00 AM lasting for 1 hour (use proper ISO 8601 format with timezone).",
+ agent=meeting_scheduler,
+ expected_output="Teams meeting created successfully with meeting details."
+)
+
+crew = Crew(
+ agents=[meeting_scheduler],
+ tasks=[schedule_meeting_task]
+)
+
+crew.kickoff()
+```
+
+## Troubleshooting
+
+### Common Issues
+
+**Authentication Errors**
+- Ensure your Microsoft account has the necessary permissions for Teams access.
+- Required scopes include: `Team.ReadBasic.All`, `Channel.ReadBasic.All`, `ChannelMessage.Send`, `ChannelMessage.Read.All`, `OnlineMeetings.ReadWrite`, `OnlineMeetings.Read`.
+- Verify that the OAuth connection includes all required scopes.
+
+**Team and Channel Access**
+- Ensure you are a member of the teams you're trying to access.
+- Double-check team IDs and channel IDs for correctness.
+- Team and channel IDs can be obtained using the `get_teams` and `get_channels` actions.
+
+**Message Sending Issues**
+- Ensure `team_id`, `channel_id`, and `message` are provided for `send_message`.
+- Verify that you have permissions to send messages to the specified channel.
+- Choose appropriate `content_type` (text or html) based on your message format.
+
+**Meeting Creation**
+- Ensure `subject`, `startDateTime`, and `endDateTime` are provided.
+- Use proper ISO 8601 format with timezone for datetime fields (e.g., '2024-01-20T10:00:00-08:00').
+- Verify that the meeting times are in the future.
+
+**Message Retrieval Limitations**
+- The `get_messages` action can retrieve a maximum of 50 messages per request.
+- Messages are returned in reverse chronological order (newest first).
+
+**Meeting Search**
+- For `search_online_meetings_by_join_url`, ensure the join URL is exact and properly formatted.
+- The URL should be the complete Teams meeting join URL.
+
+### Getting Help
+
+
+ Contact our support team for assistance with Microsoft Teams integration setup or troubleshooting.
+
diff --git a/docs/en/enterprise/integrations/microsoft_word.mdx b/docs/en/enterprise/integrations/microsoft_word.mdx
new file mode 100644
index 0000000000..ff1e70e527
--- /dev/null
+++ b/docs/en/enterprise/integrations/microsoft_word.mdx
@@ -0,0 +1,192 @@
+---
+title: Microsoft Word Integration
+description: "Document creation and management with Microsoft Word integration for CrewAI."
+icon: "file-word"
+mode: "wide"
+---
+
+## Overview
+
+Enable your agents to create, read, and manage Word documents and text files in OneDrive or SharePoint. Automate document creation, retrieve content, manage document properties, and streamline your document workflows with AI-powered automation.
+
+## Prerequisites
+
+Before using the Microsoft Word integration, ensure you have:
+
+- A [CrewAI AMP](https://app.crewai.com) account with an active subscription
+- A Microsoft account with Word and OneDrive/SharePoint access
+- Connected your Microsoft account through the [Integrations page](https://app.crewai.com/crewai_plus/connectors)
+
+## Setting Up Microsoft Word Integration
+
+### 1. Connect Your Microsoft Account
+
+1. Navigate to [CrewAI AMP Integrations](https://app.crewai.com/crewai_plus/connectors)
+2. Find **Microsoft Word** in the Authentication Integrations section
+3. Click **Connect** and complete the OAuth flow
+4. Grant the necessary permissions for file access
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
+
+### 2. Install Required Package
+
+```bash
+uv add crewai-tools
+```
+
+## Available Actions
+
+
+
+ **Description:** Get all Word documents from OneDrive or SharePoint.
+
+ **Parameters:**
+ - `select` (string, optional): Select specific properties to return.
+ - `filter` (string, optional): Filter results using OData syntax.
+ - `expand` (string, optional): Expand related resources inline.
+ - `top` (integer, optional): Number of items to return (min 1, max 999).
+ - `orderby` (string, optional): Order results by specified properties.
+
+
+
+ **Description:** Create a text document (.txt) with content. RECOMMENDED for programmatic content creation that needs to be readable and editable.
+
+ **Parameters:**
+ - `file_name` (string, required): Name of the text document (should end with .txt).
+ - `content` (string, optional): Text content for the document. Default is "This is a new text document created via API."
+
+
+
+ **Description:** Get the content of a document (works best with text files).
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the document.
+
+
+
+ **Description:** Get properties and metadata of a document.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the document.
+
+
+
+ **Description:** Delete a document.
+
+ **Parameters:**
+ - `file_id` (string, required): The ID of the document to delete.
+
+
+
+## Usage Examples
+
+### Basic Microsoft Word Agent Setup
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent with Microsoft Word capabilities
+word_agent = Agent(
+ role="Document Manager",
+ goal="Manage Word documents and text files efficiently",
+ backstory="An AI assistant specialized in Microsoft Word document operations and content management.",
+ apps=['microsoft_word'] # All Word actions will be available
+)
+
+# Task to create a new text document
+create_doc_task = Task(
+ description="Create a new text document named 'meeting_notes.txt' with content 'Meeting Notes from January 2024: Key discussion points and action items.'",
+ agent=word_agent,
+ expected_output="New text document 'meeting_notes.txt' created successfully."
+)
+
+# Run the task
+crew = Crew(
+ agents=[word_agent],
+ tasks=[create_doc_task]
+)
+
+crew.kickoff()
+```
+
+### Reading and Managing Documents
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent focused on document operations
+document_reader = Agent(
+ role="Document Reader",
+ goal="Retrieve and analyze document content and properties",
+ backstory="An AI assistant skilled in reading and analyzing document content.",
+ apps=['microsoft_word/get_documents', 'microsoft_word/get_document_content', 'microsoft_word/get_document_properties']
+)
+
+# Task to list and read documents
+read_docs_task = Task(
+ description="List all Word documents in my OneDrive, then get the content and properties of the first document found.",
+ agent=document_reader,
+ expected_output="List of documents with content and properties of the first document."
+)
+
+crew = Crew(
+ agents=[document_reader],
+ tasks=[read_docs_task]
+)
+
+crew.kickoff()
+```
+
+### Document Cleanup and Organization
+
+```python
+from crewai import Agent, Task, Crew
+
+# Create an agent for document management
+document_organizer = Agent(
+ role="Document Organizer",
+ goal="Organize and clean up document collections",
+ backstory="An AI assistant that helps maintain organized document libraries.",
+ apps=['microsoft_word/get_documents', 'microsoft_word/get_document_properties', 'microsoft_word/delete_document']
+)
+
+# Task to organize documents
+organize_task = Task(
+ description="List all documents, check their properties, and identify any documents that might be duplicates or outdated for potential cleanup.",
+ agent=document_organizer,
+ expected_output="Analysis of document library with recommendations for organization."
+)
+
+crew = Crew(
+ agents=[document_organizer],
+ tasks=[organize_task]
+)
+
+crew.kickoff()
+```
+
+## Troubleshooting
+
+### Common Issues
+
+**Authentication Errors**
+- Ensure your Microsoft account has the necessary permissions for file access (e.g., `Files.Read.All`, `Files.ReadWrite.All`).
+- Verify that the OAuth connection includes all required scopes.
+
+**File Creation Issues**
+- When creating text documents, ensure the `file_name` ends with `.txt` extension.
+- Verify that you have write permissions to the target location (OneDrive/SharePoint).
+
+**Document Access Issues**
+- Double-check document IDs for correctness when accessing specific documents.
+- Ensure the referenced documents exist and are accessible.
+- Note that this integration works best with text files (.txt) for content operations.
+
+**Content Retrieval Limitations**
+- The `get_document_content` action works best with text files (.txt).
+- For complex Word documents (.docx), consider using the document properties action to get metadata.
+
+### Getting Help
+
+
+ Contact our support team for assistance with Microsoft Word integration setup or troubleshooting.
+
diff --git a/docs/en/enterprise/integrations/notion.mdx b/docs/en/enterprise/integrations/notion.mdx
index 5fb1afaf0a..0665bb128e 100644
--- a/docs/en/enterprise/integrations/notion.mdx
+++ b/docs/en/enterprise/integrations/notion.mdx
@@ -1,13 +1,13 @@
---
title: Notion Integration
-description: "Page and database management with Notion integration for CrewAI."
+description: "User management and commenting with Notion integration for CrewAI."
icon: "book"
mode: "wide"
---
## Overview
-Enable your agents to manage pages, databases, and content through Notion. Create and update pages, manage content blocks, organize knowledge bases, and streamline your documentation workflows with AI-powered automation.
+Enable your agents to manage users and create comments through Notion. Access workspace user information and create comments on pages and discussions, streamlining your collaboration workflows with AI-powered automation.
## Prerequisites
@@ -24,8 +24,8 @@ Before using the Notion integration, ensure you have:
1. Navigate to [CrewAI AMP Integrations](https://app.crewai.com/crewai_plus/connectors)
2. Find **Notion** in the Authentication Integrations section
3. Click **Connect** and complete the OAuth flow
-4. Grant the necessary permissions for page and database management
-5. Copy your Enterprise Token from [Account Settings](https://app.crewai.com/crewai_plus/settings/account)
+4. Grant the necessary permissions for user access and comment creation
+5. Copy your Enterprise Token from [Integration Settings](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Install Required Package
@@ -36,243 +36,51 @@ uv add crewai-tools
## Available Actions
-
- **Description:** Create a page in Notion.
+
+ **Description:** List all users in the workspace.
**Parameters:**
- - `parent` (object, required): Parent - The parent page or database where the new page is inserted, represented as a JSON object with a page_id or database_id key.
- ```json
- {
- "database_id": "DATABASE_ID"
- }
- ```
- - `properties` (object, required): Properties - The values of the page's properties. If the parent is a database, then the schema must match the parent database's properties.
- ```json
- {
- "title": [
- {
- "text": {
- "content": "My Page"
- }
- }
- ]
- }
- ```
- - `icon` (object, required): Icon - The page icon.
- ```json
- {
- "emoji": "🥬"
- }
- ```
- - `children` (object, optional): Children - Content blocks to add to the page.
- ```json
- [
- {
- "object": "block",
- "type": "heading_2",
- "heading_2": {
- "rich_text": [
- {
- "type": "text",
- "text": {
- "content": "Lacinato kale"
- }
- }
- ]
- }
- }
- ]
- ```
- - `cover` (object, optional): Cover - The page cover image.
- ```json
- {
- "external": {
- "url": "https://upload.wikimedia.org/wikipedia/commons/6/62/Tuscankale.jpg"
- }
- }
- ```
-
-
-
- **Description:** Update a page in Notion.
-
- **Parameters:**
- - `pageId` (string, required): Page ID - Specify the ID of the Page to Update. (example: "59833787-2cf9-4fdf-8782-e53db20768a5").
- - `icon` (object, required): Icon - The page icon.
- ```json
- {
- "emoji": "🥬"
- }
- ```
- - `archived` (boolean, optional): Archived - Whether the page is archived (deleted). Set to true to archive a page. Set to false to un-archive (restore) a page.
- - `properties` (object, optional): Properties - The property values to update for the page.
- ```json
- {
- "title": [
- {
- "text": {
- "content": "My Updated Page"
- }
- }
- ]
- }
- ```
- - `cover` (object, optional): Cover - The page cover image.
- ```json
- {
- "external": {
- "url": "https://upload.wikimedia.org/wikipedia/commons/6/62/Tuscankale.jpg"
- }
- }
- ```
+ - `page_size` (integer, optional): Number of items returned in the response. Minimum: 1, Maximum: 100, Default: 100
+ - `start_cursor` (string, optional): Cursor for pagination. Return results after this cursor.
-
- **Description:** Get a page by ID in Notion.
+
+ **Description:** Retrieve a specific user by ID.
**Parameters:**
- - `pageId` (string, required): Page ID - Specify the ID of the Page to Get. (example: "59833787-2cf9-4fdf-8782-e53db20768a5").
+ - `user_id` (string, required): The ID of the user to retrieve.
-
- **Description:** Archive a page in Notion.
+
+ **Description:** Create a comment on a page or discussion.
**Parameters:**
- - `pageId` (string, required): Page ID - Specify the ID of the Page to Archive. (example: "59833787-2cf9-4fdf-8782-e53db20768a5").
-
-
-
- **Description:** Search pages in Notion using filters.
-
- **Parameters:**
- - `searchByTitleFilterSearch` (object, optional): A filter in disjunctive normal form - OR of AND groups of single conditions.
+ - `parent` (object, required): The parent page or discussion to comment on.
```json
{
- "operator": "OR",
- "conditions": [
- {
- "operator": "AND",
- "conditions": [
- {
- "field": "query",
- "operator": "$stringExactlyMatches",
- "value": "meeting notes"
- }
- ]
- }
- ]
+ "type": "page_id",
+ "page_id": "PAGE_ID_HERE"
}
```
- Available fields: `query`, `filter.value`, `direction`, `page_size`
-
-
-
- **Description:** Get page content (blocks) in Notion.
-
- **Parameters:**
- - `blockId` (string, required): Page ID - Specify a Block or Page ID to receive all of its block's children in order. (example: "59833787-2cf9-4fdf-8782-e53db20768a5").
-
-
-
- **Description:** Update a block in Notion.
-
- **Parameters:**
- - `blockId` (string, required): Block ID - Specify the ID of the Block to Update. (example: "9bc30ad4-9373-46a5-84ab-0a7845ee52e6").
- - `archived` (boolean, optional): Archived - Set to true to archive (delete) a block. Set to false to un-archive (restore) a block.
- - `paragraph` (object, optional): Paragraph content.
- ```json
- {
- "rich_text": [
- {
- "type": "text",
- "text": {
- "content": "Lacinato kale",
- "link": null
- }
- }
- ],
- "color": "default"
- }
- ```
- - `image` (object, optional): Image block.
+ or
```json
{
- "type": "external",
- "external": {
- "url": "https://website.domain/images/image.png"
- }
+ "type": "discussion_id",
+ "discussion_id": "DISCUSSION_ID_HERE"
}
```
- - `bookmark` (object, optional): Bookmark block.
+ - `rich_text` (array, required): The rich text content of the comment.
```json
- {
- "caption": [],
- "url": "https://companywebsite.com"
- }
- ```
- - `code` (object, optional): Code block.
- ```json
- {
- "rich_text": [
- {
- "type": "text",
- "text": {
- "content": "const a = 3"
- }
+ [
+ {
+ "type": "text",
+ "text": {
+ "content": "This is my comment text"
}
- ],
- "language": "javascript"
- }
- ```
- - `pdf` (object, optional): PDF block.
- ```json
- {
- "type": "external",
- "external": {
- "url": "https://website.domain/files/doc.pdf"
}
- }
- ```
- - `table` (object, optional): Table block.
- ```json
- {
- "table_width": 2,
- "has_column_header": false,
- "has_row_header": false
- }
- ```
- - `tableOfContent` (object, optional): Table of Contents block.
- ```json
- {
- "color": "default"
- }
- ```
- - `additionalFields` (object, optional): Additional block types.
- ```json
- {
- "child_page": {
- "title": "Lacinato kale"
- },
- "child_database": {
- "title": "My database"
- }
- }
+ ]
```
-
-
- **Description:** Get a block by ID in Notion.
-
- **Parameters:**
- - `blockId` (string, required): Block ID - Specify the ID of the Block to Get. (example: "9bc30ad4-9373-46a5-84ab-0a7845ee52e6").
-
-
-
- **Description:** Delete a block in Notion.
-
- **Parameters:**
- - `blockId` (string, required): Block ID - Specify the ID of the Block to Delete. (example: "9bc30ad4-9373-46a5-84ab-0a7845ee52e6").
-
## Usage Examples
@@ -281,32 +89,26 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get enterprise tools (Notion tools will be included)
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
# Create an agent with Notion capabilities
notion_agent = Agent(
- role="Documentation Manager",
- goal="Manage documentation and knowledge base in Notion efficiently",
- backstory="An AI assistant specialized in content management and documentation.",
- tools=[enterprise_tools]
+ role="Workspace Manager",
+ goal="Manage workspace users and facilitate collaboration through comments",
+ backstory="An AI assistant specialized in user management and team collaboration.",
+ apps=['notion'] # All Notion actions will be available
)
-# Task to create a meeting notes page
-create_notes_task = Task(
- description="Create a new meeting notes page in the team database with today's date and agenda items",
+# Task to list workspace users
+user_management_task = Task(
+ description="List all users in the workspace and provide a summary of team members",
agent=notion_agent,
- expected_output="Meeting notes page created successfully with structured content"
+ expected_output="Complete list of workspace users with their details"
)
# Run the task
crew = Crew(
agents=[notion_agent],
- tasks=[create_notes_task]
+ tasks=[user_management_task]
)
crew.kickoff()
@@ -315,144 +117,116 @@ crew.kickoff()
### Filtering Specific Notion Tools
```python
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get only specific Notion tools
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token",
- actions_list=["notion_create_page", "notion_update_block", "notion_search_pages"]
-)
-
-content_manager = Agent(
- role="Content Manager",
- goal="Create and manage content pages efficiently",
- backstory="An AI assistant that focuses on content creation and management.",
- tools=enterprise_tools
+comment_manager = Agent(
+ role="Comment Manager",
+ goal="Create and manage comments on Notion pages",
+ backstory="An AI assistant that focuses on facilitating discussions through comments.",
+ apps=['notion/create_comment']
)
-# Task to manage content workflow
-content_workflow = Task(
- description="Create a new project documentation page and add structured content blocks for requirements and specifications",
- agent=content_manager,
- expected_output="Project documentation created with organized content sections"
+# Task to create comments on pages
+comment_task = Task(
+ description="Create a summary comment on the project status page with key updates",
+ agent=comment_manager,
+ expected_output="Comment created successfully with project status updates"
)
crew = Crew(
- agents=[content_manager],
- tasks=[content_workflow]
+ agents=[comment_manager],
+ tasks=[comment_task]
)
crew.kickoff()
```
-### Knowledge Base Management
+### User Information and Team Management
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
+team_coordinator = Agent(
+ role="Team Coordinator",
+ goal="Coordinate team activities and manage user information",
+ backstory="An AI assistant that helps coordinate team activities and manages user information.",
+ apps=['notion']
)
-knowledge_curator = Agent(
- role="Knowledge Curator",
- goal="Curate and organize knowledge base content in Notion",
- backstory="An experienced knowledge manager who organizes and maintains comprehensive documentation.",
- tools=[enterprise_tools]
-)
-
-# Task to curate knowledge base
-curation_task = Task(
+# Task to coordinate team activities
+coordination_task = Task(
description="""
- 1. Search for existing documentation pages related to our new product feature
- 2. Create a comprehensive feature documentation page with proper structure
- 3. Add code examples, images, and links to related resources
- 4. Update existing pages with cross-references to the new documentation
+ 1. List all users in the workspace
+ 2. Get detailed information for specific team members
+ 3. Create comments on relevant pages to notify team members about updates
""",
- agent=knowledge_curator,
- expected_output="Feature documentation created and integrated with existing knowledge base"
+ agent=team_coordinator,
+ expected_output="Team coordination completed with user information gathered and notifications sent"
)
crew = Crew(
- agents=[knowledge_curator],
- tasks=[curation_task]
+ agents=[team_coordinator],
+ tasks=[coordination_task]
)
crew.kickoff()
```
-### Content Structure and Organization
+### Collaboration and Communication
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
-content_organizer = Agent(
- role="Content Organizer",
- goal="Organize and structure content blocks for optimal readability",
- backstory="An AI assistant that specializes in content structure and user experience.",
- tools=[enterprise_tools]
+collaboration_facilitator = Agent(
+ role="Collaboration Facilitator",
+ goal="Facilitate team collaboration through comments and user management",
+ backstory="An AI assistant that specializes in team collaboration and communication.",
+ apps=['notion']
)
-# Task to organize content structure
-organization_task = Task(
+# Task to facilitate collaboration
+collaboration_task = Task(
description="""
- 1. Get content from existing project pages
- 2. Analyze the structure and identify improvement opportunities
- 3. Update content blocks to use proper headings, tables, and formatting
- 4. Add table of contents and improve navigation between related pages
- 5. Create templates for future documentation consistency
+ 1. Identify active users in the workspace
+ 2. Create contextual comments on project pages to facilitate discussions
+ 3. Provide status updates and feedback through comments
""",
- agent=content_organizer,
- expected_output="Content reorganized with improved structure and navigation"
+ agent=collaboration_facilitator,
+ expected_output="Collaboration facilitated with comments created and team members notified"
)
crew = Crew(
- agents=[content_organizer],
- tasks=[organization_task]
+ agents=[collaboration_facilitator],
+ tasks=[collaboration_task]
)
crew.kickoff()
```
-### Automated Documentation Workflows
+### Automated Team Communication
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
-doc_automator = Agent(
- role="Documentation Automator",
- goal="Automate documentation workflows and maintenance",
- backstory="An AI assistant that automates repetitive documentation tasks.",
- tools=[enterprise_tools]
+communication_automator = Agent(
+ role="Communication Automator",
+ goal="Automate team communication and user management workflows",
+ backstory="An AI assistant that automates communication workflows and manages user interactions.",
+ apps=['notion']
)
-# Complex documentation automation task
+# Complex communication automation task
automation_task = Task(
description="""
- 1. Search for pages that haven't been updated in the last 30 days
- 2. Review and update outdated content blocks
- 3. Create weekly team update pages with consistent formatting
- 4. Add status indicators and progress tracking to project pages
- 5. Generate monthly documentation health reports
- 6. Archive completed project pages and organize them in archive sections
+ 1. List all workspace users and identify team roles
+ 2. Get specific user information for project stakeholders
+ 3. Create automated status update comments on key project pages
+ 4. Facilitate team communication through targeted comments
""",
- agent=doc_automator,
- expected_output="Documentation automated with updated content, weekly reports, and organized archives"
+ agent=communication_automator,
+ expected_output="Automated communication workflow completed with user management and comments"
)
crew = Crew(
- agents=[doc_automator],
+ agents=[communication_automator],
tasks=[automation_task]
)
@@ -464,44 +238,29 @@ crew.kickoff()
### Common Issues
**Permission Errors**
-- Ensure your Notion account has edit access to the target workspace
-- Verify that the OAuth connection includes required scopes for Notion API
-- Check that pages and databases are shared with the authenticated integration
-
-**Invalid Page and Block IDs**
-- Double-check page IDs and block IDs for correct UUID format
-- Ensure referenced pages and blocks exist and are accessible
-- Verify that parent page or database IDs are valid when creating new pages
-
-**Property Schema Issues**
-- Ensure page properties match the database schema when creating pages in databases
-- Verify that property names and types are correct for the target database
-- Check that required properties are included when creating or updating pages
-
-**Content Block Structure**
-- Ensure block content follows Notion's rich text format specifications
-- Verify that nested block structures are properly formatted
-- Check that media URLs are accessible and properly formatted
-
-**Search and Filter Issues**
-- Ensure search queries are properly formatted and not empty
-- Use valid field names in filter formulas: `query`, `filter.value`, `direction`, `page_size`
-- Test simple searches before building complex filter conditions
-
-**Parent-Child Relationships**
-- Verify that parent page or database exists before creating child pages
-- Ensure proper permissions exist for the parent container
-- Check that database schemas allow the properties you're trying to set
-
-**Rich Text and Media Content**
-- Ensure URLs for external images, PDFs, and bookmarks are accessible
-- Verify that rich text formatting follows Notion's API specifications
-- Check that code block language types are supported by Notion
-
-**Archive and Deletion Operations**
-- Understand the difference between archiving (reversible) and deleting (permanent)
-- Verify that you have permissions to archive or delete the target content
-- Be cautious with bulk operations that might affect multiple pages or blocks
+- Ensure your Notion account has appropriate permissions to read user information
+- Verify that the OAuth connection includes required scopes for user access and comment creation
+- Check that you have permissions to comment on the target pages or discussions
+
+**User Access Issues**
+- Ensure you have workspace admin permissions to list all users
+- Verify that user IDs are correct and users exist in the workspace
+- Check that the workspace allows API access to user information
+
+**Comment Creation Issues**
+- Verify that page IDs or discussion IDs are correct and accessible
+- Ensure that rich text content follows Notion's API format specifications
+- Check that you have comment permissions on the target pages or discussions
+
+**API Rate Limits**
+- Be mindful of Notion's API rate limits when making multiple requests
+- Implement appropriate delays between requests if needed
+- Consider pagination for large user lists
+
+**Parent Object Specification**
+- Ensure parent object type is correctly specified (page_id or discussion_id)
+- Verify that the parent page or discussion exists and is accessible
+- Check that the parent object ID format is correct
### Getting Help
diff --git a/docs/en/enterprise/integrations/salesforce.mdx b/docs/en/enterprise/integrations/salesforce.mdx
index 38fec82d22..48ede3d38a 100644
--- a/docs/en/enterprise/integrations/salesforce.mdx
+++ b/docs/en/enterprise/integrations/salesforce.mdx
@@ -22,7 +22,7 @@ Before using the Salesforce integration, ensure you have:
### **Record Management**
-
+
**Description:** Create a new Contact record in Salesforce.
**Parameters:**
@@ -35,7 +35,7 @@ Before using the Salesforce integration, ensure you have:
- `additionalFields` (object, optional): Additional fields in JSON format for custom Contact fields
-
+
**Description:** Create a new Lead record in Salesforce.
**Parameters:**
@@ -51,7 +51,7 @@ Before using the Salesforce integration, ensure you have:
- `additionalFields` (object, optional): Additional fields in JSON format for custom Lead fields
-
+
**Description:** Create a new Opportunity record in Salesforce.
**Parameters:**
@@ -66,7 +66,7 @@ Before using the Salesforce integration, ensure you have:
- `additionalFields` (object, optional): Additional fields in JSON format for custom Opportunity fields
-
+
**Description:** Create a new Task record in Salesforce.
**Parameters:**
@@ -84,7 +84,7 @@ Before using the Salesforce integration, ensure you have:
- `additionalFields` (object, optional): Additional fields in JSON format for custom Task fields
-
+
**Description:** Create a new Account record in Salesforce.
**Parameters:**
@@ -96,7 +96,7 @@ Before using the Salesforce integration, ensure you have:
- `additionalFields` (object, optional): Additional fields in JSON format for custom Account fields
-
+
**Description:** Create a record of any object type in Salesforce.
**Note:** This is a flexible tool for creating records of custom or unknown object types.
@@ -106,7 +106,7 @@ Before using the Salesforce integration, ensure you have:
### **Record Updates**
-
+
**Description:** Update an existing Contact record in Salesforce.
**Parameters:**
@@ -120,7 +120,7 @@ Before using the Salesforce integration, ensure you have:
- `additionalFields` (object, optional): Additional fields in JSON format for custom Contact fields
-
+
**Description:** Update an existing Lead record in Salesforce.
**Parameters:**
@@ -137,7 +137,7 @@ Before using the Salesforce integration, ensure you have:
- `additionalFields` (object, optional): Additional fields in JSON format for custom Lead fields
-
+
**Description:** Update an existing Opportunity record in Salesforce.
**Parameters:**
@@ -153,7 +153,7 @@ Before using the Salesforce integration, ensure you have:
- `additionalFields` (object, optional): Additional fields in JSON format for custom Opportunity fields
-
+
**Description:** Update an existing Task record in Salesforce.
**Parameters:**
@@ -171,7 +171,7 @@ Before using the Salesforce integration, ensure you have:
- `additionalFields` (object, optional): Additional fields in JSON format for custom Task fields
-
+
**Description:** Update an existing Account record in Salesforce.
**Parameters:**
@@ -184,7 +184,7 @@ Before using the Salesforce integration, ensure you have:
- `additionalFields` (object, optional): Additional fields in JSON format for custom Account fields
-
+
**Description:** Update a record of any object type in Salesforce.
**Note:** This is a flexible tool for updating records of custom or unknown object types.
@@ -194,42 +194,42 @@ Before using the Salesforce integration, ensure you have:
### **Record Retrieval**
-
+
**Description:** Get a Contact record by its ID.
**Parameters:**
- `recordId` (string, required): Record ID of the Contact
-
+
**Description:** Get a Lead record by its ID.
**Parameters:**
- `recordId` (string, required): Record ID of the Lead
-
+
**Description:** Get an Opportunity record by its ID.
**Parameters:**
- `recordId` (string, required): Record ID of the Opportunity
-
+
**Description:** Get a Task record by its ID.
**Parameters:**
- `recordId` (string, required): Record ID of the Task
-
+
**Description:** Get an Account record by its ID.
**Parameters:**
- `recordId` (string, required): Record ID of the Account
-
+
**Description:** Get a record of any object type by its ID.
**Parameters:**
@@ -241,7 +241,7 @@ Before using the Salesforce integration, ensure you have:
### **Record Search**
-
+
**Description:** Search for Contact records with advanced filtering.
**Parameters:**
@@ -252,7 +252,7 @@ Before using the Salesforce integration, ensure you have:
- `paginationParameters` (object, optional): Pagination settings with pageCursor
-
+
**Description:** Search for Lead records with advanced filtering.
**Parameters:**
@@ -263,7 +263,7 @@ Before using the Salesforce integration, ensure you have:
- `paginationParameters` (object, optional): Pagination settings with pageCursor
-
+
**Description:** Search for Opportunity records with advanced filtering.
**Parameters:**
@@ -274,7 +274,7 @@ Before using the Salesforce integration, ensure you have:
- `paginationParameters` (object, optional): Pagination settings with pageCursor
-
+
**Description:** Search for Task records with advanced filtering.
**Parameters:**
@@ -285,7 +285,7 @@ Before using the Salesforce integration, ensure you have:
- `paginationParameters` (object, optional): Pagination settings with pageCursor
-
+
**Description:** Search for Account records with advanced filtering.
**Parameters:**
@@ -296,7 +296,7 @@ Before using the Salesforce integration, ensure you have:
- `paginationParameters` (object, optional): Pagination settings with pageCursor
-
+
**Description:** Search for records of any object type.
**Parameters:**
@@ -310,7 +310,7 @@ Before using the Salesforce integration, ensure you have:
### **List View Retrieval**
-
+
**Description:** Get Contact records from a specific List View.
**Parameters:**
@@ -318,7 +318,7 @@ Before using the Salesforce integration, ensure you have:
- `paginationParameters` (object, optional): Pagination settings with pageCursor
-
+
**Description:** Get Lead records from a specific List View.
**Parameters:**
@@ -326,7 +326,7 @@ Before using the Salesforce integration, ensure you have:
- `paginationParameters` (object, optional): Pagination settings with pageCursor
-
+
**Description:** Get Opportunity records from a specific List View.
**Parameters:**
@@ -334,7 +334,7 @@ Before using the Salesforce integration, ensure you have:
- `paginationParameters` (object, optional): Pagination settings with pageCursor
-
+
**Description:** Get Task records from a specific List View.
**Parameters:**
@@ -342,7 +342,7 @@ Before using the Salesforce integration, ensure you have:
- `paginationParameters` (object, optional): Pagination settings with pageCursor
-
+
**Description:** Get Account records from a specific List View.
**Parameters:**
@@ -350,7 +350,7 @@ Before using the Salesforce integration, ensure you have:
- `paginationParameters` (object, optional): Pagination settings with pageCursor
-
+
**Description:** Get records of any object type from a specific List View.
**Parameters:**
@@ -363,7 +363,7 @@ Before using the Salesforce integration, ensure you have:
### **Custom Fields**
-
+
**Description:** Deploy custom fields for Contact objects.
**Parameters:**
@@ -379,7 +379,7 @@ Before using the Salesforce integration, ensure you have:
- `defaultFieldValue` (string, optional): Default field value
-
+
**Description:** Deploy custom fields for Lead objects.
**Parameters:**
@@ -395,7 +395,7 @@ Before using the Salesforce integration, ensure you have:
- `defaultFieldValue` (string, optional): Default field value
-
+
**Description:** Deploy custom fields for Opportunity objects.
**Parameters:**
@@ -411,7 +411,7 @@ Before using the Salesforce integration, ensure you have:
- `defaultFieldValue` (string, optional): Default field value
-
+
**Description:** Deploy custom fields for Task objects.
**Parameters:**
@@ -427,7 +427,7 @@ Before using the Salesforce integration, ensure you have:
- `defaultFieldValue` (string, optional): Default field value
-
+
**Description:** Deploy custom fields for Account objects.
**Parameters:**
@@ -443,7 +443,7 @@ Before using the Salesforce integration, ensure you have:
- `defaultFieldValue` (string, optional): Default field value
-
+
**Description:** Deploy custom fields for any object type.
**Note:** This is a flexible tool for creating custom fields on custom or unknown object types.
@@ -453,14 +453,14 @@ Before using the Salesforce integration, ensure you have:
### **Advanced Operations**
-
+
**Description:** Execute custom SOQL queries against your Salesforce data.
**Parameters:**
- `query` (string, required): SOQL Query (e.g., "SELECT Id, Name FROM Account WHERE Name = 'Example'")
-
+
**Description:** Deploy a new custom object in Salesforce.
**Parameters:**
@@ -470,7 +470,7 @@ Before using the Salesforce integration, ensure you have:
- `recordName` (string, required): Record Name that appears in layouts and searches (e.g., "Account Name")
-
+
**Description:** Get the expected schema for operations on specific object types.
**Parameters:**
@@ -487,19 +487,14 @@ Before using the Salesforce integration, ensure you have:
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get enterprise tools (Salesforce tools will be included)
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
+from crewai import Agent, Task, Crew
# Create an agent with Salesforce capabilities
salesforce_agent = Agent(
role="CRM Manager",
goal="Manage customer relationships and sales processes efficiently",
backstory="An AI assistant specialized in CRM operations and sales automation.",
- tools=[enterprise_tools]
+ apps=['salesforce'] # All Salesforce actions will be available
)
# Task to create a new lead
@@ -521,19 +516,12 @@ crew.kickoff()
### Filtering Specific Salesforce Tools
```python
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get only specific Salesforce tools
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token",
- actions_list=["salesforce_create_record_lead", "salesforce_update_record_opportunity", "salesforce_search_records_contact"]
-)
sales_manager = Agent(
role="Sales Manager",
goal="Manage leads and opportunities in the sales pipeline",
backstory="An experienced sales manager who handles lead qualification and opportunity management.",
- tools=enterprise_tools
+ apps=['salesforce/create_record_lead']
)
# Task to manage sales pipeline
@@ -555,17 +543,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
account_manager = Agent(
role="Account Manager",
goal="Manage customer accounts and maintain strong relationships",
backstory="An AI assistant that specializes in account management and customer relationship building.",
- tools=[enterprise_tools]
+ apps=['salesforce']
)
# Task to manage customer accounts
@@ -591,17 +574,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
data_analyst = Agent(
role="Sales Data Analyst",
goal="Generate insights from Salesforce data using SOQL queries",
backstory="An analytical AI that excels at extracting meaningful insights from CRM data.",
- tools=[enterprise_tools]
+ apps=['salesforce']
)
# Complex task involving SOQL queries and data analysis
diff --git a/docs/en/enterprise/integrations/shopify.mdx b/docs/en/enterprise/integrations/shopify.mdx
index 671570bfe3..29684ae55e 100644
--- a/docs/en/enterprise/integrations/shopify.mdx
+++ b/docs/en/enterprise/integrations/shopify.mdx
@@ -22,7 +22,7 @@ Before using the Shopify integration, ensure you have:
### **Customer Management**
-
+
**Description:** Retrieve a list of customers from your Shopify store.
**Parameters:**
@@ -34,7 +34,7 @@ Before using the Shopify integration, ensure you have:
- `limit` (string, optional): Maximum number of customers to return (defaults to 250)
-
+
**Description:** Search for customers using advanced filtering criteria.
**Parameters:**
@@ -42,7 +42,7 @@ Before using the Shopify integration, ensure you have:
- `limit` (string, optional): Maximum number of customers to return (defaults to 250)
-
+
**Description:** Create a new customer in your Shopify store.
**Parameters:**
@@ -63,7 +63,7 @@ Before using the Shopify integration, ensure you have:
- `metafields` (object, optional): Additional metafields in JSON format
-
+
**Description:** Update an existing customer in your Shopify store.
**Parameters:**
@@ -89,7 +89,7 @@ Before using the Shopify integration, ensure you have:
### **Order Management**
-
+
**Description:** Retrieve a list of orders from your Shopify store.
**Parameters:**
@@ -101,7 +101,7 @@ Before using the Shopify integration, ensure you have:
- `limit` (string, optional): Maximum number of orders to return (defaults to 250)
-
+
**Description:** Create a new order in your Shopify store.
**Parameters:**
@@ -114,7 +114,7 @@ Before using the Shopify integration, ensure you have:
- `note` (string, optional): Order note
-
+
**Description:** Update an existing order in your Shopify store.
**Parameters:**
@@ -128,7 +128,7 @@ Before using the Shopify integration, ensure you have:
- `note` (string, optional): Order note
-
+
**Description:** Retrieve abandoned carts from your Shopify store.
**Parameters:**
@@ -144,7 +144,7 @@ Before using the Shopify integration, ensure you have:
### **Product Management (REST API)**
-
+
**Description:** Retrieve a list of products from your Shopify store using REST API.
**Parameters:**
@@ -160,7 +160,7 @@ Before using the Shopify integration, ensure you have:
- `limit` (string, optional): Maximum number of products to return (defaults to 250)
-
+
**Description:** Create a new product in your Shopify store using REST API.
**Parameters:**
@@ -176,7 +176,7 @@ Before using the Shopify integration, ensure you have:
- `publishToPointToSale` (boolean, optional): Whether to publish to point of sale
-
+
**Description:** Update an existing product in your Shopify store using REST API.
**Parameters:**
@@ -197,14 +197,14 @@ Before using the Shopify integration, ensure you have:
### **Product Management (GraphQL)**
-
+
**Description:** Retrieve products using advanced GraphQL filtering capabilities.
**Parameters:**
- `productFilterFormula` (object, optional): Advanced filter in disjunctive normal form with support for fields like id, title, vendor, status, handle, tag, created_at, updated_at, published_at
-
+
**Description:** Create a new product using GraphQL API with enhanced media support.
**Parameters:**
@@ -217,7 +217,7 @@ Before using the Shopify integration, ensure you have:
- `additionalFields` (object, optional): Additional product fields like status, requiresSellingPlan, giftCard
-
+
**Description:** Update an existing product using GraphQL API with enhanced media support.
**Parameters:**
@@ -238,19 +238,14 @@ Before using the Shopify integration, ensure you have:
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get enterprise tools (Shopify tools will be included)
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
+from crewai import Agent, Task, Crew
# Create an agent with Shopify capabilities
shopify_agent = Agent(
role="E-commerce Manager",
goal="Manage online store operations and customer relationships efficiently",
backstory="An AI assistant specialized in e-commerce operations and online store management.",
- tools=[enterprise_tools]
+ apps=['shopify'] # All Shopify actions will be available
)
# Task to create a new customer
@@ -272,19 +267,12 @@ crew.kickoff()
### Filtering Specific Shopify Tools
```python
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get only specific Shopify tools
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token",
- actions_list=["shopify_create_customer", "shopify_create_order", "shopify_get_products"]
-)
store_manager = Agent(
role="Store Manager",
goal="Manage customer orders and product catalog",
backstory="An experienced store manager who handles customer relationships and inventory management.",
- tools=enterprise_tools
+ apps=['shopify/create_customer']
)
# Task to manage store operations
@@ -306,17 +294,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
product_manager = Agent(
role="Product Manager",
goal="Manage product catalog and inventory with advanced GraphQL capabilities",
backstory="An AI assistant that specializes in product management and catalog optimization.",
- tools=[enterprise_tools]
+ apps=['shopify']
)
# Task to manage product catalog
@@ -343,17 +326,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
analytics_agent = Agent(
role="E-commerce Analyst",
goal="Analyze customer behavior and order patterns to optimize store performance",
backstory="An analytical AI that excels at extracting insights from e-commerce data.",
- tools=[enterprise_tools]
+ apps=['shopify']
)
# Complex task involving multiple operations
diff --git a/docs/en/enterprise/integrations/slack.mdx b/docs/en/enterprise/integrations/slack.mdx
index ee1a17fc26..66b3967954 100644
--- a/docs/en/enterprise/integrations/slack.mdx
+++ b/docs/en/enterprise/integrations/slack.mdx
@@ -22,21 +22,21 @@ Before using the Slack integration, ensure you have:
### **User Management**
-
+
**Description:** List all members in a Slack channel.
**Parameters:**
- No parameters required - retrieves all channel members
-
+
**Description:** Find a user in your Slack workspace by their email address.
**Parameters:**
- `email` (string, required): The email address of a user in the workspace
-
+
**Description:** Search for users by their name or display name.
**Parameters:**
@@ -50,7 +50,7 @@ Before using the Slack integration, ensure you have:
### **Channel Management**
-
+
**Description:** List all channels in your Slack workspace.
**Parameters:**
@@ -61,7 +61,7 @@ Before using the Slack integration, ensure you have:
### **Messaging**
-
+
**Description:** Send a message to a Slack channel.
**Parameters:**
@@ -73,7 +73,7 @@ Before using the Slack integration, ensure you have:
- `authenticatedUser` (boolean, optional): If true, message appears to come from your authenticated Slack user instead of the application (defaults to false)
-
+
**Description:** Send a direct message to a specific user in Slack.
**Parameters:**
@@ -89,7 +89,7 @@ Before using the Slack integration, ensure you have:
### **Search & Discovery**
-
+
**Description:** Search for messages across your Slack workspace.
**Parameters:**
@@ -150,19 +150,13 @@ Slack's Block Kit allows you to create rich, interactive messages. Here are some
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get enterprise tools (Slack tools will be included)
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
# Create an agent with Slack capabilities
slack_agent = Agent(
role="Team Communication Manager",
goal="Facilitate team communication and coordinate collaboration efficiently",
backstory="An AI assistant specialized in team communication and workspace coordination.",
- tools=[enterprise_tools]
+ apps=['slack'] # All Slack actions will be available
)
# Task to send project updates
@@ -184,19 +178,18 @@ crew.kickoff()
### Filtering Specific Slack Tools
```python
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get only specific Slack tools
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token",
- actions_list=["slack_send_message", "slack_send_direct_message", "slack_search_messages"]
-)
+from crewai import Agent, Task, Crew
+# Create agent with specific Slack actions only
communication_manager = Agent(
role="Communication Coordinator",
goal="Manage team communications and ensure important messages reach the right people",
backstory="An experienced communication coordinator who handles team messaging and notifications.",
- tools=enterprise_tools
+ apps=[
+ 'slack/send_message',
+ 'slack/send_direct_message',
+ 'slack/search_messages'
+ ] # Using canonical action names from canonical_integrations.yml
)
# Task to coordinate team communication
@@ -218,17 +211,13 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
+# Create agent with Slack messaging capabilities
notification_agent = Agent(
role="Notification Manager",
goal="Create rich, interactive notifications and manage workspace communication",
backstory="An AI assistant that specializes in creating engaging team notifications and updates.",
- tools=[enterprise_tools]
+ apps=['slack/send_message'] # Specific action for sending messages
)
# Task to send rich notifications
@@ -254,17 +243,17 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
+# Create agent with Slack search and user management capabilities
analytics_agent = Agent(
role="Communication Analyst",
goal="Analyze team communication patterns and extract insights from conversations",
backstory="An analytical AI that excels at understanding team dynamics through communication data.",
- tools=[enterprise_tools]
+ apps=[
+ 'slack/search_messages',
+ 'slack/get_user_by_email',
+ 'slack/list_members'
+ ] # Using canonical action names from canonical_integrations.yml
)
# Complex task involving search and analysis
diff --git a/docs/en/enterprise/integrations/stripe.mdx b/docs/en/enterprise/integrations/stripe.mdx
index cd25f1c5c8..8a3b594a24 100644
--- a/docs/en/enterprise/integrations/stripe.mdx
+++ b/docs/en/enterprise/integrations/stripe.mdx
@@ -22,7 +22,7 @@ Before using the Stripe integration, ensure you have:
### **Customer Management**
-
+
**Description:** Create a new customer in your Stripe account.
**Parameters:**
@@ -32,14 +32,14 @@ Before using the Stripe integration, ensure you have:
- `metadataCreateCustomer` (object, optional): Additional metadata as key-value pairs (e.g., `{"field1": 1, "field2": 2}`)
-
+
**Description:** Retrieve a specific customer by their Stripe customer ID.
**Parameters:**
- `idGetCustomer` (string, required): The Stripe customer ID to retrieve
-
+
**Description:** Retrieve a list of customers with optional filtering.
**Parameters:**
@@ -49,7 +49,7 @@ Before using the Stripe integration, ensure you have:
- `limitGetCustomers` (string, optional): Maximum number of customers to return (defaults to 10)
-
+
**Description:** Update an existing customer's information.
**Parameters:**
@@ -64,7 +64,7 @@ Before using the Stripe integration, ensure you have:
### **Subscription Management**
-
+
**Description:** Create a new subscription for a customer.
**Parameters:**
@@ -73,7 +73,7 @@ Before using the Stripe integration, ensure you have:
- `metadataCreateSubscription` (object, optional): Additional metadata for the subscription
-
+
**Description:** Retrieve subscriptions with optional filtering.
**Parameters:**
@@ -86,7 +86,7 @@ Before using the Stripe integration, ensure you have:
### **Product Management**
-
+
**Description:** Create a new product in your Stripe catalog.
**Parameters:**
@@ -95,14 +95,14 @@ Before using the Stripe integration, ensure you have:
- `metadataProduct` (object, optional): Additional product metadata as key-value pairs
-
+
**Description:** Retrieve a specific product by its Stripe product ID.
**Parameters:**
- `productId` (string, required): The Stripe product ID to retrieve
-
+
**Description:** Retrieve a list of products with optional filtering.
**Parameters:**
@@ -115,7 +115,7 @@ Before using the Stripe integration, ensure you have:
### **Financial Operations**
-
+
**Description:** Retrieve balance transactions from your Stripe account.
**Parameters:**
@@ -124,7 +124,7 @@ Before using the Stripe integration, ensure you have:
- `pageCursor` (string, optional): Page cursor for pagination
-
+
**Description:** Retrieve subscription plans from your Stripe account.
**Parameters:**
@@ -140,19 +140,14 @@ Before using the Stripe integration, ensure you have:
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get enterprise tools (Stripe tools will be included)
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
+from crewai import Agent, Task, Crew
# Create an agent with Stripe capabilities
stripe_agent = Agent(
role="Payment Manager",
goal="Manage customer payments, subscriptions, and billing operations efficiently",
backstory="An AI assistant specialized in payment processing and subscription management.",
- tools=[enterprise_tools]
+ apps=['stripe'] # All Stripe actions will be available
)
# Task to create a new customer
@@ -174,19 +169,12 @@ crew.kickoff()
### Filtering Specific Stripe Tools
```python
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get only specific Stripe tools
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token",
- actions_list=["stripe_create_customer", "stripe_create_subscription", "stripe_get_balance_transactions"]
-)
billing_manager = Agent(
role="Billing Manager",
goal="Handle customer billing, subscriptions, and payment processing",
backstory="An experienced billing manager who handles subscription lifecycle and payment operations.",
- tools=enterprise_tools
+ apps=['stripe']
)
# Task to manage billing operations
@@ -208,17 +196,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
subscription_manager = Agent(
role="Subscription Manager",
goal="Manage customer subscriptions and optimize recurring revenue",
backstory="An AI assistant that specializes in subscription lifecycle management and customer retention.",
- tools=[enterprise_tools]
+ apps=['stripe']
)
# Task to manage subscription operations
@@ -245,17 +228,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
financial_analyst = Agent(
role="Financial Analyst",
goal="Analyze payment data and generate financial insights",
backstory="An analytical AI that excels at extracting insights from payment and subscription data.",
- tools=[enterprise_tools]
+ apps=['stripe']
)
# Complex task involving financial analysis
diff --git a/docs/en/enterprise/integrations/zendesk.mdx b/docs/en/enterprise/integrations/zendesk.mdx
index b7b025679e..ba75c4aa51 100644
--- a/docs/en/enterprise/integrations/zendesk.mdx
+++ b/docs/en/enterprise/integrations/zendesk.mdx
@@ -22,7 +22,7 @@ Before using the Zendesk integration, ensure you have:
### **Ticket Management**
-
+
**Description:** Create a new support ticket in Zendesk.
**Parameters:**
@@ -40,7 +40,7 @@ Before using the Zendesk integration, ensure you have:
- `ticketCustomFields` (object, optional): Custom field values in JSON format
-
+
**Description:** Update an existing support ticket in Zendesk.
**Parameters:**
@@ -58,14 +58,14 @@ Before using the Zendesk integration, ensure you have:
- `ticketCustomFields` (object, optional): Updated custom field values
-
+
**Description:** Retrieve a specific ticket by its ID.
**Parameters:**
- `ticketId` (string, required): The ticket ID to retrieve (e.g., "35436")
-
+
**Description:** Add a comment or internal note to an existing ticket.
**Parameters:**
@@ -75,7 +75,7 @@ Before using the Zendesk integration, ensure you have:
- `isPublic` (boolean, optional): True for public comments, false for internal notes
-
+
**Description:** Search for tickets using various filters and criteria.
**Parameters:**
@@ -100,7 +100,7 @@ Before using the Zendesk integration, ensure you have:
### **User Management**
-
+
**Description:** Create a new user in Zendesk.
**Parameters:**
@@ -113,7 +113,7 @@ Before using the Zendesk integration, ensure you have:
- `notes` (string, optional): Internal notes about the user
-
+
**Description:** Update an existing user's information.
**Parameters:**
@@ -127,14 +127,14 @@ Before using the Zendesk integration, ensure you have:
- `notes` (string, optional): Updated internal notes
-
+
**Description:** Retrieve a specific user by their ID.
**Parameters:**
- `userId` (string, required): The user ID to retrieve
-
+
**Description:** Search for users using various criteria.
**Parameters:**
@@ -150,7 +150,7 @@ Before using the Zendesk integration, ensure you have:
### **Administrative Tools**
-
+
**Description:** Retrieve all standard and custom fields available for tickets.
**Parameters:**
@@ -158,7 +158,7 @@ Before using the Zendesk integration, ensure you have:
- `pageCursor` (string, optional): Page cursor for pagination
-
+
**Description:** Get audit records (read-only history) for tickets.
**Parameters:**
@@ -205,19 +205,14 @@ Standard ticket status progression:
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get enterprise tools (Zendesk tools will be included)
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
+from crewai import Agent, Task, Crew
# Create an agent with Zendesk capabilities
zendesk_agent = Agent(
role="Support Manager",
goal="Manage customer support tickets and provide excellent customer service",
backstory="An AI assistant specialized in customer support operations and ticket management.",
- tools=[enterprise_tools]
+ apps=['zendesk'] # All Zendesk actions will be available
)
# Task to create a new support ticket
@@ -239,19 +234,14 @@ crew.kickoff()
### Filtering Specific Zendesk Tools
```python
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get only specific Zendesk tools
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token",
- actions_list=["zendesk_create_ticket", "zendesk_update_ticket", "zendesk_add_comment_to_ticket"]
-)
+from crewai import Agent, Task, Crew
+# Create agent with specific Zendesk actions only
support_agent = Agent(
role="Customer Support Agent",
goal="Handle customer inquiries and resolve support issues efficiently",
backstory="An experienced support agent who specializes in ticket resolution and customer communication.",
- tools=enterprise_tools
+ apps=['zendesk/create_ticket'] # Specific Zendesk actions
)
# Task to manage support workflow
@@ -273,17 +263,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
ticket_manager = Agent(
role="Ticket Manager",
goal="Manage support ticket workflows and ensure timely resolution",
backstory="An AI assistant that specializes in support ticket triage and workflow optimization.",
- tools=[enterprise_tools]
+ apps=['zendesk']
)
# Task to manage ticket lifecycle
@@ -310,17 +295,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
support_analyst = Agent(
role="Support Analyst",
goal="Analyze support metrics and generate insights for team performance",
backstory="An analytical AI that excels at extracting insights from support data and ticket patterns.",
- tools=[enterprise_tools]
+ apps=['zendesk']
)
# Complex task involving analytics and reporting
diff --git a/docs/ko/enterprise/features/tools-and-integrations.mdx b/docs/ko/enterprise/features/tools-and-integrations.mdx
index 84a5760c05..d0a87ff0e3 100644
--- a/docs/ko/enterprise/features/tools-and-integrations.mdx
+++ b/docs/ko/enterprise/features/tools-and-integrations.mdx
@@ -43,7 +43,7 @@ mode: "wide"
1. Integrations로 이동
2. 원하는 서비스에서 Connect 클릭
3. OAuth 플로우 완료 및 스코프 승인
- 4. Integration 탭에서 Enterprise Token 복사
+ 4. 통합 설정에서 Enterprise Token 복사

@@ -60,23 +60,18 @@ mode: "wide"
### 사용 예시
- 인증된 모든 서비스는 도구로 제공됩니다. 에이전트에 `CrewaiEnterpriseTools`를 추가하세요.
+ 새로운 간소화된 접근 방식을 사용하여 엔터프라이즈 앱을 통합하세요. Agent 구성에서 앱과 해당 액션을 직접 지정하기만 하면 됩니다.
```python
from crewai import Agent, Task, Crew
- from crewai_tools import CrewaiEnterpriseTools
-
- enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
- )
- print(enterprise_tools)
+ # Gmail 기능을 가진 에이전트 생성
email_agent = Agent(
role="이메일 매니저",
goal="이메일 커뮤니케이션 관리",
backstory="이메일 관리에 특화된 AI 어시스턴트",
- tools=enterprise_tools
+ apps=['gmail', 'gmail/send_email'] # 정식 이름 'gmail' 사용
)
email_task = Task(
@@ -92,19 +87,14 @@ mode: "wide"
### 도구 필터링
```python
- from crewai_tools import CrewaiEnterpriseTools
-
- enterprise_tools = CrewaiEnterpriseTools(
- actions_list=["gmail_find_email"]
- )
-
- gmail_tool = enterprise_tools["gmail_find_email"]
+ from crewai import Agent, Task, Crew
+ # 특정 Gmail 액션만 사용하는 에이전트 생성
gmail_agent = Agent(
role="Gmail 매니저",
goal="Gmail 커뮤니케이션 및 알림 관리",
backstory="Gmail 커뮤니케이션 조율 AI 어시스턴트",
- tools=[gmail_tool]
+ apps=['gmail/fetch_emails'] # 정식 이름과 특정 액션 사용
)
notification_task = Task(
diff --git a/docs/ko/enterprise/integrations/asana.mdx b/docs/ko/enterprise/integrations/asana.mdx
index 8982653117..c239051844 100644
--- a/docs/ko/enterprise/integrations/asana.mdx
+++ b/docs/ko/enterprise/integrations/asana.mdx
@@ -25,7 +25,7 @@ Asana 연동을 사용하기 전에 다음을 확인하세요:
2. 인증 통합 섹션에서 **Asana**를 찾습니다.
3. **Connect**를 클릭하고 OAuth 플로우를 완료합니다.
4. 작업 및 프로젝트 관리를 위한 필요한 권한을 부여합니다.
-5. [계정 설정](https://app.crewai.com/crewai_plus/settings/account)에서 Enterprise Token을 복사합니다.
+5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token을 복사합니다.
### 2. 필수 패키지 설치
@@ -36,7 +36,7 @@ uv add crewai-tools
## 사용 가능한 작업
-
+
**설명:** Asana에 댓글을 생성합니다.
**매개변수:**
@@ -44,7 +44,7 @@ uv add crewai-tools
- `text` (string, 필수): 텍스트 (예: "This is a comment.").
-
+
**설명:** Asana에 프로젝트를 생성합니다.
**매개변수:**
@@ -54,7 +54,7 @@ uv add crewai-tools
- `notes` (string, 선택): 노트 (예: "These are things we need to purchase.").
-
+
**설명:** Asana의 프로젝트 목록을 가져옵니다.
**매개변수:**
@@ -62,14 +62,14 @@ uv add crewai-tools
- 옵션: `default`, `true`, `false`
-
+
**설명:** Asana에서 ID로 프로젝트를 가져옵니다.
**매개변수:**
- `projectFilterId` (string, 필수): 프로젝트 ID.
-
+
**설명:** Asana에 작업을 생성합니다.
**매개변수:**
@@ -83,7 +83,7 @@ uv add crewai-tools
- `gid` (string, 선택): 외부 ID - 이 작업과 연결할 애플리케이션의 ID입니다. 이 ID를 사용하여 이후 작업 업데이트를 동기화할 수 있습니다.
-
+
**설명:** Asana의 작업을 업데이트합니다.
**매개변수:**
@@ -98,7 +98,7 @@ uv add crewai-tools
- `gid` (string, 선택): 외부 ID - 이 작업과 연결할 애플리케이션의 ID입니다. 이 ID를 사용하여 이후 작업 업데이트를 동기화할 수 있습니다.
-
+
**설명:** Asana의 작업 목록을 가져옵니다.
**매개변수:**
@@ -108,21 +108,21 @@ uv add crewai-tools
- `completedSince` (string, 선택): 이후 완료됨 - 미완료이거나 해당 시간(ISO 또는 Unix 타임스탬프) 이후에 완료된 작업만 반환합니다. (예: "2014-04-25T16:15:47-04:00").
-
+
**설명:** Asana에서 ID로 작업 목록을 가져옵니다.
**매개변수:**
- `taskId` (string, 필수): 작업 ID.
-
+
**설명:** Asana에서 외부 ID로 작업을 가져옵니다.
**매개변수:**
- `gid` (string, 필수): 외부 ID - 이 작업이 애플리케이션과 연동(또는 동기화)된 ID입니다.
-
+
**설명:** Asana에서 섹션에 작업을 추가합니다.
**매개변수:**
@@ -132,14 +132,14 @@ uv add crewai-tools
- `afterTaskId` (string, 선택): 이후 작업 ID - 이 작업이 삽입될 섹션 내의 작업 ID입니다. 이전 작업 ID와 함께 사용할 수 없습니다. (예: "1204619611402340").
-
+
**설명:** Asana에서 팀 목록을 가져옵니다.
**매개변수:**
- `workspace` (string, 필수): 워크스페이스 - 인증된 사용자가 볼 수 있는 이 워크스페이스 내의 팀을 반환합니다.
-
+
**설명:** Asana에서 워크스페이스 목록을 가져옵니다.
**매개변수:** 필요 없음.
@@ -152,19 +152,13 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get enterprise tools (Asana tools will be included)
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
# Create an agent with Asana capabilities
asana_agent = Agent(
role="Project Manager",
goal="Manage tasks and projects in Asana efficiently",
backstory="An AI assistant specialized in project management and task coordination.",
- tools=[enterprise_tools]
+ apps=['asana']
)
# Task to create a new project
@@ -186,19 +180,12 @@ crew.kickoff()
### 특정 Asana 도구 필터링
```python
-from crewai_tools import CrewaiEnterpriseTools
-
-# Get only specific Asana tools
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token",
- actions_list=["asana_create_task", "asana_update_task", "asana_get_tasks"]
-)
task_manager_agent = Agent(
role="Task Manager",
goal="Create and manage tasks efficiently",
backstory="An AI assistant that focuses on task creation and management.",
- tools=enterprise_tools
+ apps=['asana']
)
# Task to create and assign a task
@@ -220,17 +207,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
-from crewai_tools import CrewaiEnterpriseTools
-
-enterprise_tools = CrewaiEnterpriseTools(
- enterprise_token="your_enterprise_token"
-)
project_coordinator = Agent(
role="Project Coordinator",
goal="Coordinate project activities and track progress",
backstory="An experienced project coordinator who ensures projects run smoothly.",
- tools=[enterprise_tools]
+ apps=['asana']
)
# Complex task involving multiple Asana operations
diff --git a/docs/ko/enterprise/integrations/box.mdx b/docs/ko/enterprise/integrations/box.mdx
index 15de12f6b6..79632ec0f7 100644
--- a/docs/ko/enterprise/integrations/box.mdx
+++ b/docs/ko/enterprise/integrations/box.mdx
@@ -25,7 +25,7 @@ Box 통합을 사용하기 전에 다음을 확인하세요:
2. 인증 통합 섹션에서 **Box**를 찾습니다.
3. **Connect**를 클릭하고 OAuth 흐름을 완료합니다.
4. 파일 및 폴더 관리를 위한 필요한 권한을 부여합니다.
-5. [Account Settings](https://app.crewai.com/crewai_plus/settings/account)에서 Enterprise Token을 복사합니다.
+5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token을 복사합니다.
### 2. 필수 패키지 설치
@@ -36,7 +36,7 @@ uv add crewai-tools
## 사용 가능한 액션
-