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"
+ }
+]