Skip to main content
Page through the people attributed to a single channel. Combine filters to slice the roster, then pipe to jq or save the result as JSON. The dashboard channel-detail page shows the same people.

Synopsis

talkvalue path channel people <channelId> [options]

Arguments

ArgumentTypeDescription
<channelId>integerChannel ID. Use channel list to find one.

Options

FlagTypeDescription
--keyword <keyword>stringFree-text match against name, email, phone, company, and job title.
--event-id <id>integer (repeatable)Limit to people also registered for the given event. Repeat to OR multiple.
--company-id <id>integerLimit by company ID.
--company-name <name>stringLimit by company display name.
--job-title <title>stringLimit by job title.
--page <n>integerPage number (zero-indexed). Defaults to 0.
--page-size <n>integerPage size. Defaults to the server default.
--sort <value>string (repeatable)Sort expression field,direction (for example, joinedAt,desc). Repeat for secondary sorts.

Examples

1. Browse the latest people on a channel

talkvalue path channel people 7 --sort "joinedAt,desc" --page-size 20
Prints the 20 most recent people on channel 7 as a table: ID, name, email, phone, company, job title, joined-at.

2. Filter by event and pipe to jq

talkvalue path channel people 7 \
  --event-id 18 \
  --json \
  | jq '.data[] | {name, primaryEmail, jobTitle}'
Returns people on channel 7 who also registered for event 18, projected to three fields. The --json envelope also carries .pagination.

3. Walk every page in a script

page=0
while :; do
  resp=$(talkvalue path channel people 7 --page "$page" --page-size 100 --json)
  echo "$resp" | jq -e '.data | length > 0' >/dev/null || break
  echo "$resp" | jq '.data[]'
  page=$((page + 1))
done
Loops until a page returns no rows. See Scripting with jq for richer pagination patterns.

Response

{
  "data": [
    {
      "id": 142,
      "name": "Alice Kim",
      "primaryEmail": "alice@acme.com",
      "primaryPhone": "+1-415-555-0199",
      "company": { "id": 88, "displayName": "Acme Inc.", "domain": "acme.com", "nameUpdatable": true },
      "jobTitle": "Head of Growth",
      "channels": [/* … */],
      "events": [/* … */],
      "joinedAt": "2026-04-12T00:00:00Z",
      "createdAt": "2026-04-12T00:00:00Z"
    }
  ],
  "pagination": { "page": 0, "pageSize": 20, "totalElements": 1843, "totalPages": 93 }
}
pagination appears only in --json. joinedAt for a channel is when the person was first attributed to it, not when they last engaged.

See also