---
title: "Update Contact"
method: PUT
path: "/contacts/{id}"
tags: ["Contact"]
---

# Update Contact

`PUT /contacts/{id}`

Update a contact

## Path parameters

- `id` string, required

## Query parameters

- `expand[]` string[]

## Request body

- object
  - `contact` ContactParametersUpdate — Contacts
    - `email_address` string, nullable — Email address
    - `first_name` string, nullable — First name
    - `last_name` string, nullable — Last name
    - `phone_number` string, nullable — Phone number
    - `time_zone` string, nullable — The human-readable time zone, usually set dynamically by the app for the contact, for example, during opt-in. Read more about time zones and how to map them back to the TZ standard in [our Time Zones guide.](https://dash.readme.com/project/cf2/v2/docs/timezones).
    - `fb_url` string, nullable — Facebook URL
    - `twitter_url` string, nullable — Twitter URL
    - `instagram_url` string, nullable — Instagram URL
    - `linkedin_url` string, nullable — LinkedIn URL
    - `website_url` string, nullable — Website URL
    - `tag_ids` integer[] — Contact Tag IDs. Any valid array, empty or with valid tags will overwrite existing values. To avoid losing existing tags first use the Fetch Contact endpoint, then be sure to include the existing tags in your payload along with any new addition(s).
    - `custom_attributes` object — Custom attributes are usually added in ClickFunnels to a contact when they submit forms that contain custom contact attributes. Here you can directly create them during contact modification. Custom attributes are provided as key-value pairs: A key that does not exist, will create a new custom contact attribute. A key that already exists, will update the value of an existing custom contact attribute. Empty or null values, will set the custom attribute values to empty strings. A key that has special characters or spaces will be automatically converted to `snake_case` (For example, 'Favorite Food! 🥑' will be converted to 'favorite_food'). Empty keys will trigger a bad request response. Also, non-object inputs for custom_attributes (e.g. an array or string), it will be ignored. Keys that are default properties on the Contact resource or variations of it will result in an error. E.g., 'first_name', 'First Name', etc. are not valid inputs.

## Response `200`

OK

- ContactAttributes — Contacts
  - `id` integer — Contact ID
  - `public_id` string — Contact public ID
  - `workspace_id` integer — Workspace ID
  - `anonymous` integer, nullable — Anonymous
  - `email_address` string, nullable — The contact's email address. It is currently not expected to be null and is the main identifier for a contact.
  - `first_name` string, nullable — First name
  - `last_name` string, nullable — Last name
  - `phone_number` string, nullable — Phone number
  - `time_zone` string, nullable — The human-readable time zone, usually set dynamically by the app for the contact, for example, during opt-in. Read more about time zones and how to map them back to the TZ standard in [our Time Zones guide.](https://dash.readme.com/project/cf2/v2/docs/timezones).
  - `uuid` string — UUID
  - `unsubscribed_at` string, nullable — Unsubscribed
  - `last_notification_email_sent_at` string, nullable — Last notification email sent
  - `email_suppression_reason` string, nullable — The reason the contact's email address is suppressed from receiving emails. Null when no suppression exists.
  - `is_active` boolean — Whether the contact is active. A contact is considered active when they have a valid email address, have not unsubscribed, have not been deleted, and have no email suppression reason.
  - `fb_url` string, nullable — Facebook URL
  - `twitter_url` string, nullable — Twitter URL
  - `instagram_url` string, nullable — Instagram URL
  - `linkedin_url` string, nullable — LinkedIn URL
  - `website_url` string, nullable — Website URL
  - `created_at` string, date-time — Date added
  - `updated_at` string, date-time — Last updated
  - `tags` object[], nullable — Contact Tags
    - `id` integer — Tag ID
    - `public_id` string — Tag public ID
    - `name` string — Name
    - `color` string — Color
    - `applied_at` string, nullable — The datetime the tag was applied by creating a Contacts::AppliedTag that maps the tag to the contact.
  - `custom_attributes` object — A dynamic key-value pair object where both the key and value are strings. Custom attributes are usually added to the contact when they submit forms that contain custom contact attributes. But you can also add them via the API using the modifying endpoints like Create/Update/Upsert Contact.
  - `visits` VisitsAttributes — Collection of visit tracking records for a contact, including first visit, last visit, and last visit with UTM parameters
    - `first_visit` VisitAttributes — Visit tracking information including UTM parameters and device data
      - `uuid` string — Unique identifier for the visit
      - `utm_source` string, nullable — UTM source parameter from the visit URL
      - `utm_medium` string, nullable — UTM medium parameter from the visit URL
      - `utm_campaign` string, nullable — UTM campaign parameter from the visit URL
      - `utm_term` string, nullable — UTM term parameter from the visit URL
      - `utm_content` string, nullable — UTM content parameter from the visit URL
      - `ip` string, nullable — IP address of the visitor
      - `user_agent` string, nullable — User agent string from the visitor's browser
      - `referrer` string, nullable — HTTP referrer URL
      - `referring_domain` string, nullable — Domain extracted from the referrer URL
      - `landing_page` string, nullable — The first page URL visited in this session
      - `browser` string, nullable — Browser name detected from user agent
      - `os` string, nullable — Operating system detected from user agent
      - `device_type` string, nullable — Device type (e.g., desktop, mobile, tablet)
      - `started_at` string, date-time, nullable — Timestamp when the visit session started
      - `created_at` string, date-time — Timestamp when the visit record was created
      - `updated_at` string, date-time — Timestamp when the visit record was last updated
    - `last_visit` VisitAttributes — Visit tracking information including UTM parameters and device data
      - `uuid` string — Unique identifier for the visit
      - `utm_source` string, nullable — UTM source parameter from the visit URL
      - `utm_medium` string, nullable — UTM medium parameter from the visit URL
      - `utm_campaign` string, nullable — UTM campaign parameter from the visit URL
      - `utm_term` string, nullable — UTM term parameter from the visit URL
      - `utm_content` string, nullable — UTM content parameter from the visit URL
      - `ip` string, nullable — IP address of the visitor
      - `user_agent` string, nullable — User agent string from the visitor's browser
      - `referrer` string, nullable — HTTP referrer URL
      - `referring_domain` string, nullable — Domain extracted from the referrer URL
      - `landing_page` string, nullable — The first page URL visited in this session
      - `browser` string, nullable — Browser name detected from user agent
      - `os` string, nullable — Operating system detected from user agent
      - `device_type` string, nullable — Device type (e.g., desktop, mobile, tablet)
      - `started_at` string, date-time, nullable — Timestamp when the visit session started
      - `created_at` string, date-time — Timestamp when the visit record was created
      - `updated_at` string, date-time — Timestamp when the visit record was last updated
    - `last_visit_with_utm` VisitAttributes — Visit tracking information including UTM parameters and device data
      - `uuid` string — Unique identifier for the visit
      - `utm_source` string, nullable — UTM source parameter from the visit URL
      - `utm_medium` string, nullable — UTM medium parameter from the visit URL
      - `utm_campaign` string, nullable — UTM campaign parameter from the visit URL
      - `utm_term` string, nullable — UTM term parameter from the visit URL
      - `utm_content` string, nullable — UTM content parameter from the visit URL
      - `ip` string, nullable — IP address of the visitor
      - `user_agent` string, nullable — User agent string from the visitor's browser
      - `referrer` string, nullable — HTTP referrer URL
      - `referring_domain` string, nullable — Domain extracted from the referrer URL
      - `landing_page` string, nullable — The first page URL visited in this session
      - `browser` string, nullable — Browser name detected from user agent
      - `os` string, nullable — Operating system detected from user agent
      - `device_type` string, nullable — Device type (e.g., desktop, mobile, tablet)
      - `started_at` string, date-time, nullable — Timestamp when the visit session started
      - `created_at` string, date-time — Timestamp when the visit record was created
      - `updated_at` string, date-time — Timestamp when the visit record was last updated

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found

---

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