Box Integration
Overview
Section titled “Overview”Enable your agents to manage files, folders, and documents through Box. Upload files, organize folder structures, search content, and streamline your team’s document management with AI-powered automation.
Prerequisites
Section titled “Prerequisites”Before using the Box integration, ensure you have:
- A CrewAI AMP account with an active subscription
- A Box account with appropriate permissions
- Connected your Box account through the Integrations page
Setting Up Box Integration
Section titled “Setting Up Box Integration”1. Connect Your Box Account
Section titled “1. Connect Your Box Account”- Navigate to CrewAI AMP Integrations
- Find Box in the Authentication Integrations section
- Click Connect and complete the OAuth flow
- Grant the necessary permissions for file and folder management
- Copy your Enterprise Token from Integration Settings
2. Install Required Package
Section titled “2. Install Required Package”uv add crewai-tools3. Environment Variable Setup
Section titled “3. Environment Variable Setup”export CREWAI_PLATFORM_INTEGRATION_TOKEN="your_enterprise_token"Or add it to your .env file:
CREWAI_PLATFORM_INTEGRATION_TOKEN=your_enterprise_tokenAvailable Actions
Section titled “Available Actions”box/save_file
Description: Save a file from URL in Box.
Parameters:
fileAttributes(object, required): Attributes - File metadata including name, parent folder, and timestamps.{"content_created_at": "2012-12-12T10:53:43-08:00","content_modified_at": "2012-12-12T10:53:43-08:00","name": "qwerty.png","parent": { "id": "1234567" }}file(string, required): File URL - Files must be smaller than 50MB in size. (example: “https://picsum.photos/200/300”).
box/save_file_from_object
Description: Save a file in Box.
Parameters:
file(string, required): File - Accepts a File Object containing file data. Files must be smaller than 50MB in size.fileName(string, required): File Name (example: “qwerty.png”).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.
box/get_file_by_id
Description: Get a file by ID in Box.
Parameters:
fileId(string, required): File ID - The unique identifier that represents a file. (example: “12345”).
box/list_files
Description: List files in Box.
Parameters:
folderId(string, required): Folder ID - The unique identifier that represents a folder. (example: “0”).filterFormula(object, optional): A filter in disjunctive normal form - OR of AND groups of single conditions.{"operator": "OR","conditions": [{"operator": "AND","conditions": [{"field": "direction","operator": "$stringExactlyMatches","value": "ASC"}]}]}
box/create_folder
Description: Create a folder in Box.
Parameters:
folderName(string, required): Name - The name for the new folder. (example: “New Folder”).folderParent(object, required): Parent Folder - The parent folder where the new folder will be created.{"id": "123456"}
box/move_folder
Description: Move a folder in Box.
Parameters:
folderId(string, required): Folder ID - The unique identifier that represents a folder. (example: “0”).folderName(string, required): Name - The name for the folder. (example: “New Folder”).folderParent(object, required): Parent Folder - The new parent folder destination.{"id": "123456"}
box/get_folder_by_id
Description: Get a folder by ID in Box.
Parameters:
folderId(string, required): Folder ID - The unique identifier that represents a folder. (example: “0”).
box/search_folders
Description: Search folders in Box.
Parameters:
folderId(string, required): Folder ID - The folder to search within.filterFormula(object, optional): A filter in disjunctive normal form - OR of AND groups of single conditions.{"operator": "OR","conditions": [{"operator": "AND","conditions": [{"field": "sort","operator": "$stringExactlyMatches","value": "name"}]}]}
box/delete_folder
Description: Delete a folder in Box.
Parameters:
folderId(string, required): Folder ID - The unique identifier that represents a folder. (example: “0”).recursive(boolean, optional): Recursive - Delete a folder that is not empty by recursively deleting the folder and all of its content.
Usage Examples
Section titled “Usage Examples”Basic Box Agent Setup
Section titled “Basic Box Agent Setup”from crewai import Agent, Task, Crewfrom crewai import Agent, Task, Crew
# Create an agent with Box capabilitiesbox_agent = Agent( role="Document Manager", goal="Manage files and folders in Box efficiently", backstory="An AI assistant specialized in document management and file organization.", apps=['box'] # All Box actions will be available)
# Task to create a folder structurecreate_structure_task = Task( description="Create a folder called 'Project Files' in the root directory and upload a document from URL", agent=box_agent, expected_output="Folder created and file uploaded successfully")
# Run the taskcrew = Crew( agents=[box_agent], tasks=[create_structure_task])
crew.kickoff()Filtering Specific Box Tools
Section titled “Filtering Specific Box Tools”from crewai import Agent, Task, Crew
# Create agent with specific Box actions onlyfile_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.", apps=['box/create_folder', 'box/save_file', 'box/list_files'] # Specific Box actions)
# Task to organize filesorganization_task = Task( description="Create a folder structure for the marketing team and organize existing files", agent=file_organizer_agent, expected_output="Folder structure created and files organized")
crew = Crew( agents=[file_organizer_agent], tasks=[organization_task])
crew.kickoff()Advanced File Management
Section titled “Advanced File Management”from crewai import Agent, Task, Crew
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.", apps=['box'])
# Complex task involving multiple Box operationsmanagement_task = Task( description=""" 1. List all files in the root folder 2. Create monthly archive folders for the current year 3. Move old files to appropriate archive folders 4. Generate a summary report of the file organization """, agent=file_manager, expected_output="Files organized into archive structure with summary report")
crew = Crew( agents=[file_manager], tasks=[management_task])
crew.kickoff()