Sales Pipeline Management

Sales Pipeline Management API

The Sales Pipeline Management API is a comprehensive system for managing sales processes, deals, stages, tasks, meetings, files, notes, and activities. This powerful API allows you to build complete CRM workflows and sales automation systems.

Overview

Sales Pipeline API consists of multiple interconnected modules:

  • Pipeline Management: Main pipeline operations
  • Deals Management: Individual deal lifecycle
  • Stages Management: Pipeline stage configuration
  • Tasks Management: Deal-specific task tracking
  • Files Management: Document handling for deals
  • Meetings Management: Schedule and manage meetings
  • Notes Management: Deal notes and communication
  • Activities Management: Activity tracking and logging
  • Attributes Management: Custom pipeline attributes

Complete Endpoints Overview

Pipeline Management

MethodEndpointDescription
GET/api/public-v1/sales-pipelineGet all sales pipelines
POST/api/public-v1/sales-pipelineCreate a new sales pipeline
GET/api/public-v1/sales-pipeline/{id}Get a specific sales pipeline
PUT/api/public-v1/sales-pipeline/{id}Update a sales pipeline
DELETE/api/public-v1/sales-pipeline/{id}Delete a sales pipeline
POST/api/public-v1/sales-pipeline/bulk-actionsPerform bulk operations

Deals Management

MethodEndpointDescription
GET/api/public-v1/sales-pipeline/{uuid}/dealsGet all deals in a pipeline
POST/api/public-v1/sales-pipeline/{uuid}/dealsCreate a new deal
GET/api/public-v1/sales-pipeline/{uuid}/deals/{id}Get a specific deal
PUT/api/public-v1/sales-pipeline/{uuid}/deals/{id}Update a deal
DELETE/api/public-v1/sales-pipeline/{uuid}/deals/{id}Delete a deal
POST/api/public-v1/sales-pipeline/{uuid}/deals/bulk-actions/{id}Bulk deal operations
POST/api/public-v1/sales-pipeline/{uuid}/deals/order-changeChange deal order

Stage Management

MethodEndpointDescription
GET/api/public-v1/sales-pipeline/{uuid}/stageGet all stages
POST/api/public-v1/sales-pipeline/{uuid}/stageCreate a new stage
GET/api/public-v1/sales-pipeline/{uuid}/stage/{id}Get a specific stage
PUT/api/public-v1/sales-pipeline/{uuid}/stage/{id}Update a stage
DELETE/api/public-v1/sales-pipeline/{uuid}/stage/{id}Delete a stage
POST/api/public-v1/sales-pipeline/{uuid}/stage/order-changeChange stage order
POST/api/public-v1/sales-pipeline/{uuid}/stage/{id}/duplicateDuplicate a stage
POST/api/public-v1/sales-pipeline/{uuid}/stage/{id}/move-all-dealMove all deals to another stage
POST/api/public-v1/sales-pipeline/{uuid}/stage/bulk-actionsBulk stage operations

Task Management

MethodEndpointDescription
GET/api/public-v1/sales-pipeline/{uuid}/deal/{id}/taskGet all tasks for a deal
POST/api/public-v1/sales-pipeline/{uuid}/deal/{id}/taskCreate a new task
GET/api/public-v1/sales-pipeline/{uuid}/deal/{id}/task/{task_id}Get a specific task
PUT/api/public-v1/sales-pipeline/{uuid}/deal/{id}/task/{task_id}Update a task
DELETE/api/public-v1/sales-pipeline/{uuid}/deal/{id}/task/{task_id}Delete a task
POST/api/public-v1/sales-pipeline/{uuid}/deal/{id}/task/bulk-actionsBulk task operations
POST/api/public-v1/sales-pipeline/{uuid}/deal/{id}/task/order-changeChange task order
POST/api/public-v1/sales-pipeline/{uuid}/deal/{id}/task/{task_id}/completeMark task as complete

File Management

MethodEndpointDescription
GET/api/public-v1/sales-pipeline/{uuid}/deal/{id}/fileGet all files for a deal
POST/api/public-v1/sales-pipeline/{uuid}/deal/{id}/fileUpload a file
DELETE/api/public-v1/sales-pipeline/{uuid}/deal/{id}/file/{file_id}Delete a file

Meeting Management

MethodEndpointDescription
GET/api/public-v1/sales-pipeline/{uuid}/deal/{id}/meetingGet all meetings
POST/api/public-v1/sales-pipeline/{uuid}/deal/{id}/meetingCreate a new meeting
GET/api/public-v1/sales-pipeline/{uuid}/deal/{id}/meeting/{meeting_id}Get a specific meeting
PUT/api/public-v1/sales-pipeline/{uuid}/deal/{id}/meeting/{meeting_id}Update a meeting
DELETE/api/public-v1/sales-pipeline/{uuid}/deal/{id}/meeting/{meeting_id}Delete a meeting
POST/api/public-v1/sales-pipeline/{uuid}/deal/{id}/meeting/bulk-actionsBulk meeting operations
POST/api/public-v1/sales-pipeline/{uuid}/deal/{id}/meeting/{meeting_id}/completeMark meeting as complete

Note Management

MethodEndpointDescription
GET/api/public-v1/sales-pipeline/{uuid}/deal/{id}/noteGet all notes
POST/api/public-v1/sales-pipeline/{uuid}/deal/{id}/noteCreate a new note
GET/api/public-v1/sales-pipeline/{uuid}/deal/{id}/note/{note_id}Get a specific note
PUT/api/public-v1/sales-pipeline/{uuid}/deal/{id}/note/{note_id}Update a note
DELETE/api/public-v1/sales-pipeline/{uuid}/deal/{id}/note/{note_id}Delete a note
POST/api/public-v1/sales-pipeline/{uuid}/deal/{id}/note/bulk-actionsBulk note operations

Activity Management

MethodEndpointDescription
GET/api/public-v1/sales-pipeline/{uuid}/deal/{id}/activityGet all activities
POST/api/public-v1/sales-pipeline/{uuid}/deal/{id}/activityCreate a new activity
GET/api/public-v1/sales-pipeline/{uuid}/deal/{id}/activity/{activity_id}Get a specific activity
PUT/api/public-v1/sales-pipeline/{uuid}/deal/{id}/activity/{activity_id}Update an activity
DELETE/api/public-v1/sales-pipeline/{uuid}/deal/{id}/activity/{activity_id}Delete an activity
POST/api/public-v1/sales-pipeline/{uuid}/deal/{id}/activity/bulk-actionsBulk activity operations
POST/api/public-v1/sales-pipeline/{uuid}/deal/{id}/activity/send-mailSend activity email

Attribute Management

MethodEndpointDescription
GET/api/public-v1/sales-pipeline/attributesGet all pipeline attributes
POST/api/public-v1/sales-pipeline/attributesCreate a new attribute
GET/api/public-v1/sales-pipeline/attributes/{id}Get a specific attribute
PUT/api/public-v1/sales-pipeline/attributes/{id}Update an attribute
DELETE/api/public-v1/sales-pipeline/attributes/{id}Delete an attribute
POST/api/public-v1/sales-pipeline/attributes/bulk-actionsBulk attribute operations

Get All Sales Pipelines

Retrieve a list of all sales pipelines in your system.

GET /api/public-v1/sales-pipeline

Request Headers

X-Secret-Key: your-secret-key-here
Content-Type: application/json

Query Parameters

ParameterTypeRequiredDescription
pageintegerNoPage number for pagination (default: 1)
limitintegerNoNumber of pipelines per page (default: 50)
searchstringNoSearch term for pipeline name
statusstringNoFilter by status (active, inactive, archived)
sortstringNoSort field (name, created_at, deals_count)
orderstringNoSort order (asc or desc)

Example Request

curl -X GET "https://public-api.taskip.net/api/public-v1/sales-pipeline?status=active" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json"

Example Response

{
  "data": [
    {
      "title": "Main Sales Pipeline",
      "status": "active",
      "uuid": "pipeline-abc123def456",
      "created_at": "2 weeks ago",
      "stages_count": 5
    },
    {
      "title": "Secondary Pipeline",
      "status": "active", 
      "uuid": "pipeline-def456ghi789",
      "created_at": "1 month ago",
      "stages_count": 3
    }
  ],
  "msg": "Sales Pipeline retrieved successfully.",
  "status": 200
}

Create a Sales Pipeline

Create a new sales pipeline with initial configuration.

POST /api/public-v1/sales-pipeline

Request Body

FieldTypeRequiredDescription
titlestringYesPipeline title (max 191 characters)
statusstringNoPipeline status

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Enterprise Sales Pipeline",
    "status": "active"
  }'

Example Response

{
  "msg": "Sales pipeline created successfully",
  "data": {
    "title": "Enterprise Sales Pipeline",
    "status": "active",
    "uuid": "pipeline-xyz789abc123",
    "created_at": "just now",
    "stages_count": 0
  }
}

Get a Specific Sales Pipeline

Retrieve detailed information about a specific sales pipeline.

GET /api/public-v1/sales-pipeline/{id}

Path Parameters

ParameterTypeRequiredDescription
idintegerYesSales pipeline ID

Example Request

curl -X GET "https://public-api.taskip.net/api/public-v1/sales-pipeline/1" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json"

Example Response

{
  "title": "Main Sales Pipeline",
  "status": "active",
  "uuid": "pipeline-abc123def456",
  "created_at": "2 weeks ago",
  "stages": [
    {
      "id": 1,
      "name": "Lead",
      "position": 1,
      "color": "#3b82f6"
    },
    {
      "id": 2,
      "name": "Qualified",
      "position": 2,
      "color": "#10b981"
    },
    {
      "id": 3,
      "name": "Proposal",
      "position": 3,
      "color": "#f59e0b"
    }
  ]
}

💡

Complex Module: Sales Pipeline is the most comprehensive API module with 50+ endpoints. Each sub-module (Deals, Stages, Tasks, etc.) provides full CRUD operations and specialized actions.

Next: Sub-Module Documentation

The Sales Pipeline API includes several specialized sub-modules, each documented separately:


Deals Management

Manage individual deals within sales pipelines.

Deals Endpoints Overview

MethodEndpointDescription
GET/api/public-v1/sales-pipeline/{uuid}/dealsGet all deals in pipeline
POST/api/public-v1/sales-pipeline/{uuid}/dealsCreate a new deal
GET/api/public-v1/sales-pipeline/{uuid}/deals/{id}Get a specific deal
PUT/api/public-v1/sales-pipeline/{uuid}/deals/{id}Update a deal
DELETE/api/public-v1/sales-pipeline/{uuid}/deals/{id}Delete a deal
POST/api/public-v1/sales-pipeline/{uuid}/deals/bulk-actions/{id}Perform bulk actions
POST/api/public-v1/sales-pipeline/{uuid}/deals/order-changeChange deal order

Get All Deals

Retrieve all deals in a specific pipeline.

GET /api/public-v1/sales-pipeline/{uuid}/deals

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID

Query Parameters

ParameterTypeRequiredDescription
stage_idintegerNoFilter by stage ID
statusstringNoFilter by status (active, won, lost)
contact_idintegerNoFilter by contact ID
value_mindecimalNoMinimum deal value
value_maxdecimalNoMaximum deal value
sortstringNoSort field (title, value, created_at)
orderstringNoSort order (asc or desc)

Example Request

curl -X GET "https://public-api.taskip.net/api/public-v1/sales-pipeline/pipeline-abc123def456/deals?stage_id=2" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json"

Example Response

{
  "success": true,
  "data": [
    {
      "id": 156,
      "title": "Acme Corp Website Redesign", 
      "description": "Complete website redesign and development",
      "value": 15000.00,
      "probability": 75,
      "status": "active",
      "stage": {
        "id": 2,
        "name": "Qualified",
        "position": 2
      },
      "contact": {
        "id": 45,
        "name": "John Doe",
        "email": "john.doe@acme.com"
      },
      "expected_close_date": "2024-02-15",
      "created_at": "2024-01-20T14:30:00Z",
      "updated_at": "2024-01-25T10:15:00Z"
    }
  ],
  "meta": {
    "current_page": 1,
    "per_page": 50,
    "total": 8,
    "total_pages": 1
  }
}

Update a Sales Pipeline

Update an existing sales pipeline's information.

PUT /api/public-v1/sales-pipeline/{id}

Path Parameters

ParameterTypeRequiredDescription
idintegerYesSales pipeline ID to update

Request Body

Same fields as create pipeline. All fields are optional - only include fields you want to update.

Example Request

curl -X PUT "https://public-api.taskip.net/api/public-v1/sales-pipeline/1" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Updated Sales Pipeline",
    "status": "active"
  }'

Example Response

{
  "msg": "Pipeline Updated Successfully",
  "data": {
    "title": "Updated Sales Pipeline",
    "status": "active",
    "uuid": "pipeline-abc123def456",
    "created_at": "2 weeks ago",
    "stages_count": 5
  }
}

Delete a Sales Pipeline

Delete a specific sales pipeline from your system.

DELETE /api/public-v1/sales-pipeline/{id}

Path Parameters

ParameterTypeRequiredDescription
idintegerYesSales pipeline ID to delete

Example Request

curl -X DELETE "https://public-api.taskip.net/api/public-v1/sales-pipeline/1" \
  -H "X-Secret-Key: your-secret-key-here"

Example Response

{
  "msg": "pipeline deleted successfully.",
  "status": 200
}

Pipeline Bulk Actions

Perform bulk operations on multiple sales pipelines.

POST /api/public-v1/sales-pipeline/bulk-actions

Request Body

FieldTypeRequiredDescription
idsarrayYesArray of pipeline IDs (must exist in sales_pipelines table)
ids.*integerYesEach ID must be a valid sales pipeline ID

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/bulk-actions" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "ids": [1, 2, 3]
  }'

Example Response

{
  "msg": "Sales pipeline bulk actions successful",
  "status": 200
}

Deals Management

Get All Deals

Retrieve all deals in a specific sales pipeline.

GET /api/public-v1/sales-pipeline/{uuid}/deals

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID

Query Parameters

ParameterTypeRequiredDescription
pageintegerNoPage number for pagination
limitintegerNoNumber of deals per page
stage_idintegerNoFilter by stage ID
statusstringNoFilter by deal status
searchstringNoSearch term

Example Request

curl -X GET "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deals" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json"

Example Response

{
  "msg": "Sales Pipeline Deals retrieved successfully",
  "data": [
    {
      "id": 1,
      "deal_name": "Website Development Deal",
      "company": {
        "id": 15,
        "name": "Acme Corporation", 
        "email": "contact@acme.com"
      },
      "contact": {
        "id": 25,
        "first_name": "John",
        "last_name": "Smith",
        "email": "john@acme.com"
      },
      "deal_stage_id": 2,
      "deal_amount": "15000.00",
      "closing_date": "15/02/24",
      "description": "Complete website development project",
      "documents": [],
      "files": [],
      "status": "active",
      "currency": "USD",
      "order": 1,
      "created_at": "15/01/24",
      "pipeline_uuid": "abc123def456",
      "deal_owner": {
        "id": 5,
        "name": "Sarah Johnson",
        "email": "sarah@company.com"
      },
      "tags": []
    }
  ]
}

Create a Deal

Create a new deal in a sales pipeline.

POST /api/public-v1/sales-pipeline/{uuid}/deals

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID

Request Body

FieldTypeRequiredDescription
deal_namestringYesDeal name
company_idintegerYesCompany ID
deal_owner_idintegerYesDeal owner user ID
contact_idintegerYesContact ID
deal_stage_idintegerYesDeal stage ID
deal_amountdecimalYesDeal amount
closing_datestringYesClosing date (YYYY-MM-DD)
descriptionstringNoDeal description

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deals" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "deal_name": "Website Development Deal",
    "company_id": 25,
    "deal_owner_id": 8,
    "contact_id": 15,
    "deal_stage_id": 2,
    "deal_amount": 15000.00,
    "closing_date": "2024-02-15",
    "description": "Complete website development project"
  }'

Example Response

{
  "msg": "Deal Added Successfully",
  "data": {
    "id": 1,
    "deal_name": "Website Development Deal",
    "company": {
      "id": 25,
      "name": "Tech Solutions Ltd",
      "email": "info@techsolutions.com"
    },
    "contact": {
      "id": 15,
      "name": "John Smith",
      "email": "john@techsolutions.com"
    },
    "deal_stage_id": 2,
    "deal_amount": "15000.00",
    "closing_date": "15/02/24",
    "created_at": "15/01/24",
    "pipeline_uuid": "abc123def456",
    "deal_owner": {
      "id": 8,
      "name": "Sarah Johnson",
      "email": "sarah@company.com"
    },
    "description": "Complete website development project"
  },
  "status": 201
}

Get a Specific Deal

Retrieve details of a specific deal.

GET /api/public-v1/sales-pipeline/{uuid}/deals/{id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID

Example Request

curl -X GET "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deals/1" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json"

Example Response

{
  "msg": "Sales Pipeline Deal retrieved successfully",
  "data": {
    "id": 1,
    "deal_name": "Website Development Deal",
    "company": {
      "id": 25,
      "name": "Tech Solutions Ltd",
      "email": "info@techsolutions.com"
    },
    "contact": {
      "id": 15,
      "name": "John Smith",
      "email": "john@techsolutions.com"
    },
    "deal_stage_id": 2,
    "deal_amount": "15000.00",
    "closing_date": "15/02/24",
    "created_at": "15/01/24",
    "pipeline_uuid": "abc123def456",
    "deal_owner": {
      "id": 8,
      "name": "Sarah Johnson",
      "email": "sarah@company.com"
    },
    "description": "Complete website development project"
  },
  "status": 200
}

Update a Deal

Update an existing deal.

PUT /api/public-v1/sales-pipeline/{uuid}/deals/{id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID

Request Body

FieldTypeRequiredDescription
deal_namestringNoDeal name
company_idintegerNoCompany ID
deal_owner_idintegerNoDeal owner user ID
contact_idintegerNoContact ID
deal_stage_idintegerNoDeal stage ID
deal_amountdecimalNoDeal amount
closing_datestringNoClosing date (YYYY-MM-DD)
descriptionstringNoDeal description

All fields are optional for updates.

Example Request

curl -X PUT "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deals/1" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "deal_name": "Updated Website Development Deal",
    "deal_amount": 18000.00,
    "deal_stage_id": 3
  }'

Example Response

{
  "msg": "Deal Updated Successfully",
  "data": {
    "id": 1,
    "deal_name": "Updated Website Development Deal",
    "company": {
      "id": 25,
      "name": "Tech Solutions Ltd",
      "email": "info@techsolutions.com"
    },
    "contact": {
      "id": 15,
      "name": "John Smith",
      "email": "john@techsolutions.com"
    },
    "deal_stage_id": 3,
    "deal_amount": "18000.00",
    "closing_date": "15/02/24",
    "created_at": "15/01/24",
    "pipeline_uuid": "abc123def456",
    "deal_owner": {
      "id": 8,
      "name": "Sarah Johnson",
      "email": "sarah@company.com"
    },
    "description": "Complete website development project"
  },
  "status": 200
}

Delete a Deal

Delete a specific deal.

DELETE /api/public-v1/sales-pipeline/{uuid}/deals/{id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID

Example Request

curl -X DELETE "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deals/1" \
  -H "X-Secret-Key: your-secret-key-here"

Example Response

{
  "msg": "Deal Deleted Successfully",
  "status": 200
}

Deals Bulk Actions

Perform bulk operations on deals.

POST /api/public-v1/sales-pipeline/{uuid}/deals/bulk-actions/{id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID or bulk action ID

Request Body

FieldTypeRequiredDescription
deal_idsarrayYesArray of deal IDs
actionstringYesAction to perform (delete, move_stage, update_status)
stage_idintegerNoTarget stage ID (for move_stage action)

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deals/bulk-actions/1" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "deal_ids": [1, 2, 3],
    "action": "move_stage",
    "stage_id": 3
  }'

Example Response

{
  "msg": "Bulk Action Completed Successfully",
  "status": 200
}

Change Deals Order

Change the order of deals within a stage.

POST /api/public-v1/sales-pipeline/{uuid}/deals/order-change

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID

Request Body

FieldTypeRequiredDescription
dealsarrayYesArray of deal objects with id and position

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deals/order-change" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "deals": [
      {"id": 1, "position": 2},
      {"id": 2, "position": 1},
      {"id": 3, "position": 3}
    ]
  }'

Example Response

{
  "msg": "Deal Order Updated Successfully",
  "status": 200
}

Stage Management

Get All Stages

Retrieve all stages in a sales pipeline.

GET /api/public-v1/sales-pipeline/{uuid}/stage

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID

Example Request

curl -X GET "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/stage" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json"

Example Response

{
  "data": [
    {
      "id": 1,
      "title": "Lead",
      "order": 1,
      "color": "#3B82F6",
      "created_at": "2 weeks ago",
      "deals": [
        {
          "id": 1,
          "deal_name": "Website Development Deal",
          "company": {
            "id": 25,
            "name": "Tech Solutions Ltd",
            "email": "info@techsolutions.com"
          },
          "contact": {
            "id": 15,
            "name": "John Smith",
            "email": "john@techsolutions.com"
          },
          "deal_stage_id": 1,
          "deal_amount": "15000.00",
          "closing_date": "15/02/24",
          "created_at": "15/01/24",
          "pipeline_uuid": "abc123def456",
          "deal_owner": {
            "id": 8,
            "name": "Sarah Johnson",
            "email": "sarah@company.com"
          }
        }
      ],
      "deals_count": 15
    }
  ],
  "status": 200
}

Create a Stage

Create a new stage in a sales pipeline.

POST /api/public-v1/sales-pipeline/{uuid}/stage

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID

Request Body

FieldTypeRequiredDescription
titlestringYesStage title
colorstringNoStage color (hex code)
orderintegerNoStage order

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/stage" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Qualified Lead",
    "color": "#10B981",
    "order": 2
  }'

Example Response

{
  "msg": "Pipeline Stage Added Successfully",
  "data": {
    "id": 2,
    "title": "Qualified Lead",
    "order": 2,
    "color": "#10B981",
    "created_at": "just now",
    "deals": [],
    "deals_count": 0
  }
}

Get a Specific Stage

Retrieve details of a specific stage.

GET /api/public-v1/sales-pipeline/{uuid}/stage/{id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesStage ID

Example Request

curl -X GET "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/stage/1" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json"

Example Response

{
  "id": 1,
  "name": "Lead",
  "position": 1,
  "color": "#3B82F6",
  "deals_count": 15,
  "total_value": 75000.00,
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-25T14:20:00Z"
}

Update a Stage

Update an existing stage.

PUT /api/public-v1/sales-pipeline/{uuid}/stage/{id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesStage ID

Request Body

FieldTypeRequiredDescription
titlestringNoStage title
colorstringNoStage color (hex code)
orderintegerNoStage order

All fields are optional for updates.

Example Request

curl -X PUT "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/stage/1" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Updated Lead Stage",
    "color": "#EF4444"
  }'

Example Response

{
  "msg": "Pipeline Stage Updated Successfully",
  "data": {
    "id": 1,
    "title": "Updated Lead Stage",
    "order": 1,
    "color": "#EF4444",
    "created_at": "2 weeks ago",
    "deals": [],
    "deals_count": 0
  }
}

Delete a Stage

Delete a specific stage.

DELETE /api/public-v1/sales-pipeline/{uuid}/stage/{id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesStage ID

Example Request

curl -X DELETE "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/stage/1" \
  -H "X-Secret-Key: your-secret-key-here"

Example Response

{
  "msg": "Pipeline Stage Deleted",
  "status": 200
}

Change Stage Order

Change the order of stages in a pipeline.

POST /api/public-v1/sales-pipeline/{uuid}/stage/order-change

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID

Request Body

FieldTypeRequiredDescription
orderarrayYesArray of stage objects with stage_id and order

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/stage/order-change" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "order": [
      {"stage_id": 1, "order": 2},
      {"stage_id": 2, "order": 1},
      {"stage_id": 3, "order": 3}
    ]
  }'

Example Response

{
  "msg": "Order changed"
}

Duplicate Stage

Create a duplicate of an existing stage.

POST /api/public-v1/sales-pipeline/{uuid}/stage/{id}/duplicate

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesStage ID to duplicate

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/stage/1/duplicate" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json"

Example Response

{
  "msg": "SalesPipeline Stage Duplicated Successfully",
  "data": {
    "id": 4,
    "title": "Lead (Copy)",
    "order": 4,
    "color": "#3B82F6",
    "created_at": "just now",
    "deals": [],
    "deals_count": 0
  }
}

Move All Deals

Move all deals from one stage to another.

POST /api/public-v1/sales-pipeline/{uuid}/stage/{id}/move-all-deal

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesSource stage ID (stage to move deals from)

Request Body

FieldTypeRequiredDescription
target_stage_idintegerYesTarget stage ID (stage to move deals to)

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/stage/1/move-all-deal" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "target_stage_id": 2
  }'

Example Response

{
  "msg": "Pipeline Stage Move All Deal Successfully"
}

Stage Bulk Actions

Perform bulk operations on stages.

POST /api/public-v1/sales-pipeline/{uuid}/stage/bulk-actions

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID

Request Body

FieldTypeRequiredDescription
stage_idsarrayYesArray of stage IDs to delete
actionstringYesAction to perform (e.g., "delete")

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/stage/bulk-actions" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "stage_ids": [1, 2, 3],
    "action": "delete"
  }'

Example Response

{
  "msg": "Failed to delete sales pipeline stage"
}

Task Management

Manage tasks within sales pipeline deals. Tasks help track action items, follow-ups, and activities related to specific deals.

Get All Tasks

Retrieve all tasks for a specific deal.

GET /api/public-v1/sales-pipeline/{uuid}/deal/{id}/task

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID

Example Request

curl -X GET "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/task" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json"

Example Response

{
  "data": [
    {
      "id": 1,
      "title": "Follow up with client",
      "deal_id": 1,
      "type": 1,
      "due_date": "2024-02-15",
      "due_time": "14:30",
      "priority": 2,
      "description": "Call client to discuss project requirements",
      "is_completed": false,
      "assignee": {
        "id": 8,
        "name": "Sarah Johnson",
        "email": "sarah@company.com"
      },
      "assignedBy": {
        "id": 5,
        "name": "Manager Name",
        "email": "manager@company.com"
      },
      "reminder": {
        "id": 1,
        "reminder_date": "2024-02-15",
        "reminder_time": "14:00"
      },
      "repeat": {
        "id": 1,
        "repeat_type": "weekly",
        "repeat_until": "2024-03-15"
      }
    }
  ],
  "status": 200
}

Create a Task

Create a new task for a deal.

POST /api/public-v1/sales-pipeline/{uuid}/deal/{id}/task

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID

Request Body

FieldTypeRequiredDescription
titlestringYesTask title (max 191 chars)
typeintegerYesTask type (0-4)
due_datestringNoDue date (YYYY-MM-DD)
due_timestringConditionalRequired if due_date is provided
assignee_idintegerYesUser ID of assignee
priorityintegerYesPriority level (0-3)
descriptionstringNoTask description
repeatintegerNoRepeat type
repeat_untilstringConditionalRequired if repeat != 100
reminderintegerNoReminder type
reminder_datestringNoReminder date
reminder_timestringNoReminder time

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/task" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Follow up with client",
    "type": 1,
    "due_date": "2024-02-15",
    "due_time": "14:30",
    "assignee_id": 8,
    "priority": 2,
    "description": "Call client to discuss project requirements",
    "reminder": 1,
    "reminder_date": "2024-02-15",
    "reminder_time": "14:00"
  }'

Example Response

{
  "msg": "Deal Task Added Successfully",
  "data": {
    "id": 1,
    "title": "Follow up with client",
    "deal_id": 1,
    "type": 1,
    "due_date": "2024-02-15",
    "due_time": "14:30",
    "priority": 2,
    "description": "Call client to discuss project requirements",
    "is_completed": false,
    "assignee": {
      "id": 8,
      "name": "Sarah Johnson",
      "email": "sarah@company.com"
    },
    "assignedBy": {
      "id": 5,
      "name": "Manager Name",
      "email": "manager@company.com"
    },
    "reminder": {
      "id": 1,
      "reminder_date": "2024-02-15",
      "reminder_time": "14:00"
    },
    "repeat": null
  }
}

Get a Specific Task

Retrieve details of a specific task.

GET /api/public-v1/sales-pipeline/{uuid}/deal/{id}/task/{task_id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID
task_idintegerYesTask ID

Example Request

curl -X GET "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/task/1" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json"

Example Response

{
  "data": {
    "id": 1,
    "title": "Follow up with client",
    "deal_id": 1,
    "type": 1,
    "due_date": "2024-02-15",
    "due_time": "14:30",
    "priority": 2,
    "description": "Call client to discuss project requirements",
    "is_completed": false,
    "assignee": {
      "id": 8,
      "name": "Sarah Johnson",
      "email": "sarah@company.com"
    },
    "assignedBy": {
      "id": 5,
      "name": "Manager Name",
      "email": "manager@company.com"
    },
    "reminder": {
      "id": 1,
      "reminder_date": "2024-02-15",
      "reminder_time": "14:00"
    },
    "repeat": {
      "id": 1,
      "repeat_type": "weekly",
      "repeat_until": "2024-03-15"
    }
  },
  "status": 200
}

Update a Task

Update an existing task.

PUT /api/public-v1/sales-pipeline/{uuid}/deal/{id}/task/{task_id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID
task_idintegerYesTask ID

Request Body

Same fields as create task. All fields are optional for updates.

Example Request

curl -X PUT "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/task/1" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Updated follow up with client",
    "priority": 3
  }'

Example Response

{
  "msg": "Task Updated Successfully",
  "data": {
    "id": 1,
    "title": "Updated follow up with client",
    "deal_id": 1,
    "type": 1,
    "due_date": "2024-02-15",
    "due_time": "14:30",
    "priority": 3,
    "description": "Call client to discuss project requirements",
    "is_completed": false,
    "assignee": {
      "id": 8,
      "name": "Sarah Johnson",
      "email": "sarah@company.com"
    },
    "assignedBy": {
      "id": 5,
      "name": "Manager Name",
      "email": "manager@company.com"
    },
    "reminder": {
      "id": 1,
      "reminder_date": "2024-02-15",
      "reminder_time": "14:00"
    },
    "repeat": {
      "id": 1,
      "repeat_type": "weekly",
      "repeat_until": "2024-03-15"
    }
  }
}

Delete a Task

Delete a specific task.

DELETE /api/public-v1/sales-pipeline/{uuid}/deal/{id}/task/{task_id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID
task_idintegerYesTask ID

Example Request

curl -X DELETE "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/task/1" \
  -H "X-Secret-Key: your-secret-key-here"

Example Response

{
  "msg": "Task Deleted"
}

Task Bulk Actions

Perform bulk operations on tasks.

POST /api/public-v1/sales-pipeline/{uuid}/deal/{id}/task/bulk-actions

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID

Request Body

FieldTypeRequiredDescription
task_idsarrayYesArray of task IDs
actionstringYesAction to perform (e.g., "delete")

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/task/bulk-actions" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "task_ids": [1, 2, 3],
    "action": "delete"
  }'

Example Response

{
  "msg": "Tasks deleted successfully"
}

Change Task Order

Change the order of tasks for a deal.

POST /api/public-v1/sales-pipeline/{uuid}/deal/{id}/task/order-change

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID

Request Body

FieldTypeRequiredDescription
task_idintegerYesTask ID to reorder
new_orderintegerYesNew order position

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/task/order-change" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "task_id": 1,
    "new_order": 3
  }'

Example Response

{
  "msg": "Task Updated Successfully",
  "data": {
    "id": 1,
    "title": "Follow up with client",
    "deal_id": 1,
    "type": 1,
    "due_date": "2024-02-15",
    "due_time": "14:30",
    "priority": 2,
    "description": "Call client to discuss project requirements",
    "is_completed": false,
    "assignee": {
      "id": 8,
      "name": "Sarah Johnson",
      "email": "sarah@company.com"
    },
    "assignedBy": {
      "id": 5,
      "name": "Manager Name",
      "email": "manager@company.com"
    },
    "reminder": {
      "id": 1,
      "reminder_date": "2024-02-15",
      "reminder_time": "14:00"
    },
    "repeat": {
      "id": 1,
      "repeat_type": "weekly",
      "repeat_until": "2024-03-15"
    }
  }
}

Complete Task

Mark a task as completed.

POST /api/public-v1/sales-pipeline/{uuid}/deal/{id}/task/{task_id}/complete

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID
task_idintegerYesTask ID

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/task/1/complete" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json"

Example Response

{
  "msg": "Task Updated Successfully",
  "data": {
    "id": 1,
    "title": "Follow up with client",
    "deal_id": 1,
    "type": 1,
    "due_date": "2024-02-15",
    "due_time": "14:30",
    "priority": 2,
    "description": "Call client to discuss project requirements",
    "is_completed": true,
    "assignee": {
      "id": 8,
      "name": "Sarah Johnson",
      "email": "sarah@company.com"
    },
    "assignedBy": {
      "id": 5,
      "name": "Manager Name",
      "email": "manager@company.com"
    },
    "reminder": {
      "id": 1,
      "reminder_date": "2024-02-15",
      "reminder_time": "14:00"
    },
    "repeat": {
      "id": 1,
      "repeat_type": "weekly",
      "repeat_until": "2024-03-15"
    }
  }
}

File Management

Manage files and documents attached to sales pipeline deals. This allows you to upload, view, and delete files associated with specific deals.

Get All Files

Retrieve all files for a specific deal.

GET /api/public-v1/sales-pipeline/{uuid}/deal/{id}/file

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID

Example Request

curl -X GET "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/file" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json"

Example Response

{
  "msg": "Deal file added",
  "data": [
    {
      "deal_id": 1,
      "media": {
        "id": 15,
        "name": "contract.pdf",
        "file_name": "contract.pdf",
        "mime_type": "application/pdf",
        "size": 2048576,
        "url": "https://storage.example.com/files/contract.pdf",
        "created_at": "2024-01-15T10:30:00Z"
      }
    },
    {
      "deal_id": 1,
      "media": {
        "id": 16,
        "name": "proposal.docx",
        "file_name": "proposal.docx",
        "mime_type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
        "size": 1024000,
        "url": "https://storage.example.com/files/proposal.docx",
        "created_at": "2024-01-16T09:15:00Z"
      }
    }
  ],
  "status": 200
}

Upload a File

Upload a new file for a deal.

POST /api/public-v1/sales-pipeline/{uuid}/deal/{id}/file

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID

Request Body

FieldTypeRequiredDescription
file_idintegerYesMedia upload ID (obtained from media upload endpoint)

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/file" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "file_id": 15
  }'

Example Response

{
  "msg": "Deal file added",
  "data": {
    "deal_id": 1,
    "media": {
      "id": 15,
      "name": "contract.pdf",
      "file_name": "contract.pdf",
      "mime_type": "application/pdf",
      "size": 2048576,
      "url": "https://storage.example.com/files/contract.pdf",
      "created_at": "2024-01-15T10:30:00Z"
    }
  },
  "status": 200
}

Delete a File

Delete a specific file from a deal.

DELETE /api/public-v1/sales-pipeline/{uuid}/deal/{id}/file/{file_id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID
file_idintegerYesFile/Media ID

Example Request

curl -X DELETE "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/file/15" \
  -H "X-Secret-Key: your-secret-key-here"

Example Response

{
  "msg": "Deal file deleted",
  "status": 200
}

Meeting Management

Manage meetings and appointments within sales pipeline deals. This allows you to schedule, track, and manage meetings related to specific deals.

Get All Meetings

Retrieve all meetings for a specific deal.

GET /api/public-v1/sales-pipeline/{uuid}/deal/{id}/meeting

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID

Example Request

curl -X GET "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/meeting" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json"

Example Response

{
  "data": [
    {
      "id": 1,
      "title": "Project kickoff meeting",
      "deal": 1,
      "type": 0,
      "description": "Initial project discussion and requirements gathering",
      "priority": 2,
      "duration": 1,
      "notify_client": true,
      "meeting_day": "Monday",
      "date": "February 15, 2024",
      "time_slot_start": "14:00",
      "time_slot_end": "15:00",
      "created_at": "2 days ago",
      "assignee_id": 8,
      "location": "Conference Room A",
      "phone_number": null,
      "meeting_url": null,
      "google_meet_integration_id": null,
      "assignee": {
        "id": 8,
        "name": "Sarah Johnson",
        "email": "sarah@company.com"
      },
      "assignedBy": {
        "id": 5,
        "name": "Manager Name",
        "email": "manager@company.com"
      },
      "reminder": {
        "id": 1,
        "reminder_date": "2024-02-15",
        "reminder_time": "13:30"
      }
    }
  ],
  "status": 200
}

Create a Meeting

Create a new meeting for a deal.

POST /api/public-v1/sales-pipeline/{uuid}/deal/{id}/meeting

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID

Request Body

FieldTypeRequiredDescription
titlestringYesMeeting title (max 191 chars)
typeintegerYesMeeting type (0=in-person, 1=phone, 2=google meet, 3=other)
assignee_idintegerYesUser ID of assignee
descriptionstringNoMeeting description
priorityintegerYesPriority level (0-3)
durationintegerYesDuration type (0-2)
is_completedbooleanNoMeeting completion status
notify_clientbooleanYesWhether to notify client
google_meet_integration_idintegerConditionalRequired if type=2
phone_numberstringConditionalRequired if type=1
locationstringConditionalRequired if type=0
reminderintegerNoReminder type
reminder_datestringNoReminder date
reminder_timestringNoReminder time
time_slot_startstringNoMeeting start time
time_slot_endstringNoMeeting end time
datestringNoMeeting date

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/meeting" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Project kickoff meeting",
    "type": 0,
    "assignee_id": 8,
    "description": "Initial project discussion and requirements gathering",
    "priority": 2,
    "duration": 1,
    "notify_client": true,
    "location": "Conference Room A",
    "time_slot_start": "14:00",
    "time_slot_end": "15:00",
    "date": "2024-02-15",
    "reminder": 1,
    "reminder_date": "2024-02-15",
    "reminder_time": "13:30"
  }'

Example Response

{
  "msg": "Meeting Added successfully",
  "data": {
    "id": 1,
    "title": "Project kickoff meeting",
    "deal": 1,
    "type": 0,
    "description": "Initial project discussion and requirements gathering",
    "priority": 2,
    "duration": 1,
    "notify_client": true,
    "meeting_day": "Monday",
    "date": "February 15, 2024",
    "time_slot_start": "14:00",
    "time_slot_end": "15:00",
    "created_at": "just now",
    "assignee_id": 8,
    "location": "Conference Room A",
    "phone_number": null,
    "meeting_url": null,
    "google_meet_integration_id": null,
    "assignee": {
      "id": 8,
      "name": "Sarah Johnson",
      "email": "sarah@company.com"
    },
    "assignedBy": {
      "id": 5,
      "name": "Manager Name",
      "email": "manager@company.com"
    },
    "reminder": {
      "id": 1,
      "reminder_date": "2024-02-15",
      "reminder_time": "13:30"
    }
  }
}

Get a Specific Meeting

Retrieve details of a specific meeting.

GET /api/public-v1/sales-pipeline/{uuid}/deal/{id}/meeting/{meeting_id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID
meeting_idintegerYesMeeting ID

Example Request

curl -X GET "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/meeting/1" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json"

Example Response

{
  "data": {
    "id": 1,
    "title": "Project kickoff meeting",
    "deal": 1,
    "type": 0,
    "description": "Initial project discussion and requirements gathering",
    "priority": 2,
    "duration": 1,
    "notify_client": true,
    "meeting_day": "Monday",
    "date": "February 15, 2024",
    "time_slot_start": "14:00",
    "time_slot_end": "15:00",
    "created_at": "2 days ago",
    "assignee_id": 8,
    "location": "Conference Room A",
    "phone_number": null,
    "meeting_url": null,
    "google_meet_integration_id": null,
    "assignee": {
      "id": 8,
      "name": "Sarah Johnson",
      "email": "sarah@company.com"
    },
    "assignedBy": {
      "id": 5,
      "name": "Manager Name",
      "email": "manager@company.com"
    },
    "reminder": {
      "id": 1,
      "reminder_date": "2024-02-15",
      "reminder_time": "13:30"
    }
  },
  "status": 200
}

Update a Meeting

Update an existing meeting.

PUT /api/public-v1/sales-pipeline/{uuid}/deal/{id}/meeting/{meeting_id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID
meeting_idintegerYesMeeting ID

Request Body

Same fields as create meeting. All fields are required for updates.

Example Request

curl -X PUT "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/meeting/1" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Updated project kickoff meeting",
    "type": 0,
    "assignee_id": 8,
    "description": "Updated meeting description",
    "priority": 3,
    "duration": 2,
    "notify_client": true,
    "location": "Conference Room B"
  }'

Example Response

{
  "msg": "Meeting Update successfully",
  "data": {
    "id": 1,
    "title": "Updated project kickoff meeting",
    "deal": 1,
    "type": 0,
    "description": "Updated meeting description",
    "priority": 3,
    "duration": 2,
    "notify_client": true,
    "meeting_day": "Monday",
    "date": "February 15, 2024",
    "time_slot_start": "14:00",
    "time_slot_end": "15:00",
    "created_at": "2 days ago",
    "assignee_id": 8,
    "location": "Conference Room B",
    "phone_number": null,
    "meeting_url": null,
    "google_meet_integration_id": null,
    "assignee": {
      "id": 8,
      "name": "Sarah Johnson",
      "email": "sarah@company.com"
    },
    "assignedBy": {
      "id": 5,
      "name": "Manager Name",
      "email": "manager@company.com"
    },
    "reminder": {
      "id": 1,
      "reminder_date": "2024-02-15",
      "reminder_time": "13:30"
    }
  }
}

Delete a Meeting

Delete a specific meeting.

DELETE /api/public-v1/sales-pipeline/{uuid}/deal/{id}/meeting/{meeting_id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID
meeting_idintegerYesMeeting ID

Example Request

curl -X DELETE "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/meeting/1" \
  -H "X-Secret-Key: your-secret-key-here"

Example Response

{
  "msg": "Meeting Deleted"
}

Meeting Bulk Actions

Perform bulk operations on meetings.

POST /api/public-v1/sales-pipeline/{uuid}/deal/{id}/meeting/bulk-actions

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID

Request Body

FieldTypeRequiredDescription
idsarrayYesArray of meeting IDs
actionstringYesAction to perform (e.g., "delete")

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/meeting/bulk-actions" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "ids": [1, 2, 3],
    "action": "delete"
  }'

Example Response

{
  "msg": "Meeting deleted successfully"
}

Complete Meeting

Mark a meeting as completed or incomplete.

POST /api/public-v1/sales-pipeline/{uuid}/deal/{id}/meeting/{meeting_id}/complete

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID
meeting_idintegerYesMeeting ID

Request Body

FieldTypeRequiredDescription
is_completedbooleanYesCompletion status (true/false)

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/meeting/1/complete" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "is_completed": true
  }'

Example Response

{
  "msg": "Meeting Marked Completed",
  "data": {
    "id": 1,
    "title": "Project kickoff meeting",
    "deal_id": 1,
    "type": 0,
    "due_date": "2024-02-15",
    "due_time": "14:00",
    "priority": 2,
    "description": "Initial project discussion and requirements gathering",
    "is_completed": true,
    "assignee": {
      "id": 8,
      "name": "Sarah Johnson",
      "email": "sarah@company.com"
    },
    "assignedBy": {
      "id": 5,
      "name": "Manager Name",
      "email": "manager@company.com"
    },
    "reminder": {
      "id": 1,
      "reminder_date": "2024-02-15",
      "reminder_time": "13:30"
    },
    "repeat": null
  }
}

Note Management

Manage notes and comments within sales pipeline deals. This allows you to add, view, edit, and delete notes related to specific deals for better communication and tracking.

Get All Notes

Retrieve all notes for a specific deal.

GET /api/public-v1/sales-pipeline/{uuid}/deal/{id}/note

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID

Example Request

curl -X GET "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/note" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json"

Example Response

{
  "data": [
    {
      "id": 1,
      "description": "Initial client contact went well. They seem interested in our services.",
      "createdBy": {
        "id": 8,
        "name": "Sarah Johnson",
        "email": "sarah@company.com"
      },
      "createdAt": "Mon 15 2024 02:30PM"
    },
    {
      "id": 2,
      "description": "Follow-up meeting scheduled for next week to discuss project details.",
      "createdBy": {
        "id": 5,
        "name": "Manager Name",
        "email": "manager@company.com"
      },
      "createdAt": "Tue 16 2024 10:15AM"
    }
  ],
  "status": 200
}

Create a Note

Create a new note for a deal.

POST /api/public-v1/sales-pipeline/{uuid}/deal/{id}/note

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID

Request Body

FieldTypeRequiredDescription
descriptionstringYesNote content/description

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/note" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Client expressed interest in premium package. Need to send detailed proposal."
  }'

Example Response

{
  "msg": "Notes Added Successfully",
  "data": {
    "id": 3,
    "description": "Client expressed interest in premium package. Need to send detailed proposal.",
    "createdBy": {
      "id": 8,
      "name": "Sarah Johnson",
      "email": "sarah@company.com"
    },
    "createdAt": "Wed 17 2024 03:45PM"
  }
}

Update a Note

Update an existing note.

PUT /api/public-v1/sales-pipeline/{uuid}/deal/{id}/note/{note_id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID
note_idintegerYesNote ID

Request Body

FieldTypeRequiredDescription
descriptionstringYesUpdated note content/description

Example Request

curl -X PUT "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/note/3" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Client confirmed interest in premium package. Proposal sent and waiting for response."
  }'

Example Response

{
  "msg": "Notes Updated Successfully",
  "data": {
    "id": 3,
    "description": "Client confirmed interest in premium package. Proposal sent and waiting for response.",
    "createdBy": {
      "id": 8,
      "name": "Sarah Johnson",
      "email": "sarah@company.com"
    },
    "createdAt": "Wed 17 2024 03:45PM"
  }
}

Delete a Note

Delete a specific note.

DELETE /api/public-v1/sales-pipeline/{uuid}/deal/{id}/note/{note_id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID
note_idintegerYesNote ID

Example Request

curl -X DELETE "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/note/3" \
  -H "X-Secret-Key: your-secret-key-here"

Example Response

{
  "msg": "Notes Deleted Successfully"
}

Note Bulk Actions

Perform bulk operations on notes.

POST /api/public-v1/sales-pipeline/{uuid}/deal/{id}/note/bulk-actions

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesSales pipeline UUID
idintegerYesDeal ID

Request Body

FieldTypeRequiredDescription
idsarrayYesArray of note IDs to delete
actionstringYesAction to perform (e.g., "delete")

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/abc123def456/deal/1/note/bulk-actions" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "ids": [1, 2, 3],
    "action": "delete"
  }'

Example Response

{
  "msg": "Notes Deleted Successfully"
}

Attribute Management

Manage custom attributes for the sales pipeline system. Attributes allow you to create custom fields and properties that can be used to categorize and filter deals, stages, and other pipeline elements.

Get All Attributes

Retrieve all sales pipeline attributes.

GET /api/public-v1/sales-pipeline/attributes

Example Request

curl -X GET "https://public-api.taskip.net/api/public-v1/sales-pipeline/attributes" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json"

Example Response

{
  "data": [
    {
      "id": 1,
      "title": "Priority Level",
      "color": "#FF5722",
      "status": "active",
      "type": "priority"
    },
    {
      "id": 2,
      "title": "Industry Type",
      "color": "#2196F3",
      "status": "active",
      "type": "category"
    },
    {
      "id": 3,
      "title": "Deal Source",
      "color": "#4CAF50",
      "status": "active",
      "type": "source"
    }
  ],
  "status": 200
}

Create an Attribute

Create a new sales pipeline attribute.

POST /api/public-v1/sales-pipeline/attributes

Request Body

FieldTypeRequiredDescription
titlestringYesAttribute title/name (max 191 chars)
colorstringYesAttribute color (max 191 chars)
typestringYesAttribute type (max 191 chars)

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/attributes" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Company Size",
    "color": "#9C27B0",
    "type": "category"
  }'

Example Response

{
  "msg": "Attribute Created Successfully",
  "data": {
    "id": 4,
    "title": "Company Size",
    "color": "#9C27B0",
    "status": "active",
    "type": "category"
  }
}

Get a Specific Attribute

Retrieve details of a specific attribute.

GET /api/public-v1/sales-pipeline/attributes/{id}

Path Parameters

ParameterTypeRequiredDescription
idintegerYesAttribute ID

Example Request

curl -X GET "https://public-api.taskip.net/api/public-v1/sales-pipeline/attributes/1" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json"

Example Response

{
  "data": {
    "id": 1,
    "title": "Priority Level",
    "color": "#FF5722",
    "status": "active",
    "type": "priority"
  },
  "status": 200
}

Update an Attribute

Update an existing attribute.

PUT /api/public-v1/sales-pipeline/attributes/{id}

Path Parameters

ParameterTypeRequiredDescription
idintegerYesAttribute ID

Request Body

FieldTypeRequiredDescription
titlestringYesAttribute title/name (max 191 chars)
colorstringYesAttribute color (max 191 chars)
typestringYesAttribute type (max 191 chars)

All fields are required for updates (same validation as create).

Example Request

curl -X PUT "https://public-api.taskip.net/api/public-v1/sales-pipeline/attributes/1" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "High Priority Level",
    "color": "#F44336",
    "type": "priority"
  }'

Example Response

{
  "msg": "Update Success"
}

Delete an Attribute

Delete a specific attribute.

DELETE /api/public-v1/sales-pipeline/attributes/{id}

Path Parameters

ParameterTypeRequiredDescription
idintegerYesAttribute ID

Example Request

curl -X DELETE "https://public-api.taskip.net/api/public-v1/sales-pipeline/attributes/1" \
  -H "X-Secret-Key: your-secret-key-here"

Example Response

{
  "msg": "Delete Success"
}

Attribute Bulk Actions

Perform bulk operations on attributes.

POST /api/public-v1/sales-pipeline/attributes/bulk-actions

Request Body

FieldTypeRequiredDescription
idsarrayYesArray of attribute IDs
actionstringYesAction to perform (e.g., "delete")

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/sales-pipeline/attributes/bulk-actions" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "ids": [1, 2, 3],
    "action": "delete"
  }'

Example Response

{
  "msg": "Delete Success"
}

Additional Modules

Due to the comprehensive nature of the Sales Pipeline API with 50+ endpoints, the remaining modules (Activities) follow similar patterns to the above examples.

Quick Reference for Remaining Endpoints

Activity Management

All activity endpoints follow the pattern:

  • GET/POST/PUT/DELETE /api/public-v1/sales-pipeline/{uuid}/deal/{id}/activity[/{activity_id}]
  • Special actions: /activity/bulk-actions, /activity/send-mail

Standard Response Patterns

All endpoints follow these consistent response patterns:

Success Responses

  • Create/Update/Delete operations: {"msg": "Operation completed successfully", "status": 200/201}
  • Get single resource: Returns the resource object directly
  • Get multiple resources: {"data": [...], "status": 200}

Request Patterns

  • All endpoints require the X-Secret-Key header
  • UUID parameters refer to the sales pipeline UUID
  • ID parameters are integer values
  • Bulk actions require arrays of IDs and an action type

For detailed examples of any specific endpoint not covered above, please refer to the patterns established in the Pipeline, Deals, and Stage sections, or contact support for additional documentation.