Members

The members resource manages project memberships for individuals, ensuring memberships stay in sync with account roles. It integrates with role-based events—creating or deleting project memberships when roles like lead are assigned or removed—while providing flexible membership management and filtering capabilities.

Endpoints


get/api/v3/workflow/members

Return a paginated list of workflow/project/members

Input Schema

object
page?:
object
The page number, default to 1
number?: integer
The number of items per page, default to 1000
size?: integer
The sort order, comma separated list of fields. See sorting section for more details
sort?: string
Set to true to return the total number of items in the collection
count?: boolean
filter?:
object
id?: unknown
project_id?: unknown
person_id?: unknown
account_id?: unknown
actor_roles?: unknown
first_name?: unknown
middle_name?: unknown
last_name?: unknown
picture_url?: unknown
is_supervisor?: unknown
created_at?: unknown
updated_at?: unknown
account_id__in?: unknown
search__match?: unknown
project_id?: unknown
is_supervisor?: unknown
actor_roles__contains?: unknown
The related resources to include in the response. Allowed resources are:
- `project`
included?:
array
Elements: string
The fields to include in the response.
The key is the resource type and the value is an array of fields.
fields?:
dictionary
Values: array

Typescript

type InputSchema = {
  page?: {
    // The page number, default to 1
    number?: number;
    // The number of items per page, default to 1000
    size?: number;
  };
  // The sort order, comma separated list of fields. See sorting section for more details
  sort?: string;
  // Set to true to return the total number of items in the collection
  count?: boolean;
  filter?: {
    id?: any;
    project_id?: any;
    person_id?: any;
    account_id?: any;
    actor_roles?: any;
    first_name?: any;
    middle_name?: any;
    last_name?: any;
    picture_url?: any;
    is_supervisor?: any;
    created_at?: any;
    updated_at?: any;
    account_id__in?: any;
    search__match?: any;
    project_id?: any;
    is_supervisor?: any;
    actor_roles__contains?: any;
  };
  // The related resources to include in the response. Allowed resources are:
  // - `project`
  included?: Array<string>;
  // The fields to include in the response.
  // The key is the resource type and the value is an array of fields.
  fields?: { [key: string]: Array<any> };
};

Output Schema

object
data:
array
Elements:
object
type: string
id?: string
attributes?:
object
id?: integer
person_id?: integer
account_id?: integer
actor_roles?: array
first_name?: string
middle_name?: string
last_name?: string
picture_url?: string or null
is_supervisor?: boolean
created_at?: datetime
updated_at?: datetime
relationships?: open struct
included?:
array
Elements: open struct

Typescript

type OutputSchema = {
  data: Array<{
    type: string;
    id?: string;
    attributes?: {
      id?: number;
      person_id?: number;
      account_id?: number;
      actor_roles?: Array<any>;
      first_name?: string;
      middle_name?: string;
      last_name?: string;
      picture_url?: string | null;
      is_supervisor?: boolean;
      created_at?: Date;
      updated_at?: Date;
    };
    relationships?: Record<string, any>;
  }>;
  included?: Array<Record<string, any>>;
};


post/api/v3/workflow/members

Create a new workflow/project/members

Input Schema

object
data:
object
type: string
attributes:
object
id?: integer
person_id?: integer
account_id?: integer
actor_roles?: array
first_name?: string
middle_name?: string
last_name?: string
picture_url?: string or null
is_supervisor?: boolean
created_at?: datetime
updated_at?: datetime
relationships?:
object
project:
object
data:
object
type: string
id?: string

Typescript

type InputSchema = {
  data: {
    type: string;
    attributes: {
      id?: number;
      person_id?: number;
      account_id?: number;
      actor_roles?: Array<any>;
      first_name?: string;
      middle_name?: string;
      last_name?: string;
      picture_url?: string | null;
      is_supervisor?: boolean;
      created_at?: Date;
      updated_at?: Date;
    };
    relationships?: { project: { data: { type: string; id?: string } } };
  };
};


delete/api/v3/workflow/members/:resource_id

Delete the workflow/project/members

Input Schema

object
resource_id: integer

Typescript

type InputSchema = { resource_id: number };


get/api/v3/workflow/members/:resource_id

Show a specific workflow/project/members

Input Schema

object
resource_id: integer
included?:
array
Elements: string
fields?:
dictionary
Values: array

Typescript

type InputSchema = {
  resource_id: number;
  included?: Array<string>;
  fields?: { [key: string]: Array<any> };
};

Output Schema

object
data:
object
type: string
id?: string
attributes?:
object
id?: integer
person_id?: integer
account_id?: integer
actor_roles?: array
first_name?: string
middle_name?: string
last_name?: string
picture_url?: string or null
is_supervisor?: boolean
created_at?: datetime
updated_at?: datetime
relationships?: open struct
included?:
array
Elements: open struct

Typescript

type OutputSchema = {
  data: {
    type: string;
    id?: string;
    attributes?: {
      id?: number;
      person_id?: number;
      account_id?: number;
      actor_roles?: Array<any>;
      first_name?: string;
      middle_name?: string;
      last_name?: string;
      picture_url?: string | null;
      is_supervisor?: boolean;
      created_at?: Date;
      updated_at?: Date;
    };
    relationships?: Record<string, any>;
  };
  included?: Array<Record<string, any>>;
};


patch/api/v3/workflow/members/:resource_id

Update a workflow/project/members

Input Schema

object
resource_id: integer
data:
object
type: string
attributes:
object
id?: integer
person_id?: integer
account_id?: integer
actor_roles?: array
first_name?: string
middle_name?: string
last_name?: string
picture_url?: string or null
is_supervisor?: boolean
created_at?: datetime
updated_at?: datetime

Typescript

type InputSchema = {
  resource_id: number;
  data: {
    type: string;
    attributes: {
      id?: number;
      person_id?: number;
      account_id?: number;
      actor_roles?: Array<any>;
      first_name?: string;
      middle_name?: string;
      last_name?: string;
      picture_url?: string | null;
      is_supervisor?: boolean;
      created_at?: Date;
      updated_at?: Date;
    };
  };
};


get/api/v3/workflow/members/availability

Get availability information for project members.

This endpoint returns the availability status of project members for each day in the specified date range. It takes into account employee schedules, holidays, and approved leave requests.

By default, it returns availability for non-supervisor members, but can be configured to return availability for supervisors by setting the is_supervisor parameter to true.

You can also filter by project_id to get availability only for members of a specific project.

The date range is limited to a maximum of 90 days.

Input Schema

object
filter:
object
from: date
to: date
is_supervisor?: boolean
project_id?: integer

Typescript

type InputSchema = {
  filter: {
    from: Date;
    to: Date;
    is_supervisor?: boolean;
    project_id?: number;
  };
};