Skip to content

Update a channel

client.Channel.Update(ctx, id, body) (*ChannelUpdateResponse, error)
POST/v1/channels/{id}

Updates $includeInCrm on a channel the caller can see. Only the channel owner — the member whose connected LinkedIn or WhatsApp account owns the DM — can change this. Anyone else receives 403.

Supports idempotency via the Idempotency-Key header.

Required scope: channels:update

Rate limit category: Write

ParametersExpand Collapse
id string

Unique identifier of the channel to update.

body ChannelUpdateParams
Fields param.Field[ChannelUpdateParamsFields]

Field values to update — only provided fields are modified. $includeInCrm is the only writable channel field. See Fields and relationships for value type details.

IncludeInCRM bool

Whether this DM should appear in the CRM. Only the channel owner can change this.

ReturnsExpand Collapse
type ChannelUpdateResponse struct{…}
ID string

Unique identifier for the entity.

CreatedAt string

ISO 8601 timestamp of when the entity was created.

Fields map[string, ChannelUpdateResponseField]

Map of field names to their typed values. System fields are prefixed with $ (e.g. $name, $email); custom attributes use their bare slug.

Value ChannelUpdateResponseFieldValueUnion

The field value, or null if unset.

One of the following:
string
float64
bool
type ChannelUpdateResponseFieldValueArray []string
type ChannelUpdateResponseFieldValueAddress struct{…}
City stringOptional

City name.

Country stringOptional

2-letter ISO 3166-1 alpha-2 country code.

Latitude float64Optional

Latitude coordinate.

Longitude float64Optional

Longitude coordinate.

PostalCode stringOptional

Postal or ZIP code.

State stringOptional

State or province.

Street stringOptional

Street address line 1.

Street2 stringOptional

Street address line 2.

type ChannelUpdateResponseFieldValueFullName struct{…}
FirstName stringOptional

The contact’s first name.

LastName stringOptional

The contact’s last name.

ValueType string

The data type of the field.

One of the following:
const ChannelUpdateResponseFieldValueTypeAddress ChannelUpdateResponseFieldValueType = "ADDRESS"
const ChannelUpdateResponseFieldValueTypeCheckbox ChannelUpdateResponseFieldValueType = "CHECKBOX"
const ChannelUpdateResponseFieldValueTypeCurrency ChannelUpdateResponseFieldValueType = "CURRENCY"
const ChannelUpdateResponseFieldValueTypeDatetime ChannelUpdateResponseFieldValueType = "DATETIME"
const ChannelUpdateResponseFieldValueTypeEmail ChannelUpdateResponseFieldValueType = "EMAIL"
const ChannelUpdateResponseFieldValueTypeFullName ChannelUpdateResponseFieldValueType = "FULL_NAME"
const ChannelUpdateResponseFieldValueTypeMarkdown ChannelUpdateResponseFieldValueType = "MARKDOWN"
const ChannelUpdateResponseFieldValueTypeMultiSelect ChannelUpdateResponseFieldValueType = "MULTI_SELECT"
const ChannelUpdateResponseFieldValueTypeNumber ChannelUpdateResponseFieldValueType = "NUMBER"
const ChannelUpdateResponseFieldValueTypeSingleSelect ChannelUpdateResponseFieldValueType = "SINGLE_SELECT"
const ChannelUpdateResponseFieldValueTypeSocialHandle ChannelUpdateResponseFieldValueType = "SOCIAL_HANDLE"
const ChannelUpdateResponseFieldValueTypeTelephone ChannelUpdateResponseFieldValueType = "TELEPHONE"
const ChannelUpdateResponseFieldValueTypeText ChannelUpdateResponseFieldValueType = "TEXT"
const ChannelUpdateResponseFieldValueTypeURL ChannelUpdateResponseFieldValueType = "URL"
const ChannelUpdateResponseFieldValueTypeHTML ChannelUpdateResponseFieldValueType = "HTML"
ObjectType ChannelUpdateResponseObjectType

Always channel.

Relationships map[string, ChannelUpdateResponseRelationship]

Map of relationship names to their associated entities. System relationships are prefixed with $ (e.g. $owner, $contact). A self-referential relationship keeps its merged values and includes optional directional values. List filters select the current record’s role with :asSource or :asDestination, for example ?parent:asSource[contains]=account_id.

Cardinality string

Whether the relationship is has_one or has_many.

ObjectType string

The type of the related object (e.g. account, contact).

Values []string

IDs of the related entities.

Directions ChannelUpdateResponseRelationshipDirectionsOptional

Directional values for a self-referential relationship. List filters use the relationship key with :asSource or :asDestination; writes continue to use the bare key.

AsDestination ChannelUpdateResponseRelationshipDirectionsAsDestination

The current record is the destination (incoming) endpoint.

Cardinality string

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
const ChannelUpdateResponseRelationshipDirectionsAsDestinationCardinalityHasOne ChannelUpdateResponseRelationshipDirectionsAsDestinationCardinality = "HAS_ONE"
const ChannelUpdateResponseRelationshipDirectionsAsDestinationCardinalityHasMany ChannelUpdateResponseRelationshipDirectionsAsDestinationCardinality = "HAS_MANY"
Values []string

IDs of the related entities in this direction.

AsSource ChannelUpdateResponseRelationshipDirectionsAsSource

The current record is the source (outgoing) endpoint.

Cardinality string

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
const ChannelUpdateResponseRelationshipDirectionsAsSourceCardinalityHasOne ChannelUpdateResponseRelationshipDirectionsAsSourceCardinality = "HAS_ONE"
const ChannelUpdateResponseRelationshipDirectionsAsSourceCardinalityHasMany ChannelUpdateResponseRelationshipDirectionsAsSourceCardinality = "HAS_MANY"
Values []string

IDs of the related entities in this direction.

UpdatedAt string

ISO 8601 timestamp of when the entity was last updated, or null.

ExternalID stringOptional

External identifier for the entity, or null if unset.

Update a channel

package main

import (
  "context"
  "fmt"

  "github.com/Lightfld/lightfield-go"
  "github.com/Lightfld/lightfield-go/option"
)

func main() {
  client := githubcomlightfldlightfieldgo.NewClient(
    option.WithAPIKey("My API Key"),
  )
  channelUpdateResponse, err := client.Channel.Update(
    context.TODO(),
    "id",
    githubcomlightfldlightfieldgo.ChannelUpdateParams{
      Fields: githubcomlightfldlightfieldgo.ChannelUpdateParamsFields{
        IncludeInCRM: true,
      },
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", channelUpdateResponse.ID)
}
{
  "id": "chn_cm2def456ghi789",
  "createdAt": "2026-05-01T09:00:00.000Z",
  "fields": {
    "$name": {
      "value": "acme-deal-room",
      "valueType": "TEXT"
    },
    "$provider": {
      "value": "SLACK",
      "valueType": "TEXT"
    },
    "$isPublic": {
      "value": false,
      "valueType": "CHECKBOX"
    },
    "$providerChannelId": {
      "value": "C0123456789",
      "valueType": "TEXT"
    },
    "$providerCreatedAt": {
      "value": "2026-04-20T14:30:00.000Z",
      "valueType": "DATETIME"
    },
    "$includeInCrm": {
      "value": "string",
      "valueType": "CHECKBOX"
    }
  },
  "httpLink": null,
  "objectType": "channel",
  "relationships": {
    "account-slack-channel": {
      "cardinality": "has_many",
      "objectType": "account",
      "values": [
        "acc_cm0abc123def456"
      ],
      "directions": {
        "asDestination": {
          "cardinality": "HAS_ONE",
          "values": [
            "string"
          ]
        },
        "asSource": {
          "cardinality": "HAS_ONE",
          "values": [
            "string"
          ]
        }
      }
    },
    "opportunity-slack-channel": {
      "cardinality": "has_many",
      "objectType": "opportunity",
      "values": [
        "opp_cm1xyz456uvw789"
      ],
      "directions": {
        "asDestination": {
          "cardinality": "HAS_ONE",
          "values": [
            "string"
          ]
        },
        "asSource": {
          "cardinality": "HAS_ONE",
          "values": [
            "string"
          ]
        }
      }
    }
  },
  "updatedAt": "2026-05-01T09:00:00.000Z",
  "externalId": "externalId"
}
Returns Examples
{
  "id": "chn_cm2def456ghi789",
  "createdAt": "2026-05-01T09:00:00.000Z",
  "fields": {
    "$name": {
      "value": "acme-deal-room",
      "valueType": "TEXT"
    },
    "$provider": {
      "value": "SLACK",
      "valueType": "TEXT"
    },
    "$isPublic": {
      "value": false,
      "valueType": "CHECKBOX"
    },
    "$providerChannelId": {
      "value": "C0123456789",
      "valueType": "TEXT"
    },
    "$providerCreatedAt": {
      "value": "2026-04-20T14:30:00.000Z",
      "valueType": "DATETIME"
    },
    "$includeInCrm": {
      "value": "string",
      "valueType": "CHECKBOX"
    }
  },
  "httpLink": null,
  "objectType": "channel",
  "relationships": {
    "account-slack-channel": {
      "cardinality": "has_many",
      "objectType": "account",
      "values": [
        "acc_cm0abc123def456"
      ],
      "directions": {
        "asDestination": {
          "cardinality": "HAS_ONE",
          "values": [
            "string"
          ]
        },
        "asSource": {
          "cardinality": "HAS_ONE",
          "values": [
            "string"
          ]
        }
      }
    },
    "opportunity-slack-channel": {
      "cardinality": "has_many",
      "objectType": "opportunity",
      "values": [
        "opp_cm1xyz456uvw789"
      ],
      "directions": {
        "asDestination": {
          "cardinality": "HAS_ONE",
          "values": [
            "string"
          ]
        },
        "asSource": {
          "cardinality": "HAS_ONE",
          "values": [
            "string"
          ]
        }
      }
    }
  },
  "updatedAt": "2026-05-01T09:00:00.000Z",
  "externalId": "externalId"
}