Skip to content

Microsoft OneDrive Integration

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.

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
  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
Terminal window
uv add crewai-tools
Terminal window
export CREWAI_PLATFORM_INTEGRATION_TOKEN="your_enterprise_token"

Or add it to your .env file:

CREWAI_PLATFORM_INTEGRATION_TOKEN=your_enterprise_token
microsoft_onedrive/list_files

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.
microsoft_onedrive/get_file_info

Description: Get information about a specific file or folder.

Parameters:

  • item_id (string, required): The ID of the file or folder.
microsoft_onedrive/download_file

Description: Download a file from OneDrive.

Parameters:

  • item_id (string, required): The ID of the file to download.
microsoft_onedrive/upload_file

Description: Upload a file to OneDrive.

Parameters:

  • file_name (string, required): Name of the file to upload.
  • content (string, required): Base64 encoded file content.
microsoft_onedrive/create_folder

Description: Create a new folder in OneDrive.

Parameters:

  • folder_name (string, required): Name of the folder to create.
microsoft_onedrive/delete_item

Description: Delete a file or folder from OneDrive.

Parameters:

  • item_id (string, required): The ID of the file or folder to delete.
microsoft_onedrive/copy_item

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).
microsoft_onedrive/move_item

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).
microsoft_onedrive/search_files

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.
microsoft_onedrive/share_item

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.
microsoft_onedrive/get_thumbnails

Description: Get thumbnails for a file.

Parameters:

  • item_id (string, required): The ID of the file.
microsoft_onedrive/list_files_by_path

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 is 50.
  • orderby (string, optional): Order by field (e.g., “name asc”, “lastModifiedDateTime desc”). Default is “name asc”.
microsoft_onedrive/get_recent_files

Description: Get recently accessed files from OneDrive.

Parameters:

  • top (integer, optional): Number of items to retrieve (max 200). Default is 25.
microsoft_onedrive/get_shared_with_me

Description: Get files and folders shared with the user.

Parameters:

  • top (integer, optional): Number of items to retrieve (max 200). Default is 50.
  • orderby (string, optional): Order by field. Default is “name asc”.
microsoft_onedrive/get_file_by_path

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’).
microsoft_onedrive/download_file_by_path

Description: Download a file from OneDrive by its path.

Parameters:

  • file_path (string, required): The file path (e.g., ‘Documents/report.docx’).
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()
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()
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()

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.

Need Help?

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