Skip to main content

Overview

Create a new project in your workspace using the Zapier integration API. This endpoint allows you to add projects with comprehensive configuration including client associations, billing settings, and project metadata.
This endpoint is designed for Zapier integrations but can be used with any application that needs to create projects programmatically.

Authentication

All requests require a valid API key in the Authorization header:
Authorization: Bearer YOUR_API_KEY

Create Project

curl -X POST 'https://app.timetracker.in/api/integrations/zapier/triggers/projects' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -d '{
    "name": "New Website Project",
    "description": "Complete redesign of company website",
    "status": "active",
    "isPrivate": false,
    "defaultBillableRate": 75.0,
    "defaultBillable": true,
    "estimatedHours": 120.0,
    "estimatedBudget": 9000.0,
    "workspace_id": "w1b2c3d4-e5f6-7890-abcd-ef0987654321",
    "client_id": "c1a2b3c4-d5e6-7890-abcd-ef1234567890"
  }'

Request Body

name
string
required
The name of the project. Must be between 1-255 characters.Example: "New Website Project"
workspace_id
string
required
The UUID of the workspace where the project will be created.Example: "w1b2c3d4-e5f6-7890-abcd-ef0987654321"
description
string
Optional description of the project. Can be used for project documentation and context.Example: "Complete redesign of company website"
status
string
default:"active"
The current status of the project. Valid values:
  • active - Project is currently in progress
  • completed - Project has been finished
Example: "active"
isPrivate
boolean
default:"false"
Whether the project is private or public within the workspace.Example: false
defaultBillableRate
number
Default hourly rate for this project (overrides workspace default). Must be a positive number.Example: 75.0
defaultBillable
boolean
default:"true"
Whether time entries are billable by default for this project.Example: true
estimatedHours
number
Estimated time to complete the project in hours. Must be a positive number.Example: 120.0
estimatedBudget
number
Estimated budget for the project. Must be a positive number.Example: 9000.0
client_id
string
Optional UUID of the client to associate with this project. Must be a valid client ID in the workspace.Example: "c1a2b3c4-d5e6-7890-abcd-ef1234567890"

Response

Success Response

Returns the created project object with all associated data:
{
  "id": "p1a2b3c4-d5e6-7890-abcd-ef1234567890",
  "name": "New Website Project",
  "description": "Complete redesign of company website",
  "status": "active",
  "isPrivate": false,
  "defaultBillableRate": 75.0,
  "defaultBillable": true,
  "estimatedHours": 120.0,
  "estimatedBudget": 9000.0,
  "workspaceId": "w1b2c3d4-e5f6-7890-abcd-ef0987654321",
  "workspaceName": "Main Workspace",
  "clientId": "c1a2b3c4-d5e6-7890-abcd-ef1234567890",
  "clientName": "Acme Corp",
  "createdAt": "2024-01-15T10:30:00.000Z",
  "updatedAt": "2024-01-15T10:30:00.000Z"
}

Response Fields

id
string
Unique project identifier (UUID format)
name
string
Project name
description
string
Project description
status
string
Current project status (active, completed, or on-hold)
isPrivate
boolean
Whether the project is private within the workspace
defaultBillableRate
number
Default hourly rate for the project
defaultBillable
boolean
Whether time entries are billable by default
estimatedHours
number
Estimated time to complete the project in hours
estimatedBudget
number
Estimated budget for the project
workspaceId
string
Associated workspace identifier
workspaceName
string
Associated workspace name
clientId
string
Associated client identifier (if assigned)
clientName
string
Associated client name (if assigned)
createdAt
string
ISO 8601 timestamp when project was created
updatedAt
string
ISO 8601 timestamp when project was last modified

Error Responses

{
  "error": "Invalid request body",
  "details": [
    {
      "field": "name",
      "message": "String must contain at least 1 character(s)"
    }
  ]
}
Cause: Required fields are missing or invalid
Solution: Check the request body and ensure all required fields are provided with valid values
{
  "error": "Client not found in workspace"
}
Cause: The specified client_id doesn’t exist in the workspace
Solution: Verify the client ID and ensure it belongs to the specified workspace
{
  "error": "Invalid request body",
  "details": [
    {
      "field": "defaultBillableRate",
      "message": "Number must be greater than 0"
    }
  ]
}
Cause: Billable rate must be a positive number
Solution: Provide a valid positive number for the billable rate
{
  "error": "Unauthorized"
}
Cause: Invalid or missing API key
Solution: Verify your API key is correct and properly formatted
{
  "error": "Workspace not found"
}
Cause: The specified workspace_id doesn’t exist or you don’t have access to it
Solution: Verify the workspace ID and ensure you have proper permissions
{
  "error": "Internal server error"
}
Cause: Server-side error during project creation
Solution: Retry the request or contact support if the issue persists

Zapier Integration

Zapier Action Configuration

When using this endpoint in Zapier:
  1. Workspace Selection: Use the dynamic dropdown to select the target workspace
  2. Required Fields: Only name and workspace_id are required
  3. Client Association: Optionally select a client from the dynamic dropdown
  4. Billing Configuration: Set up project-specific billing rates and settings
  5. Project Planning: Add estimated hours and budget for project planning

Sample Zapier Usage

1

Trigger Setup

Set up a trigger (e.g., new client creation, form submission) that provides project information
2

Action Configuration

Configure the “Create Project” action with:
  • Workspace: Select your target workspace
  • Project Name: Map from trigger data
  • Description: Map from trigger data (if available)
  • Client: Select from available clients (if applicable)
3

Billing Setup

Configure billing settings:
  • Default Billable Rate: Set hourly rate for the project
  • Default Billable: Enable/disable billable time entries
  • Estimated Hours: Set project time estimate
  • Estimated Budget: Set project budget
4

Test & Activate

Test the Zap with sample data, then activate for live use

Use Cases

Automated Project Creation: Automatically create projects when new clients are onboarded, ensuring consistent project setup and billing configuration.
CRM Integration: Create projects automatically when proposals are accepted in your CRM system, maintaining seamless workflow between sales and project management.
Project Templates: Use project creation as a starting point for task management workflows, automatically setting up project structure and team assignments.
Financial Planning: Create projects with estimated budgets and hours for better financial planning and resource allocation.

Important Notes

Client Association: If you specify a client_id, ensure the client exists in the target workspace. Invalid client IDs will result in a 400 error.
Billing Configuration: Project-specific billing rates override workspace defaults. Set these carefully to ensure accurate time tracking and invoicing.
Best Practices:
  • Use descriptive project names that clearly identify the work
  • Set realistic estimated hours and budgets for better planning
  • Associate projects with clients when applicable for better organization
  • Use the description field to provide context and project requirements
  • Test with sample data before implementing in production
  • Handle error responses gracefully in your application

Rate Limits

  • Rate Limit: 100 requests per minute per API key
  • Burst Limit: 10 requests per second
  • Daily Limit: 10,000 requests per day
Rate limits are applied per API key and workspace combination. Contact support if you need higher limits for your use case.