Skip to main content
Glama

Search workspace members

search_workspace_members
Read-only

Search and filter members in a workspace. Input shape: workspace_id (required root param, auto-injected), filter_groups (optional), sort (optional), page (0-based, default 0), page_size (default 20, max 100). When filter_groups is omitted, returns all members. field and operator are enums — always pass exact enum strings. Primary filters: WORKSPACE_MEMBER_FILTER_FIELD_NAME→CONTAINS or EQUALS; WORKSPACE_MEMBER_FILTER_FIELD_ROLE→IN; WORKSPACE_MEMBER_FILTER_FIELD_EMAIL→CONTAINS or EQUALS. Also supports USER_ID, LINKEDIN_ID, CREATED_AT, Super Connector consent fields, CATEGORY→IN, and TITLE→REGEX (current job title(s), regex match). Sortable: CREATED_AT, NAME, EMAIL, ROLE. Response includes a categories array (id, label, value) per member, and for Super Connectors super_connector_state (ACTIVE / DORMANT) plus the effective super_connector_dormant flag; filter SC_STATE→IN ['DORMANT'] lists the parked Super Connectors; activate one with add_role (role [SUPER_CONNECTOR], super_connector_state ACTIVE).

Use when: Use for ANY workspace member lookup. Decision guide — (1) List all members: omit filter_groups (workspace_id only). (2) Find by name substring: WORKSPACE_MEMBER_FILTER_FIELD_NAME + WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS e.g. ['smith']. (3) Find by exact name: WORKSPACE_MEMBER_FILTER_FIELD_NAME + WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS e.g. ['John Smith']. (4) Find by role: WORKSPACE_MEMBER_FILTER_FIELD_ROLE + WORKSPACE_MEMBER_FILTER_OPERATOR_IN e.g. ['SUPER_CONNECTOR'] or ['ADMIN']. (5) Find by email substring/domain: WORKSPACE_MEMBER_FILTER_FIELD_EMAIL + WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS e.g. ['@acme.com']. (6) Find by exact email: WORKSPACE_MEMBER_FILTER_FIELD_EMAIL + WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS e.g. ['jane@acme.com']. (7) Find by category: WORKSPACE_MEMBER_FILTER_FIELD_CATEGORY + WORKSPACE_MEMBER_FILTER_OPERATOR_IN — pass one or more WorkspaceMemberCategoryName display values e.g. ['Leadership'] or ['Board','Investors']. Valid values: 'Leadership', 'Board', 'Advisors', 'Customers', 'Employees', 'Alumni', 'Investors', 'Others', 'Power User', 'Partners'. Matching is exact and case-sensitive on these display strings — a value outside this list matches nothing and returns an empty result rather than an error, so never invent or pluralise one ('Power User' is singular). (8) Find by one or more user IDs: WORKSPACE_MEMBER_FILTER_FIELD_USER_ID + WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS only — this field does NOT support IN; for multiple IDs use a WORKSPACE_MEMBER_FILTER_LOGIC_OR group with one EQUALS criterion per ID. (9) Find by current job title: WORKSPACE_MEMBER_FILTER_FIELD_TITLE + WORKSPACE_MEMBER_FILTER_OPERATOR_REGEX e.g. ['(?i)^VP.*Sales'] — case-insensitive Postgres regex against the member's current title(s); only current employment is searched, not past roles. workspace_id is always required at root and auto-injected — never ask the user.

Behavior: read_only

workspace_id / user_id are injected from request headers.

Returns members[] with fields:

user_id: Unique internal UUID of the user. Use this as the identifier when referencing this member in other API calls. workspace_id: Id of the workspace this membership belongs to. role: List of roles assigned to this member in the workspace. Each entry has a machine name (e.g. 'ADMIN') and a human-readable label (e.g. 'Admin'). A member can hold multiple roles simultaneously. user_first_name: Member's first name. user_last_name: Member's last name. user_email: [redacted] created_at: Timestamp when this member was added to the workspace. is_management_user: True if this user holds a platform-level management role (assigned outside of workspace roles, via ManagementUserService). Management users typically have elevated cross-workspace privileges. linkedin_id: Member's LinkedIn profile ID or URL. Used to identify the member's LinkedIn presence for Super Connector network analysis and warm intro path finding. whatsapp_consent: Whether the member has consented to receiving WhatsApp communications. connection_ledger_id: ID of the member's uploaded LinkedIn connection file (connection ledger). Non-empty means the member has uploaded their LinkedIn connections export, which enables Super Connector network analysis. Empty means no connection file has been uploaded yet. network_description: Free-text description of the member's professional network, provided by the member or admin. Gives context on the member's relationship capital and areas of influence. Null if not set. super_connector_opt_in: Whether the member has opted into the Super Connector program, which allows the platform to leverage their LinkedIn network for warm introductions. connection_consent: Member's consent to share their LinkedIn network connections with the workspace for intro facilitation. Distinct from super_connector_opt_in — this specifically governs the sharing of raw connection data. sc_onboarding_status: Current stage of the member's Super Connector onboarding flow. categories: Category tags assigned to this member (e.g. Finance, Technology). Each entry has an id, a human-readable label, and a value. Used to group or segment members within the workspace. notes: Optional admin notes about this Super Connector member. Free-text field set via UpdateSuperConnectorNotes. Null if no notes have been added. super_connector_state: Super Connector state, read from the member's SUPER_CONNECTOR role. SUPER_CONNECTOR_STATE_UNSPECIFIED when the member is not a Super Connector. DORMANT means the Super Connector is parked: no automations run for them and they hold no plan seat until activated with add_role (super_connector_state ACTIVE). super_connector_dormant: True when this Super Connector currently gets no automations: super_connector_state is DORMANT, or it is ACTIVE but over the workspace plan's Super Connector limit. dormant=true with state ACTIVE means activating will not help; the plan limit must be raised. Always false for members who are not Super Connectors. Also returns pagination info (current_page, page_size, total_elements, total_pages, has_next, has_previous).

IMPORTANT: If the response contains more than one record, always present the options to the user and ask them to choose before taking any follow-up action. Do not act on all results automatically.

Input Schema

NameRequiredDescriptionDefault
pageNo
sortNoOptional sort order. Array of {field: <enum>, order: <enum>}. Sortable: WORKSPACE_MEMBER_SORT_FIELD_CREATED_AT, NAME, EMAIL, ROLE. Default if omitted: CREATED_AT ASC.
page_sizeNo
filter_groupsNoOptional filter groups (AND-combined). Omit to list all members. Each criterion uses enum field + enum operator + values array. Primary filters: NAME (CONTAINS/EQUALS), ROLE (IN), EMAIL (CONTAINS/EQUALS). See FilterCriterion for valid field→operator pairs.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / filter_groups / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "properties": {
      -        "criteria": {
      -          "description": "One or more filter conditions. Each entry is {field: <enum>, operator: <enum>, values: [<strings>]}. At least one criterion required per group. Example by role: [{field: 'WORKSPACE_MEMBER_FILTER_FIELD_ROLE', operator: 'WORKSPACE_MEMBER_FILTER_OPERATOR_IN', values: ['ADMIN']}].",
      -          "items": {
      -            "properties": {
      -              "field": {
      -                "description": "Enum. The member attribute to filter on. Must pair with a compatible operator. Primary filters: WORKSPACE_MEMBER_FILTER_FIELD_NAME→CONTAINS or EQUALS | WORKSPACE_MEMBER_FILTER_FIELD_ROLE→IN | WORKSPACE_MEMBER_FILTER_FIELD_EMAIL→CONTAINS or EQUALS. Also: USER_ID→EQUALS | LINKEDIN_ID→CONTAINS or EQUALS | CREATED_AT→GTE or LTE | consent fields→IN | TITLE→REGEX.",
      -                "oneOf": [
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_ROLE",
      -                    "description": "Workspace role assignment. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'OWNER', 'ADMIN', 'SUPER_CONNECTOR', 'SUPER_CONNECTOR_ADMIN', 'REQUESTER', 'TECHNICAL_ADMIN'. Example: IN ['SUPER_CONNECTOR']. Member matches if ANY of their roles is in the list.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_ROLE"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_CREATED_AT",
      -                    "description": "When the member joined. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_GTE (on/after) or WORKSPACE_MEMBER_FILTER_OPERATOR_LTE (on/before). Value: ISO-8601 datetime e.g. ['2024-06-01T00:00:00Z'].",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_CREATED_AT"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_EMAIL",
      -                    "description": "Email address. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS (partial/domain, e.g. ['@acme.com']) WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS (exact, e.g. ['jane@acme.com']) or WORKSPACE_MEMBER_FILTER_OPERATOR_IN (exact, any of several, e.g. ['jane@acme.com', 'bob@acme.com']). Case-insensitive.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_EMAIL"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_NAME",
      -                    "description": "Member first or last name. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS (partial, e.g. ['smith']) or WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS (exact full name, e.g. ['John Smith']). Case-insensitive.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_NAME"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_USER_ID",
      -                    "description": "Platform user UUID. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS only — IN is NOT valid for this field. Example: EQUALS ['550e8400-e29b-41d4-a716-446655440000']. To match multiple user IDs, add one EQUALS criterion per ID inside a WORKSPACE_MEMBER_FILTER_LOGIC_OR filter group, not a single IN criterion.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_USER_ID"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_LINKEDIN_ID",
      -                    "description": "LinkedIn profile ID or URL. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS or WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS. Example CONTAINS: ['linkedin.com/in/johndoe'].",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_LINKEDIN_ID"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_WHATSAPP_CONSENT",
      -                    "description": "WhatsApp consent. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'WHATSAPP_CONSENT_PENDING', 'WHATSAPP_CONSENT_GRANTED', 'WHATSAPP_CONSENT_DENIED'.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_WHATSAPP_CONSENT"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_SUPER_CONNECTOR_OPT_IN",
      -                    "description": "Super Connector opt-in status. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'SUPER_CONNECTOR_OPT_IN_GRANTED', 'SUPER_CONNECTOR_OPT_IN_DENIED'.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_SUPER_CONNECTOR_OPT_IN"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_CONNECTION_CONSENT",
      -                    "description": "LinkedIn connection-sharing consent. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'CONNECTION_CONSENT_PENDING', 'CONNECTION_CONSENT_GRANTED', 'CONNECTION_CONSENT_DENIED'.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_CONNECTION_CONSENT"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_SC_ONBOARDING_STATUS",
      -                    "description": "Super Connector onboarding stage. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'SC_ONBOARDING_NOT_STARTED', 'SC_ONBOARDING_IN_PROGRESS', 'SC_ONBOARDING_COMPLETED'.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_SC_ONBOARDING_STATUS"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_CATEGORY",
      -                    "description": "Category tag(s) assigned to the member. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Pass one or more WorkspaceMemberCategoryName display values — the complete set is 'Leadership', 'Board', 'Advisors', 'Customers', 'Employees', 'Alumni', 'Investors', 'Others', 'Power User', 'Partners'. Matched exactly and case-sensitively; anything else returns no rows. Member matches if ANY of their categories is in the list. No UUID lookup needed.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_CATEGORY"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_LOCATION",
      -                    "description": "Location of the workspace member. Matched case-insensitively against city, country, or ISO country code (e.g. 'US', 'San Francisco', 'United States'). Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN. Multiple values are OR-combined.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_LOCATION"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_TAG",
      -                    "description": "Workspace-defined tags assigned to the member. Values are tag UUIDs from Tagging.ListTags, not names. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_IN (member carries ANY of the given tags) or WORKSPACE_MEMBER_FILTER_OPERATOR_NOT_IN (member carries NONE of the given tags). Example: IN ['dd491a85-3563-408d-bb2e-d9a4ee7ddda9'].",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_TAG"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_TITLE",
      -                    "description": "Member's current job title(s), enriched from profile_data. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_REGEX only. Pass exactly one Postgres regex pattern, e.g. ['(?i)^VP.*Sales'] for a case-insensitive prefix match. Only current employment is searched — a member whose title changed and is no longer current will not match on the old title.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_TITLE"
      -                  }
      -                ]
      -              },
      -              "operator": {
      -                "description": "Enum. Comparison operator — must be valid for the chosen field. IN→ROLE, CATEGORY, TAG, consent fields. NOT_IN→TAG only. CONTAINS→NAME, EMAIL, LINKEDIN_ID. EQUALS→NAME, EMAIL, USER_ID, LINKEDIN_ID. GTE/LTE→CREATED_AT only. REGEX→TITLE only. Wrong pair returns no results or an error.",
      -                "oneOf": [
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_IN",
      -                    "description": "Value is in the provided list (any match). Valid fields: WORKSPACE_MEMBER_FILTER_FIELD_ROLE ('OWNER', 'ADMIN', 'SUPER_CONNECTOR', etc.), WORKSPACE_MEMBER_FILTER_FIELD_CATEGORY (display names e.g. 'Investors', 'Board'), WORKSPACE_MEMBER_FILTER_FIELD_TAG (tag UUIDs), WORKSPACE_MEMBER_FILTER_FIELD_EMAIL (exact addresses, case-insensitive), and consent fields. Pass one or more exact strings in values.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_IN"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS",
      -                    "description": "Case-insensitive substring match. Valid fields: WORKSPACE_MEMBER_FILTER_FIELD_NAME, WORKSPACE_MEMBER_FILTER_FIELD_EMAIL, WORKSPACE_MEMBER_FILTER_FIELD_LINKEDIN_ID. Pass exactly one string e.g. ['smith'] or ['@acme.com'].",
      -                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_GTE",
      -                    "description": "Greater than or equal (date). Valid field: WORKSPACE_MEMBER_FILTER_FIELD_CREATED_AT only. Pass one ISO-8601 datetime e.g. ['2024-01-01T00:00:00Z'].",
      -                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_GTE"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_LTE",
      -                    "description": "Less than or equal (date). Valid field: WORKSPACE_MEMBER_FILTER_FIELD_CREATED_AT only. Pass one ISO-8601 datetime.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_LTE"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS",
      -                    "description": "Exact match (case-insensitive for text). Valid fields: WORKSPACE_MEMBER_FILTER_FIELD_NAME, WORKSPACE_MEMBER_FILTER_FIELD_EMAIL, WORKSPACE_MEMBER_FILTER_FIELD_USER_ID, WORKSPACE_MEMBER_FILTER_FIELD_LINKEDIN_ID. Pass exactly one value.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_NOT_IN",
      -                    "description": "Value is NOT in the provided list (exclusion). Valid field: WORKSPACE_MEMBER_FILTER_FIELD_TAG only. Member matches if none of their tags are in the list. Pass one or more tag UUIDs.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_NOT_IN"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_REGEX",
      -                    "description": "Case-insensitive-capable Postgres regular expression match (use an inline '(?i)' flag for case-insensitivity). Valid field: WORKSPACE_MEMBER_FILTER_FIELD_TITLE only. Pass exactly one pattern, e.g. ['(?i)^VP.*Sales'] or ['(?i)(chief|head).*(sales|revenue)'].",
      -                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_REGEX"
      -                  }
      -                ]
      -              },
      -              "values": {
      -                "description": "Filter value(s) as a JSON array of strings — NEVER a bare string. NAME CONTAINS→['partial']; NAME EQUALS→['John Smith']; ROLE IN→['ADMIN'] or ['SUPER_CONNECTOR','SUPER_CONNECTOR_ADMIN']; EMAIL CONTAINS→['@domain.com']; EMAIL EQUALS→['user@company.com']; USER_ID EQUALS→['<uuid>']; LINKEDIN_ID CONTAINS→['linkedin.com/in/handle']; CREATED_AT GTE/LTE→['2024-01-01T00:00:00Z']; TITLE REGEX→['(?i)^VP.*Sales']. Role and consent enum strings are case-sensitive.",
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "type": "array"
      -        },
      -        "logic": {
      -          "description": "Enum. Combines criteria within this group. WORKSPACE_MEMBER_FILTER_LOGIC_AND = every criterion must match. WORKSPACE_MEMBER_FILTER_LOGIC_OR = at least one criterion must match. Defaults to AND if omitted. Multiple filter_groups are always AND-combined.",
      -          "oneOf": [
      -            {
      -              "const": "WORKSPACE_MEMBER_FILTER_LOGIC_AND",
      -              "description": "Intersection — all criteria must match. Example: ROLE IN ['ADMIN'] AND NAME CONTAINS ['john'] in one group.",
      -              "title": "WORKSPACE_MEMBER_FILTER_LOGIC_AND"
      -            },
      -            {
      -              "const": "WORKSPACE_MEMBER_FILTER_LOGIC_OR",
      -              "description": "Union — any criterion may match. Example: NAME CONTAINS ['john'] OR EMAIL CONTAINS ['john'] in one group.",
      -              "title": "WORKSPACE_MEMBER_FILTER_LOGIC_OR"
      -            }
      -          ]
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "properties": {
      +        "criteria": {
      +          "description": "One or more filter conditions. Each entry is {field: <enum>, operator: <enum>, values: [<strings>]}. At least one criterion required per group. Example by role: [{field: 'WORKSPACE_MEMBER_FILTER_FIELD_ROLE', operator: 'WORKSPACE_MEMBER_FILTER_OPERATOR_IN', values: ['ADMIN']}].",
      +          "items": {
      +            "properties": {
      +              "field": {
      +                "description": "Enum. The member attribute to filter on. Must pair with a compatible operator. Primary filters: WORKSPACE_MEMBER_FILTER_FIELD_NAME→CONTAINS or EQUALS | WORKSPACE_MEMBER_FILTER_FIELD_ROLE→IN | WORKSPACE_MEMBER_FILTER_FIELD_EMAIL→CONTAINS or EQUALS. Also: USER_ID→EQUALS | LINKEDIN_ID→CONTAINS or EQUALS | CREATED_AT→GTE or LTE | consent fields→IN | TITLE→REGEX.",
      +                "oneOf": [
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_ROLE",
      +                    "description": "Workspace role assignment. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'OWNER', 'ADMIN', 'SUPER_CONNECTOR', 'SUPER_CONNECTOR_ADMIN', 'REQUESTER', 'TECHNICAL_ADMIN'. Example: IN ['SUPER_CONNECTOR']. Member matches if ANY of their roles is in the list.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_ROLE"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_CREATED_AT",
      +                    "description": "When the member joined. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_GTE (on/after) or WORKSPACE_MEMBER_FILTER_OPERATOR_LTE (on/before). Value: ISO-8601 datetime e.g. ['2024-06-01T00:00:00Z'].",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_CREATED_AT"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_EMAIL",
      +                    "description": "Email address. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS (partial/domain, e.g. ['@acme.com']) WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS (exact, e.g. ['jane@acme.com']) or WORKSPACE_MEMBER_FILTER_OPERATOR_IN (exact, any of several, e.g. ['jane@acme.com', 'bob@acme.com']). Case-insensitive.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_EMAIL"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_NAME",
      +                    "description": "Member first or last name. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS (partial, e.g. ['smith']) or WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS (exact full name, e.g. ['John Smith']). Case-insensitive.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_NAME"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_USER_ID",
      +                    "description": "Platform user UUID. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS only — IN is NOT valid for this field. Example: EQUALS ['550e8400-e29b-41d4-a716-446655440000']. To match multiple user IDs, add one EQUALS criterion per ID inside a WORKSPACE_MEMBER_FILTER_LOGIC_OR filter group, not a single IN criterion.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_USER_ID"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_LINKEDIN_ID",
      +                    "description": "LinkedIn profile ID or URL. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS or WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS. Example CONTAINS: ['linkedin.com/in/johndoe'].",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_LINKEDIN_ID"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_WHATSAPP_CONSENT",
      +                    "description": "WhatsApp consent. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'WHATSAPP_CONSENT_PENDING', 'WHATSAPP_CONSENT_GRANTED', 'WHATSAPP_CONSENT_DENIED'.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_WHATSAPP_CONSENT"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_SUPER_CONNECTOR_OPT_IN",
      +                    "description": "Super Connector opt-in status. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'SUPER_CONNECTOR_OPT_IN_GRANTED', 'SUPER_CONNECTOR_OPT_IN_DENIED'.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_SUPER_CONNECTOR_OPT_IN"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_CONNECTION_CONSENT",
      +                    "description": "LinkedIn connection-sharing consent. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'CONNECTION_CONSENT_PENDING', 'CONNECTION_CONSENT_GRANTED', 'CONNECTION_CONSENT_DENIED'.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_CONNECTION_CONSENT"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_SC_ONBOARDING_STATUS",
      +                    "description": "Super Connector onboarding stage. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'SC_ONBOARDING_NOT_STARTED', 'SC_ONBOARDING_IN_PROGRESS', 'SC_ONBOARDING_COMPLETED'.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_SC_ONBOARDING_STATUS"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_CATEGORY",
      +                    "description": "Category tag(s) assigned to the member. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Pass one or more WorkspaceMemberCategoryName display values — the complete set is 'Leadership', 'Board', 'Advisors', 'Customers', 'Employees', 'Alumni', 'Investors', 'Others', 'Power User', 'Partners'. Matched exactly and case-sensitively; anything else returns no rows. Member matches if ANY of their categories is in the list. No UUID lookup needed.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_CATEGORY"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_LOCATION",
      +                    "description": "Location of the workspace member. Matched case-insensitively against city, country, or ISO country code (e.g. 'US', 'San Francisco', 'United States'). Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN. Multiple values are OR-combined.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_LOCATION"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_TAG",
      +                    "description": "Workspace-defined tags assigned to the member. Values are tag UUIDs from Tagging.ListTags, not names. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_IN (member carries ANY of the given tags) or WORKSPACE_MEMBER_FILTER_OPERATOR_NOT_IN (member carries NONE of the given tags). Example: IN ['dd491a85-3563-408d-bb2e-d9a4ee7ddda9'].",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_TAG"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_TITLE",
      +                    "description": "Member's current job title(s), enriched from profile_data. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_REGEX only. Pass exactly one Postgres regex pattern, e.g. ['(?i)^VP.*Sales'] for a case-insensitive prefix match. Only current employment is searched — a member whose title changed and is no longer current will not match on the old title.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_TITLE"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_SC_STATE",
      +                    "description": "Super Connector state. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'ACTIVE', 'DORMANT'. Only Super Connectors match. Example: IN ['DORMANT'] lists the parked Super Connectors, which add_role with super_connector_state ACTIVE can activate.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_SC_STATE"
      +                  }
      +                ]
      +              },
      +              "operator": {
      +                "description": "Enum. Comparison operator — must be valid for the chosen field. IN→ROLE, CATEGORY, TAG, consent fields. NOT_IN→TAG only. CONTAINS→NAME, EMAIL, LINKEDIN_ID. EQUALS→NAME, EMAIL, USER_ID, LINKEDIN_ID. GTE/LTE→CREATED_AT only. REGEX→TITLE only. IN→SC_STATE. Wrong pair returns no results or an error.",
      +                "oneOf": [
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_IN",
      +                    "description": "Value is in the provided list (any match). Valid fields: WORKSPACE_MEMBER_FILTER_FIELD_ROLE ('OWNER', 'ADMIN', 'SUPER_CONNECTOR', etc.), WORKSPACE_MEMBER_FILTER_FIELD_CATEGORY (display names e.g. 'Investors', 'Board'), WORKSPACE_MEMBER_FILTER_FIELD_TAG (tag UUIDs), WORKSPACE_MEMBER_FILTER_FIELD_EMAIL (exact addresses, case-insensitive), and consent fields. Pass one or more exact strings in values.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_IN"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS",
      +                    "description": "Case-insensitive substring match. Valid fields: WORKSPACE_MEMBER_FILTER_FIELD_NAME, WORKSPACE_MEMBER_FILTER_FIELD_EMAIL, WORKSPACE_MEMBER_FILTER_FIELD_LINKEDIN_ID. Pass exactly one string e.g. ['smith'] or ['@acme.com'].",
      +                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_GTE",
      +                    "description": "Greater than or equal (date). Valid field: WORKSPACE_MEMBER_FILTER_FIELD_CREATED_AT only. Pass one ISO-8601 datetime e.g. ['2024-01-01T00:00:00Z'].",
      +                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_GTE"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_LTE",
      +                    "description": "Less than or equal (date). Valid field: WORKSPACE_MEMBER_FILTER_FIELD_CREATED_AT only. Pass one ISO-8601 datetime.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_LTE"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS",
      +                    "description": "Exact match (case-insensitive for text). Valid fields: WORKSPACE_MEMBER_FILTER_FIELD_NAME, WORKSPACE_MEMBER_FILTER_FIELD_EMAIL, WORKSPACE_MEMBER_FILTER_FIELD_USER_ID, WORKSPACE_MEMBER_FILTER_FIELD_LINKEDIN_ID. Pass exactly one value.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_NOT_IN",
      +                    "description": "Value is NOT in the provided list (exclusion). Valid field: WORKSPACE_MEMBER_FILTER_FIELD_TAG only. Member matches if none of their tags are in the list. Pass one or more tag UUIDs.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_NOT_IN"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_REGEX",
      +                    "description": "Case-insensitive-capable Postgres regular expression match (use an inline '(?i)' flag for case-insensitivity). Valid field: WORKSPACE_MEMBER_FILTER_FIELD_TITLE only. Pass exactly one pattern, e.g. ['(?i)^VP.*Sales'] or ['(?i)(chief|head).*(sales|revenue)'].",
      +                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_REGEX"
      +                  }
      +                ]
      +              },
      +              "values": {
      +                "description": "Filter value(s) as a JSON array of strings — NEVER a bare string. NAME CONTAINS→['partial']; NAME EQUALS→['John Smith']; ROLE IN→['ADMIN'] or ['SUPER_CONNECTOR','SUPER_CONNECTOR_ADMIN']; EMAIL CONTAINS→['@domain.com']; EMAIL EQUALS→['user@company.com']; USER_ID EQUALS→['<uuid>']; LINKEDIN_ID CONTAINS→['linkedin.com/in/handle']; CREATED_AT GTE/LTE→['2024-01-01T00:00:00Z']; TITLE REGEX→['(?i)^VP.*Sales']. Role and consent enum strings are case-sensitive.",
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "logic": {
      +          "description": "Enum. Combines criteria within this group. WORKSPACE_MEMBER_FILTER_LOGIC_AND = every criterion must match. WORKSPACE_MEMBER_FILTER_LOGIC_OR = at least one criterion must match. Defaults to AND if omitted. Multiple filter_groups are always AND-combined.",
      +          "oneOf": [
      +            {
      +              "const": "WORKSPACE_MEMBER_FILTER_LOGIC_AND",
      +              "description": "Intersection — all criteria must match. Example: ROLE IN ['ADMIN'] AND NAME CONTAINS ['john'] in one group.",
      +              "title": "WORKSPACE_MEMBER_FILTER_LOGIC_AND"
      +            },
      +            {
      +              "const": "WORKSPACE_MEMBER_FILTER_LOGIC_OR",
      +              "description": "Union — any criterion may match. Example: NAME CONTAINS ['john'] OR EMAIL CONTAINS ['john'] in one group.",
      +              "title": "WORKSPACE_MEMBER_FILTER_LOGIC_OR"
      +            }
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / filter_groups / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "properties": {
      -        "criteria": {
      -          "description": "One or more filter conditions. Each entry is {field: <enum>, operator: <enum>, values: [<strings>]}. At least one criterion required per group. Example by role: [{field: 'WORKSPACE_MEMBER_FILTER_FIELD_ROLE', operator: 'WORKSPACE_MEMBER_FILTER_OPERATOR_IN', values: ['ADMIN']}].",
      -          "items": {
      -            "properties": {
      -              "field": {
      -                "description": "Enum. The member attribute to filter on. Must pair with a compatible operator. Primary filters: WORKSPACE_MEMBER_FILTER_FIELD_NAME→CONTAINS or EQUALS | WORKSPACE_MEMBER_FILTER_FIELD_ROLE→IN | WORKSPACE_MEMBER_FILTER_FIELD_EMAIL→CONTAINS or EQUALS. Also: USER_ID→EQUALS | LINKEDIN_ID→CONTAINS or EQUALS | CREATED_AT→GTE or LTE | consent fields→IN | TITLE→REGEX.",
      -                "oneOf": [
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_ROLE",
      -                    "description": "Workspace role assignment. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'OWNER', 'ADMIN', 'SUPER_CONNECTOR', 'SUPER_CONNECTOR_ADMIN', 'REQUESTER', 'TECHNICAL_ADMIN'. Example: IN ['SUPER_CONNECTOR']. Member matches if ANY of their roles is in the list.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_ROLE"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_CREATED_AT",
      -                    "description": "When the member joined. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_GTE (on/after) or WORKSPACE_MEMBER_FILTER_OPERATOR_LTE (on/before). Value: ISO-8601 datetime e.g. ['2024-06-01T00:00:00Z'].",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_CREATED_AT"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_EMAIL",
      -                    "description": "Email address. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS (partial/domain, e.g. ['@acme.com']) or WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS (exact, e.g. ['jane@acme.com']). Case-insensitive.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_EMAIL"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_NAME",
      -                    "description": "Member first or last name. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS (partial, e.g. ['smith']) or WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS (exact full name, e.g. ['John Smith']). Case-insensitive.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_NAME"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_USER_ID",
      -                    "description": "Platform user UUID. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS only — IN is NOT valid for this field. Example: EQUALS ['550e8400-e29b-41d4-a716-446655440000']. To match multiple user IDs, add one EQUALS criterion per ID inside a WORKSPACE_MEMBER_FILTER_LOGIC_OR filter group, not a single IN criterion.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_USER_ID"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_LINKEDIN_ID",
      -                    "description": "LinkedIn profile ID or URL. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS or WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS. Example CONTAINS: ['linkedin.com/in/johndoe'].",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_LINKEDIN_ID"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_WHATSAPP_CONSENT",
      -                    "description": "WhatsApp consent. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'WHATSAPP_CONSENT_PENDING', 'WHATSAPP_CONSENT_GRANTED', 'WHATSAPP_CONSENT_DENIED'.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_WHATSAPP_CONSENT"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_SUPER_CONNECTOR_OPT_IN",
      -                    "description": "Super Connector opt-in status. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'SUPER_CONNECTOR_OPT_IN_GRANTED', 'SUPER_CONNECTOR_OPT_IN_DENIED'.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_SUPER_CONNECTOR_OPT_IN"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_CONNECTION_CONSENT",
      -                    "description": "LinkedIn connection-sharing consent. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'CONNECTION_CONSENT_PENDING', 'CONNECTION_CONSENT_GRANTED', 'CONNECTION_CONSENT_DENIED'.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_CONNECTION_CONSENT"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_SC_ONBOARDING_STATUS",
      -                    "description": "Super Connector onboarding stage. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'SC_ONBOARDING_NOT_STARTED', 'SC_ONBOARDING_IN_PROGRESS', 'SC_ONBOARDING_COMPLETED'.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_SC_ONBOARDING_STATUS"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_CATEGORY",
      -                    "description": "Category tag(s) assigned to the member. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Pass one or more WorkspaceMemberCategoryName display values — the complete set is 'Leadership', 'Board', 'Advisors', 'Customers', 'Employees', 'Alumni', 'Investors', 'Others', 'Power User', 'Partners'. Matched exactly and case-sensitively; anything else returns no rows. Member matches if ANY of their categories is in the list. No UUID lookup needed.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_CATEGORY"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_LOCATION",
      -                    "description": "Location of the workspace member. Matched case-insensitively against city, country, or ISO country code (e.g. 'US', 'San Francisco', 'United States'). Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN. Multiple values are OR-combined.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_LOCATION"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_TAG",
      -                    "description": "Workspace-defined tags assigned to the member. Values are tag UUIDs from Tagging.ListTags, not names. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_IN (member carries ANY of the given tags) or WORKSPACE_MEMBER_FILTER_OPERATOR_NOT_IN (member carries NONE of the given tags). Example: IN ['dd491a85-3563-408d-bb2e-d9a4ee7ddda9'].",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_TAG"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_TITLE",
      -                    "description": "Member's current job title(s), enriched from profile_data. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_REGEX only. Pass exactly one Postgres regex pattern, e.g. ['(?i)^VP.*Sales'] for a case-insensitive prefix match. Only current employment is searched — a member whose title changed and is no longer current will not match on the old title.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_TITLE"
      -                  }
      -                ]
      -              },
      -              "operator": {
      -                "description": "Enum. Comparison operator — must be valid for the chosen field. IN→ROLE, CATEGORY, TAG, consent fields. NOT_IN→TAG only. CONTAINS→NAME, EMAIL, LINKEDIN_ID. EQUALS→NAME, EMAIL, USER_ID, LINKEDIN_ID. GTE/LTE→CREATED_AT only. REGEX→TITLE only. Wrong pair returns no results or an error.",
      -                "oneOf": [
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_IN",
      -                    "description": "Value is in the provided list (any match). Valid fields: WORKSPACE_MEMBER_FILTER_FIELD_ROLE ('OWNER', 'ADMIN', 'SUPER_CONNECTOR', etc.), WORKSPACE_MEMBER_FILTER_FIELD_CATEGORY (display names e.g. 'Investors', 'Board'), WORKSPACE_MEMBER_FILTER_FIELD_TAG (tag UUIDs), and consent fields. Pass one or more exact strings in values.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_IN"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS",
      -                    "description": "Case-insensitive substring match. Valid fields: WORKSPACE_MEMBER_FILTER_FIELD_NAME, WORKSPACE_MEMBER_FILTER_FIELD_EMAIL, WORKSPACE_MEMBER_FILTER_FIELD_LINKEDIN_ID. Pass exactly one string e.g. ['smith'] or ['@acme.com'].",
      -                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_GTE",
      -                    "description": "Greater than or equal (date). Valid field: WORKSPACE_MEMBER_FILTER_FIELD_CREATED_AT only. Pass one ISO-8601 datetime e.g. ['2024-01-01T00:00:00Z'].",
      -                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_GTE"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_LTE",
      -                    "description": "Less than or equal (date). Valid field: WORKSPACE_MEMBER_FILTER_FIELD_CREATED_AT only. Pass one ISO-8601 datetime.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_LTE"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS",
      -                    "description": "Exact match (case-insensitive for text). Valid fields: WORKSPACE_MEMBER_FILTER_FIELD_NAME, WORKSPACE_MEMBER_FILTER_FIELD_EMAIL, WORKSPACE_MEMBER_FILTER_FIELD_USER_ID, WORKSPACE_MEMBER_FILTER_FIELD_LINKEDIN_ID. Pass exactly one value.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_NOT_IN",
      -                    "description": "Value is NOT in the provided list (exclusion). Valid field: WORKSPACE_MEMBER_FILTER_FIELD_TAG only. Member matches if none of their tags are in the list. Pass one or more tag UUIDs.",
      -                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_NOT_IN"
      -                  },
      -                  {
      -                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_REGEX",
      -                    "description": "Case-insensitive-capable Postgres regular expression match (use an inline '(?i)' flag for case-insensitivity). Valid field: WORKSPACE_MEMBER_FILTER_FIELD_TITLE only. Pass exactly one pattern, e.g. ['(?i)^VP.*Sales'] or ['(?i)(chief|head).*(sales|revenue)'].",
      -                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_REGEX"
      -                  }
      -                ]
      -              },
      -              "values": {
      -                "description": "Filter value(s) as a JSON array of strings — NEVER a bare string. NAME CONTAINS→['partial']; NAME EQUALS→['John Smith']; ROLE IN→['ADMIN'] or ['SUPER_CONNECTOR','SUPER_CONNECTOR_ADMIN']; EMAIL CONTAINS→['@domain.com']; EMAIL EQUALS→['user@company.com']; USER_ID EQUALS→['<uuid>']; LINKEDIN_ID CONTAINS→['linkedin.com/in/handle']; CREATED_AT GTE/LTE→['2024-01-01T00:00:00Z']; TITLE REGEX→['(?i)^VP.*Sales']. Role and consent enum strings are case-sensitive.",
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "type": "array"
      -        },
      -        "logic": {
      -          "description": "Enum. Combines criteria within this group. WORKSPACE_MEMBER_FILTER_LOGIC_AND = every criterion must match. WORKSPACE_MEMBER_FILTER_LOGIC_OR = at least one criterion must match. Defaults to AND if omitted. Multiple filter_groups are always AND-combined.",
      -          "oneOf": [
      -            {
      -              "const": "WORKSPACE_MEMBER_FILTER_LOGIC_AND",
      -              "description": "Intersection — all criteria must match. Example: ROLE IN ['ADMIN'] AND NAME CONTAINS ['john'] in one group.",
      -              "title": "WORKSPACE_MEMBER_FILTER_LOGIC_AND"
      -            },
      -            {
      -              "const": "WORKSPACE_MEMBER_FILTER_LOGIC_OR",
      -              "description": "Union — any criterion may match. Example: NAME CONTAINS ['john'] OR EMAIL CONTAINS ['john'] in one group.",
      -              "title": "WORKSPACE_MEMBER_FILTER_LOGIC_OR"
      -            }
      -          ]
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "properties": {
      +        "criteria": {
      +          "description": "One or more filter conditions. Each entry is {field: <enum>, operator: <enum>, values: [<strings>]}. At least one criterion required per group. Example by role: [{field: 'WORKSPACE_MEMBER_FILTER_FIELD_ROLE', operator: 'WORKSPACE_MEMBER_FILTER_OPERATOR_IN', values: ['ADMIN']}].",
      +          "items": {
      +            "properties": {
      +              "field": {
      +                "description": "Enum. The member attribute to filter on. Must pair with a compatible operator. Primary filters: WORKSPACE_MEMBER_FILTER_FIELD_NAME→CONTAINS or EQUALS | WORKSPACE_MEMBER_FILTER_FIELD_ROLE→IN | WORKSPACE_MEMBER_FILTER_FIELD_EMAIL→CONTAINS or EQUALS. Also: USER_ID→EQUALS | LINKEDIN_ID→CONTAINS or EQUALS | CREATED_AT→GTE or LTE | consent fields→IN | TITLE→REGEX.",
      +                "oneOf": [
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_ROLE",
      +                    "description": "Workspace role assignment. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'OWNER', 'ADMIN', 'SUPER_CONNECTOR', 'SUPER_CONNECTOR_ADMIN', 'REQUESTER', 'TECHNICAL_ADMIN'. Example: IN ['SUPER_CONNECTOR']. Member matches if ANY of their roles is in the list.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_ROLE"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_CREATED_AT",
      +                    "description": "When the member joined. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_GTE (on/after) or WORKSPACE_MEMBER_FILTER_OPERATOR_LTE (on/before). Value: ISO-8601 datetime e.g. ['2024-06-01T00:00:00Z'].",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_CREATED_AT"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_EMAIL",
      +                    "description": "Email address. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS (partial/domain, e.g. ['@acme.com']) WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS (exact, e.g. ['jane@acme.com']) or WORKSPACE_MEMBER_FILTER_OPERATOR_IN (exact, any of several, e.g. ['jane@acme.com', 'bob@acme.com']). Case-insensitive.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_EMAIL"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_NAME",
      +                    "description": "Member first or last name. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS (partial, e.g. ['smith']) or WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS (exact full name, e.g. ['John Smith']). Case-insensitive.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_NAME"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_USER_ID",
      +                    "description": "Platform user UUID. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS only — IN is NOT valid for this field. Example: EQUALS ['550e8400-e29b-41d4-a716-446655440000']. To match multiple user IDs, add one EQUALS criterion per ID inside a WORKSPACE_MEMBER_FILTER_LOGIC_OR filter group, not a single IN criterion.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_USER_ID"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_LINKEDIN_ID",
      +                    "description": "LinkedIn profile ID or URL. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS or WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS. Example CONTAINS: ['linkedin.com/in/johndoe'].",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_LINKEDIN_ID"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_WHATSAPP_CONSENT",
      +                    "description": "WhatsApp consent. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'WHATSAPP_CONSENT_PENDING', 'WHATSAPP_CONSENT_GRANTED', 'WHATSAPP_CONSENT_DENIED'.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_WHATSAPP_CONSENT"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_SUPER_CONNECTOR_OPT_IN",
      +                    "description": "Super Connector opt-in status. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'SUPER_CONNECTOR_OPT_IN_GRANTED', 'SUPER_CONNECTOR_OPT_IN_DENIED'.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_SUPER_CONNECTOR_OPT_IN"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_CONNECTION_CONSENT",
      +                    "description": "LinkedIn connection-sharing consent. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'CONNECTION_CONSENT_PENDING', 'CONNECTION_CONSENT_GRANTED', 'CONNECTION_CONSENT_DENIED'.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_CONNECTION_CONSENT"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_SC_ONBOARDING_STATUS",
      +                    "description": "Super Connector onboarding stage. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Values: 'SC_ONBOARDING_NOT_STARTED', 'SC_ONBOARDING_IN_PROGRESS', 'SC_ONBOARDING_COMPLETED'.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_SC_ONBOARDING_STATUS"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_CATEGORY",
      +                    "description": "Category tag(s) assigned to the member. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN only. Pass one or more WorkspaceMemberCategoryName display values — the complete set is 'Leadership', 'Board', 'Advisors', 'Customers', 'Employees', 'Alumni', 'Investors', 'Others', 'Power User', 'Partners'. Matched exactly and case-sensitively; anything else returns no rows. Member matches if ANY of their categories is in the list. No UUID lookup needed.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_CATEGORY"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_LOCATION",
      +                    "description": "Location of the workspace member. Matched case-insensitively against city, country, or ISO country code (e.g. 'US', 'San Francisco', 'United States'). Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_IN. Multiple values are OR-combined.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_LOCATION"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_TAG",
      +                    "description": "Workspace-defined tags assigned to the member. Values are tag UUIDs from Tagging.ListTags, not names. Operators: WORKSPACE_MEMBER_FILTER_OPERATOR_IN (member carries ANY of the given tags) or WORKSPACE_MEMBER_FILTER_OPERATOR_NOT_IN (member carries NONE of the given tags). Example: IN ['dd491a85-3563-408d-bb2e-d9a4ee7ddda9'].",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_TAG"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_FIELD_TITLE",
      +                    "description": "Member's current job title(s), enriched from profile_data. Operator: WORKSPACE_MEMBER_FILTER_OPERATOR_REGEX only. Pass exactly one Postgres regex pattern, e.g. ['(?i)^VP.*Sales'] for a case-insensitive prefix match. Only current employment is searched — a member whose title changed and is no longer current will not match on the old title.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_FIELD_TITLE"
      +                  }
      +                ]
      +              },
      +              "operator": {
      +                "description": "Enum. Comparison operator — must be valid for the chosen field. IN→ROLE, CATEGORY, TAG, consent fields. NOT_IN→TAG only. CONTAINS→NAME, EMAIL, LINKEDIN_ID. EQUALS→NAME, EMAIL, USER_ID, LINKEDIN_ID. GTE/LTE→CREATED_AT only. REGEX→TITLE only. Wrong pair returns no results or an error.",
      +                "oneOf": [
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_IN",
      +                    "description": "Value is in the provided list (any match). Valid fields: WORKSPACE_MEMBER_FILTER_FIELD_ROLE ('OWNER', 'ADMIN', 'SUPER_CONNECTOR', etc.), WORKSPACE_MEMBER_FILTER_FIELD_CATEGORY (display names e.g. 'Investors', 'Board'), WORKSPACE_MEMBER_FILTER_FIELD_TAG (tag UUIDs), WORKSPACE_MEMBER_FILTER_FIELD_EMAIL (exact addresses, case-insensitive), and consent fields. Pass one or more exact strings in values.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_IN"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS",
      +                    "description": "Case-insensitive substring match. Valid fields: WORKSPACE_MEMBER_FILTER_FIELD_NAME, WORKSPACE_MEMBER_FILTER_FIELD_EMAIL, WORKSPACE_MEMBER_FILTER_FIELD_LINKEDIN_ID. Pass exactly one string e.g. ['smith'] or ['@acme.com'].",
      +                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_CONTAINS"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_GTE",
      +                    "description": "Greater than or equal (date). Valid field: WORKSPACE_MEMBER_FILTER_FIELD_CREATED_AT only. Pass one ISO-8601 datetime e.g. ['2024-01-01T00:00:00Z'].",
      +                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_GTE"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_LTE",
      +                    "description": "Less than or equal (date). Valid field: WORKSPACE_MEMBER_FILTER_FIELD_CREATED_AT only. Pass one ISO-8601 datetime.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_LTE"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS",
      +                    "description": "Exact match (case-insensitive for text). Valid fields: WORKSPACE_MEMBER_FILTER_FIELD_NAME, WORKSPACE_MEMBER_FILTER_FIELD_EMAIL, WORKSPACE_MEMBER_FILTER_FIELD_USER_ID, WORKSPACE_MEMBER_FILTER_FIELD_LINKEDIN_ID. Pass exactly one value.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_EQUALS"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_NOT_IN",
      +                    "description": "Value is NOT in the provided list (exclusion). Valid field: WORKSPACE_MEMBER_FILTER_FIELD_TAG only. Member matches if none of their tags are in the list. Pass one or more tag UUIDs.",
      +                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_NOT_IN"
      +                  },
      +                  {
      +                    "const": "WORKSPACE_MEMBER_FILTER_OPERATOR_REGEX",
      +                    "description": "Case-insensitive-capable Postgres regular expression match (use an inline '(?i)' flag for case-insensitivity). Valid field: WORKSPACE_MEMBER_FILTER_FIELD_TITLE only. Pass exactly one pattern, e.g. ['(?i)^VP.*Sales'] or ['(?i)(chief|head).*(sales|revenue)'].",
      +                    "title": "WORKSPACE_MEMBER_FILTER_OPERATOR_REGEX"
      +                  }
      +                ]
      +              },
      +              "values": {
      +                "description": "Filter value(s) as a JSON array of strings — NEVER a bare string. NAME CONTAINS→['partial']; NAME EQUALS→['John Smith']; ROLE IN→['ADMIN'] or ['SUPER_CONNECTOR','SUPER_CONNECTOR_ADMIN']; EMAIL CONTAINS→['@domain.com']; EMAIL EQUALS→['user@company.com']; USER_ID EQUALS→['<uuid>']; LINKEDIN_ID CONTAINS→['linkedin.com/in/handle']; CREATED_AT GTE/LTE→['2024-01-01T00:00:00Z']; TITLE REGEX→['(?i)^VP.*Sales']. Role and consent enum strings are case-sensitive.",
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "logic": {
      +          "description": "Enum. Combines criteria within this group. WORKSPACE_MEMBER_FILTER_LOGIC_AND = every criterion must match. WORKSPACE_MEMBER_FILTER_LOGIC_OR = at least one criterion must match. Defaults to AND if omitted. Multiple filter_groups are always AND-combined.",
      +          "oneOf": [
      +            {
      +              "const": "WORKSPACE_MEMBER_FILTER_LOGIC_AND",
      +              "description": "Intersection — all criteria must match. Example: ROLE IN ['ADMIN'] AND NAME CONTAINS ['john'] in one group.",
      +              "title": "WORKSPACE_MEMBER_FILTER_LOGIC_AND"
      +            },
      +            {
      +              "const": "WORKSPACE_MEMBER_FILTER_LOGIC_OR",
      +              "description": "Union — any criterion may match. Example: NAME CONTAINS ['john'] OR EMAIL CONTAINS ['john'] in one group.",
      +              "title": "WORKSPACE_MEMBER_FILTER_LOGIC_OR"
      +            }
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  3. Changed1 schema field changed
    • removedInput schema / properties / _triggered_by
      Removed value: -{
      -  "default": "",
      -  "description": "REQUIRED. Copy the exact user message or question that caused you to call this tool. Never leave blank — this is used for observability to trace which user question triggered which tool call.",
      -  "type": "string"
      -}
  4. First observed

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: states that workspace_id is auto-injected from headers and 'never ask the user', documents pagination metadata, and warns that a bad CATEGORY value silently returns an empty result rather than an error. Also adds a workflow constraint ('present options and ask the user before acting on multiple results'). The one gap is the idempotentHint=false annotation, which is never explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose, input shape, decision guide, and returns are sensibly ordered and front-loaded. However it is extremely long and reproduces much of the schema verbatim — the full enum string lists, field→operator table, and every return field with prose descriptions — which is redundant when the schema and an output schema already carry that content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Everything an agent needs is present: auto-injection semantics, pagination, the DORMANT/plan-limit nuance in super_connector_dormant, category exact-match pitfalls, and the handoff to add_role for activation. An output schema exists, so the return documentation is surplus rather than necessary, but nothing is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%, but the description compensates heavily: it spells out field→operator pairings, the exact case-sensitive category display values, the USER_ID EQUALS-only restriction with the OR-group workaround, and worked examples for name/email/role/title filters. It adds substantial meaning beyond the schema's enum titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Search and filter members in a workspace') and immediately scopes itself with 'Use for ANY workspace member lookup', which separates it from the many contact/company/profile siblings. An agent can tell what this tool covers without inspecting the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a numbered decision guide mapping nine concrete intents to exact field/operator/value combinations, plus the 'omit filter_groups to list all' case. It also names the alternative pattern where one exists (multi-ID lookups must use an OR group of EQUALS rather than IN).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources