Microsoft OneDrive Integration ↗
noOriginal Documentation
Documentation Index#
Fetch the complete documentation index at: https://docs.crewai.com/llms.txt Use this file to discover all available pages before exploring further.
File and folder management with Microsoft OneDrive integration for CrewAI.
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 account with an active subscription
- A Microsoft account with OneDrive access
- Connected your Microsoft account through the Integrations page
Setting Up Microsoft OneDrive Integration#
1. Connect Your Microsoft Account#
- Navigate to CrewAI AMP Integrations
- Find Microsoft OneDrive in the Authentication Integrations section
- Click Connect and complete the OAuth flow
- Grant the necessary permissions for file access
- Copy your Enterprise Token from Integration Settings
2. Install Required Package#
uv add crewai-tools3. Environment Variable Setup#
To use integrations with Agent(apps=[]), you must set the
CREWAI_PLATFORM_INTEGRATION_TOKEN environment variable with your Enterprise
Token.
export CREWAI_PLATFORM_INTEGRATION_TOKEN="your_enterprise_token"Or add it to your .env file:
CREWAI_PLATFORM_INTEGRATION_TOKEN=your_enterprise_tokenAvailable Actions#
Parameters:
top(integer, optional): Number of items to retrieve (max 1000). Default is50.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 is50.
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 isview.scope(string, optional): Scope of the sharing link. Enum:anonymous,organization. Default isanonymous.
Description: Get thumbnails for a file.
Parameters:
item_id(string, required): The ID of the file.
Description: List files and folders in a specific OneDrive path.
Parameters:
folder_path(string, required): The folder path (e.g., ‘Documents/Reports’).top(integer, optional): Number of items to retrieve (max 1000). Default is50.orderby(string, optional): Order by field (e.g., “name asc”, “lastModifiedDateTime desc”). Default is “name asc”.
Description: Get recently accessed files from OneDrive.
Parameters:
top(integer, optional): Number of items to retrieve (max 200). Default is25.
Description: Get files and folders shared with the user.
Parameters:
top(integer, optional): Number of items to retrieve (max 200). Default is50.orderby(string, optional): Order by field. Default is “name asc”.
Description: Get information about a specific file or folder by path.
Parameters:
file_path(string, required): The file or folder path (e.g., ‘Documents/report.docx’).
Description: Download a file from OneDrive by its path.
Parameters:
file_path(string, required): The file path (e.g., ‘Documents/report.docx’).
Usage Examples#
Basic Microsoft OneDrive Agent Setup#
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#
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#
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_nameandcontentare 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_filesorsearch_files. - Ensure the referenced items exist and are accessible.
Search and Filter Operations
- Use appropriate search terms for
search_filesoperations. - For
filterparameters, use proper OData syntax.
File Operations (Copy/Move)
- For
move_item, ensure bothitem_idandparent_idare provided. - For
copy_item, onlyitem_idis required;parent_iddefaults 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
typeandscopebased on your sharing requirements. anonymousscope allows access without sign-in;organizationrequires organizational account.
Getting Help#
Contact our support team for assistance with Microsoft OneDrive integration setup or troubleshooting.