Skip to main content

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

  1. Navigate to CrewAI AMP Integrations
  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

2. Install Required Package

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

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_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

Need Help?

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