Comprehensive Float API integration for resource management, project scheduling, time tracking, and team management. This integration provides full access to Float's core resources including people, projects, tasks/allocations, time off, logged time, clients, departments, and roles.
Float is a resource management and project scheduling platform designed to help teams plan their work, track time, and manage resources effectively. This integration enables Autohive workflows to:
- Manage team members and their information
- Create and organize projects with clients
- Schedule tasks and allocations across team members
- Track time off and manage leave types
- Log actual time worked on projects
- Manage client relationships
- Organize teams by departments and roles
- Track project expenses and milestones
- Generate utilization and project reports
- Manage holidays and team-specific non-working days
- Configure project stages and phases
The integration follows Float's REST API v3 specifications and implements proper authentication, rate limiting awareness, and comprehensive error handling.
- Log in to your Float account
- Navigate to Account Settings > Integrations
- Find the API section at
https://{your-company-name}.float.com/admin/api - Generate or copy your API key
- Store the API key securely
The integration requires the following configuration fields:
-
API Key (required)
- Your Float API key from Account Settings > Integrations
- Format: Password field (hidden)
-
Contact Email (required)
- Your contact email address for Float API support
- Float requires this to identify API users and contact them if needed
- Format: Valid email address
- Example:
john.doe@yourcompany.com
-
Application Name (optional)
- The name of your application or integration
- Defaults to: "Autohive Float Integration"
- Example: "Acme Corp Float Integration"
- Used in User-Agent header as:
{Application Name} ({Contact Email})
- Authentication Method: Bearer token (passed in
Authorizationheader) - Required Header:
User-Agentwith format:Application Name (contact@email.com) - API Base URL:
https://api.float.com/v3 - Content Type:
application/json
The User-Agent header is automatically constructed from your Application Name and Contact Email to comply with Float's API identification requirements.
The Float API implements the following rate limits to ensure optimal performance for all users:
- GET requests: 200 requests per minute per company
- Burst limit: 10 GET requests per second
- Non-GET requests (POST, PATCH, DELETE): 100 requests per minute
- Burst limit: 4 non-GET requests per second
- GET requests: 30 requests per minute
- When rate limits are exceeded, the API returns a 429 Error with message: "too many requests by this user"
- Wait briefly before retrying requests
The integration provides 60 actions organized by resource type:
Manage team members and their information including roles, departments, rates, and availability.
- Description: List all people/team members with filtering and pagination
- Key Inputs:
active(boolean): Filter by active statusdepartment_id(integer): Filter by departmentmodified_since(string): Get people modified since date (YYYY-MM-DD)page,per_page: Pagination parametersfields: Comma-separated fields to returnsort: Sort field (prefix with '-' for descending)
- Outputs: List of people with pagination info
- Description: Get details of a specific person
- Inputs:
people_id(integer, required): Person IDexpand(string): Related resources to expand (e.g., 'contracts')
- Outputs: Person details
- Description: Create a new team member
- Required Inputs:
name(string): Full name
- Optional Inputs:
email: Email addressjob_title: Job titledepartment_id,role_id: Department and role assignmentactive: Active status (default: true)employee_type: 1=Full-time, 2=Part-time, 3=Contractorstart_date,end_date: Employment datescost_rate,bill_rate: Hourly ratestags: Array of tagsnotes: Additional notes
- Outputs: Created person details with ID
- Description: Update existing person information
- Required Inputs:
people_id(integer): Person to update
- Optional Inputs: Same as create_person plus:
effective_date: Date for rate changes to take effectexpand: Related resources to include in response
- Outputs: Updated person details
- Description: Delete a person from Float
- Inputs:
people_id(integer, required) - Outputs: Success confirmation
Create and manage projects, including client associations, budgets, teams, and timelines.
- Description: List all projects with filtering
- Key Inputs:
active(boolean): Filter by active statusclient_id(integer): Filter by clientproject_manager(integer): Filter by PMstart_date,end_date: Date range filtersmodified_since: Get projects modified since date- Pagination:
page,per_page
- Outputs: List of projects
- Description: Get project details
- Inputs:
project_id(integer, required) - Outputs: Project details
- Description: Create a new project
- Required Inputs:
name(string): Project name
- Optional Inputs:
client_id: Associate with clientcolor: Hex color code (e.g., 'FF2D00')project_code: External system identifier (max 32 chars)tags: Array of tagsproject_team: Array of people IDsproject_manager: PM's account IDbudget_type: 0=none, 1=total, 2=per phasebudget_total: Total budget amountnon_billable: Non-billable flagstart_date,end_date: Project timelineactive: Active statusnotes: Project notes
- Outputs: Created project with ID
- Description: Update existing project
- Required Inputs:
project_id - Optional Inputs: Any project fields to update
- Outputs: Updated project details
- Description: Delete a project
- Inputs:
project_id(integer, required) - Outputs: Success confirmation
Schedule and manage task allocations across team members and projects.
- Description: List all tasks/allocations with filtering
- Key Inputs:
people_id,project_id: Filter by person or projectstart_date,end_date: Date rangemodified_since: Tasks modified since date- Pagination parameters
- Outputs: List of tasks/allocations
- Description: Get task details
- Inputs:
task_id(integer, required) - Outputs: Task details
- Description: Create a new task/allocation
- Required Inputs:
people_id(integer): Person assignedproject_id(integer): Projectstart_date,end_date(string): Date range (YYYY-MM-DD)hours(number): Hours per day
- Optional Inputs:
name: Task namenotes: Task notesstatus: Task statusbillable: Billable flagrepeat_state: 0=none, 1=weekly, 2=monthly, 3=bi-weeklyrepeat_end_date: End date for repeating tasks
- Outputs: Created task with ID
- Description: Update existing task/allocation
- Required Inputs:
task_id - Optional Inputs: Any task fields to update
- Outputs: Updated task details
- Description: Delete a task/allocation
- Inputs:
task_id(integer, required) - Outputs: Success confirmation
Schedule and track team member time off, vacations, and leave.
- Description: List all time off entries
- Key Inputs:
people_id: Filter by persontimeoff_type_id: Filter by time off typestart_date,end_date: Date range- Pagination parameters
- Outputs: List of time off entries
- Description: Get time off details
- Inputs:
timeoff_id(integer, required) - Outputs: Time off details
- Description: Create a new time off entry
- Required Inputs:
people_id(integer): Persontimeoff_type_id(integer): Type of time offstart_date,end_date(string): Date rangehours(number): Hours per day
- Optional Inputs:
full_day(boolean): Full day flagnotes: Additional notes
- Outputs: Created time off entry
- Description: Update time off entry
- Required Inputs:
timeoff_id - Optional Inputs: Any time off fields to update
- Outputs: Updated time off details
- Description: Delete time off entry
- Inputs:
timeoff_id(integer, required) - Outputs: Success confirmation
Track actual time worked on projects and tasks.
- Description: List all logged time entries
- Key Inputs:
people_id,project_id: Filter by person or projectstart_date,end_date: Date range- Pagination parameters
- Outputs: List of logged time entries
- Description: Get logged time details
- Inputs:
logged_time_id(string, required): Hexadecimal ID - Outputs: Logged time details
- Description: Log time worked
- Required Inputs:
people_id(integer): Personproject_id(integer): Projectdate(string): Date (YYYY-MM-DD)hours(number): Hours logged
- Optional Inputs:
task_id(integer): Associated tasknotes: Description of workbillable(boolean): Billable flag
- Outputs: Created logged time entry
- Description: Update logged time entry
- Required Inputs:
logged_time_id(string) - Optional Inputs:
hours,notes,billable - Outputs: Updated logged time details
- Description: Delete logged time entry
- Inputs:
logged_time_id(string, required) - Outputs: Success confirmation
Manage client organizations and relationships.
- Description: List all clients
- Key Inputs:
active(boolean): Filter by active statusmodified_since: Clients modified since date- Pagination parameters
- Outputs: List of clients
- Description: Get client details
- Inputs:
client_id(integer, required) - Outputs: Client details
- Description: Create a new client
- Required Inputs:
name(string) - Optional Inputs:
active(boolean): Active statusnotes: Client notes
- Outputs: Created client with ID
- Description: Update existing client
- Required Inputs:
client_id - Optional Inputs:
name,active,notes - Outputs: Updated client details
- Description: Delete a client
- Inputs:
client_id(integer, required) - Outputs: Success confirmation
View and manage organizational departments.
- Description: List all departments
- Inputs: Pagination parameters (optional)
- Outputs: List of departments
- Description: Get department details
- Inputs:
department_id(integer, required) - Outputs: Department details
View and manage team roles.
- Description: List all roles
- Inputs: Pagination parameters (optional)
- Outputs: List of roles
- Description: Get role details
- Inputs:
role_id(integer, required) - Outputs: Role details
View available time off types (vacation, sick leave, etc.).
- Description: List all time off types
- Inputs: Pagination parameters (optional)
- Outputs: List of time off types
- Description: Get time off type details
- Inputs:
timeoff_type_id(integer, required) - Outputs: Time off type details
View account information and settings.
- Description: List all accounts in the organization
- Inputs: Pagination parameters (optional)
- Outputs: List of accounts
- Description: Get account details
- Inputs:
account_id(integer, required) - Outputs: Account details including settings and preferences
Manage task and project statuses.
- Description: List all available statuses
- Inputs: Pagination parameters (optional)
- Outputs: List of statuses
- Description: Get status details
- Inputs:
status_id(integer, required) - Outputs: Status details including name and color
View and manage public holidays for your organization.
- Description: List all public holidays
- Key Inputs:
country_id(integer): Filter by countryyear(integer): Filter by year- Pagination parameters
- Outputs: List of public holidays
- Description: Get public holiday details
- Inputs:
public_holiday_id(integer, required) - Outputs: Public holiday details
Manage team-specific holidays and non-working days.
- Description: List all team holidays
- Key Inputs:
start_date,end_date: Date range filters- Pagination parameters
- Outputs: List of team holidays
- Description: Get team holiday details
- Inputs:
team_holiday_id(integer, required) - Outputs: Team holiday details
Manage project stages and workflow steps.
- Description: List all project stages
- Inputs: Pagination parameters (optional)
- Outputs: List of project stages
- Description: Get project stage details
- Inputs:
project_stage_id(integer, required) - Outputs: Project stage details
Track and manage project-related expenses.
- Description: List all project expenses
- Key Inputs:
project_id(integer): Filter by projectstart_date,end_date: Date range- Pagination parameters
- Outputs: List of project expenses
- Description: Get project expense details
- Inputs:
project_expense_id(integer, required) - Outputs: Project expense details
Manage project phases for complex project structures.
- Description: List all project phases
- Key Inputs:
project_id(integer): Filter by project- Pagination parameters
- Outputs: List of phases
- Description: Get phase details
- Inputs:
phase_id(integer, required) - Outputs: Phase details
Manage default task names and templates for projects.
- Description: List all project task templates
- Key Inputs:
project_id(integer): Filter by project- Pagination parameters
- Outputs: List of project task templates
- Description: Get project task template details
- Inputs:
project_task_id(integer, required) - Outputs: Project task template details
- Description: Merge project task templates
- Required Inputs:
source_project_task_id(integer): Source task templatetarget_project_task_id(integer): Target task template
- Outputs: Merged task template details
Track and manage project milestones.
- Description: List all project milestones
- Key Inputs:
project_id(integer): Filter by projectstart_date,end_date: Date range- Pagination parameters
- Outputs: List of milestones
- Description: Get milestone details
- Inputs:
milestone_id(integer, required) - Outputs: Milestone details
Generate analytical reports for people and projects.
- Description: Get comprehensive people utilization report
- Key Inputs:
start_date(string, required): Report start date (YYYY-MM-DD)end_date(string, required): Report end date (YYYY-MM-DD)people_ids(array): Filter specific peopledepartment_ids(array): Filter by departmentsinclude_placeholders(boolean): Include placeholder resources
- Outputs: Detailed people utilization report with hours and availability
- Description: Get comprehensive projects report
- Key Inputs:
start_date(string, required): Report start date (YYYY-MM-DD)end_date(string, required): Report end date (YYYY-MM-DD)project_ids(array): Filter specific projectsclient_ids(array): Filter by clientsinclude_archived(boolean): Include archived projects
- Outputs: Detailed projects report with allocations and budgets
The integration requires the following dependencies:
autohive_integrations_sdk- Autohive integration framework
These are automatically installed by the Autohive platform when the integration is loaded.
List all active people in your Float account:
{
"active": true,
"per_page": 50
}Create a project with client association and team:
{
"name": "Website Redesign",
"client_id": 123,
"color": "FF5733",
"project_team": [45, 67, 89],
"project_manager": 45,
"start_date": "2025-01-15",
"end_date": "2025-03-31",
"budget_type": 1,
"budget_total": 50000,
"active": true
}Assign a team member to a project:
{
"people_id": 67,
"project_id": 456,
"start_date": "2025-01-20",
"end_date": "2025-02-10",
"hours": 6,
"name": "Frontend Development",
"billable": true,
"notes": "Focus on React components"
}Schedule vacation time:
{
"people_id": 45,
"timeoff_type_id": 1,
"start_date": "2025-03-10",
"end_date": "2025-03-14",
"hours": 8,
"full_day": true,
"notes": "Annual vacation"
}Record time worked on a project:
{
"people_id": 67,
"project_id": 456,
"date": "2025-01-20",
"hours": 7.5,
"task_id": 789,
"billable": true,
"notes": "Completed user authentication module"
}Update cost and bill rates with effective date:
{
"people_id": 45,
"cost_rate": 75,
"bill_rate": 150,
"effective_date": "2025-02-01",
"expand": "contracts"
}Get a report of team utilization for a date range:
{
"start_date": "2025-01-01",
"end_date": "2025-01-31",
"department_ids": [5, 12],
"include_placeholders": false
}Generate a comprehensive projects report:
{
"start_date": "2025-01-01",
"end_date": "2025-03-31",
"client_ids": [123, 456],
"include_archived": false
}View all milestones for a specific project:
{
"project_id": 456,
"start_date": "2025-01-01",
"end_date": "2025-12-31"
}The integration implements comprehensive error handling:
- Authentication Errors: Clear messages when API key is invalid or missing
- Rate Limiting: Automatic detection of 429 errors with descriptive messages
- Validation Errors: Detailed error messages for invalid input parameters
- Network Errors: Proper handling of connectivity issues
- Resource Not Found: Clear messages when requested resources don't exist
All errors are caught and returned with descriptive error messages to help diagnose issues.
- Full CRUD operations for core resources
- Pagination support (up to 200 items per page)
- Field filtering to optimize response size
- Sorting capabilities
- Date range filtering
- Modified-since filtering for efficient sync
- Relationship expansion (e.g., contracts with people)
- Repeating task support
- Date Format: All dates use
YYYY-MM-DDformat - ID Types: Most IDs are integers, except
logged_time_idwhich is hexadecimal - Pagination: Default page size is 50, maximum is 200
- Boolean Filters: Active filters use
1for true and0for false in API calls - Rate Limits: Automatic handling in headers, but best practice is to batch operations
- Employee Types: 1 = Full-time, 2 = Part-time, 3 = Contractor
- Budget Types: 0 = none, 1 = total, 2 = per phase
- Repeat States: 0 = none, 1 = weekly, 2 = monthly, 3 = bi-weekly
The following resources are available for viewing but do not support create/update/delete operations:
- Accounts (list, get)
- Statuses (list, get)
- Departments (list, get)
- Roles (list, get)
- Time Off Types (list, get)
- Public Holidays (list, get)
- Team Holidays (list, get)
- Project Stages (list, get)
- Project Expenses (list, get)
- Phases (list, get)
- Project Tasks (list, get, merge)
- Milestones (list, get)
- Reports (people, projects)
To test the integration:
- Navigate to the integration directory:
cd float - Install dependencies:
pip install -r requirements.txt -t dependencies - Run tests:
python tests/test_float.py
Ensure you have a valid Float API key configured in your test environment.
- Rate Limiting: Batch operations when possible to stay within rate limits
- Pagination: Use appropriate
per_pagevalues based on your needs (max 200) - Field Filtering: Use
fieldsparameter to request only needed data - Modified Since: Use
modified_sincefilters for efficient data synchronization - Error Handling: Always check for errors in responses and handle 429 rate limit errors
- Date Validation: Ensure dates are in correct YYYY-MM-DD format before submitting
- Unique Identifiers: Store returned IDs for future reference and updates
- Float API Documentation: https://developer.float.com/
- Float Help Center: https://support.float.com/
- Rate Limiting Details: https://developer.float.com/overview_authentication.html
- Autohive Support: Contact your Autohive account representative
All action handlers now return ActionResult objects instead of plain dictionaries. This enables:
- Cost Tracking: Each action can report API costs (currently set to $0.00 for Float since it doesn't charge per-API-call)
- Structured Responses: Consistent response format across all integrations
- Future Extensibility: Easy to add metadata without breaking existing code
Example response structure:
ActionResult(
data={
"people_id": 123,
"name": "John Doe",
"email": "john@example.com"
},
cost_usd=0.0
)The integration now supports displaying which Float account was used to authorize the integration. When a user connects their Float account, the platform will:
- Automatically fetch account information
- Cache it in the database
- Display "Connected to account@email.com for everyone in Company Name"
This provides transparency about which credentials are being used and which workspace the integration is connected to.
The connected account handler fetches:
- Email address of the account owner
- Account owner's name
- Organization/company name
- Unique account identifier
- Updated to new SDK ActionResult return type for cost tracking support
- Added connected account information display
- All actions now return structured ActionResult objects
- Enhanced transparency with account information caching
- Improved SDK compatibility
- Added 23 new actions covering all remaining Float API endpoints
- Implemented Accounts, Statuses, Public Holidays, Team Holidays, Project Stages, Project Expenses, Phases, Project Tasks, Milestones, and Reports resources
- Total of 60 actions covering complete Float API v3
- Enhanced documentation with additional usage examples
- Initial release
- Complete implementation of People, Projects, Tasks, Time Off, Logged Time, Clients, Departments, Roles, and Time Off Types resources
- 37 actions covering all major Float API operations
- Full rate limiting awareness
- Comprehensive error handling
- Complete documentation
This integration is provided as part of the Autohive platform. Refer to your Autohive license agreement for terms and conditions.