---
title: "Update existing goal"
method: PUT
path: "/goals/{id}"
tags: ["Goals"]
---

# Update existing goal

`PUT /goals/{id}`

Updates an existing goal.

## Path parameters

- `id` string, required

## Request body

- object
  - `title` string — The title of the goal
  - `assignee` object — Who this goal is assigned to. It requires the following JSON structure: `{ "id": "1", "type": "person" }`. `type` can be either `person`, `company` or `team`. ID of the assignee person, company or team.
  - `type` object — The type of the goal. It requires the following JSON structure: `{ "name": "deals_started", "params": { "pipeline_id": [1, 2], "activity_type_id": [9] } }`. Type can be one of: `deals_won`, `deals_progressed`, `activities_completed`, `activities_added`, `deals_started` or `revenue_forecast`. `params` can include `pipeline_id`, `stage_id` or `activity_type_id`. `stage_id` is related to only `deals_progressed` type of goals and `activity_type_id` to `activities_completed` or `activities_added` types of goals. The `pipeline_id` and `activity_type_id` need to be given as an array of integers. To track the goal in all pipelines, set `pipeline_id` as `null` and similarly, to track the goal for all activities, set `activity_type_id` as `null`.”
  - `expected_outcome` object — The expected outcome of the goal. Expected outcome can be tracked either by `quantity` or by `sum`. It requires the following JSON structure: `{ "target": "50", "tracking_metric": "quantity" }` or `{ "target": "50", "tracking_metric": "sum", "currency_id": 1 }`. `currency_id` should only be added to `sum` type of goals.
  - `duration` object — The date when the goal starts and ends. It requires the following JSON structure: `{ "start": "2019-01-01", "end": "2022-12-31" }`. Date in format of YYYY-MM-DD. "end" can be set to `null` for an infinite, open-ended goal.
  - `interval` 'weekly' | 'monthly' | 'quarterly' | 'yearly' — The interval of the goal

## Response `200`

Successful response containing payload in the `data.goal` object

- object
  - `success` boolean — If the request was successful or not
  - `data` object
    - `goal` object
      - `id` string — The ID of the goal
      - `owner_id` integer — The ID of the creator of the goal
      - `title` string — The title of the goal
      - `type` object — The type of the goal
        - `name` string — The name of the goal type
        - `params` object — The parameters that accompany the goal type
          - `pipeline_id` integer[] — The IDs of pipelines of the goal
          - `activity_type_id` integer[] — The IDs of activity types of the goal
      - `assignee` object — Who the goal is assigned to
        - `id` integer — The ID of the goal assignee
        - `type` string — The type of the assignee
      - `interval` string — The interval of the goal
      - `duration` object — The duration of the goal
        - `start` string — The start date of the goal
        - `end` string — The end date of the goal
      - `expected_outcome` object — The expected outcome of the goal
        - `target` integer — The numeric target of the goal
        - `tracking_metric` string — The tracking metric of the goal
      - `is_active` boolean — Whether the goal is currently active or not
      - `report_ids` string[] — The IDs of the reports that belong to the goal

---

[API](https://skmtc.net/pipedrive/apis/pipedrive-api-v1.md) · [All operations](https://skmtc.net/pipedrive/apis/pipedrive-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pipedrive/pipedrive-api-v1/revisions/bf863a979545/schema)
