naftiko: 1.0.0-alpha2 info: label: Salesforce — Groups description: 'Salesforce — Groups. 8 operations. Lead operation: Salesforce Group Membership Requests—private. Self-contained Naftiko capability covering one Salesforce business surface.' tags: - Salesforce - Groups created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SALESFORCE_API_KEY: SALESFORCE_API_KEY capability: consumes: - type: http namespace: salesforce-groups baseUri: https://login.salesforce.com description: Salesforce — Groups business capability. Self-contained, no shared references. resources: - name: data-v64.0-chatter-group-membership-requests-CHATTER_GROUP_REQUEST_ID path: /data/v64.0/chatter/group-membership-requests/{CHATTER_GROUP_REQUEST_ID} operations: - name: groupmembershiprequestsprivate method: PATCH description: Salesforce Group Membership Requests—private outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: status in: query type: string required: true - name: responseMessage in: query type: string required: true - name: CHATTER_GROUP_REQUEST_ID in: path type: string required: true - name: data-v64.0-chatter-groups path: /data/v64.0/chatter/groups operations: - name: listofgroups method: GET description: Salesforce List of Groups outputRawFormat: json outputParameters: - name: result type: object value: $. - name: listofgroupspost method: POST description: Salesforce List of Groups - Post outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string required: true - name: visibility in: query type: string description: PrivateAccess—Only members of the group can see posts to this group. required: true - name: description in: query type: string required: true - name: information in: query type: string description: If the group is private, the “Information” section is visible only to members. required: true - name: isArchived in: query type: boolean required: true - name: isAutoArchiveDisabled in: query type: boolean description: true if automatic archiving is turned off for the group, false otherwise. Defaults to false. If true, if there are no posts or comments for 90 days the group is required: true - name: isBroadcast in: query type: boolean description: true if only group owners and managers can create posts in the group, false otherwise. required: true - name: canHaveChatterGuests in: query type: boolean required: true - name: data-v64.0-chatter-groups-group-GROUP_ID-invite path: /data/v64.0/chatter/groups/group/{GROUP_ID}/invite operations: - name: groupinvites method: POST description: Salesforce Group Invites outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: GROUP_ID in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: data-v64.0-chatter-groups-GROUP_ID-members path: /data/v64.0/chatter/groups/{GROUP_ID}/members operations: - name: groupmembers method: POST description: Salesforce Group Members outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: userId in: query type: string required: true - name: GROUP_ID in: path type: string required: true - name: data-v64.0-chatter-groups-GROUP_ID-members-requests path: /data/v64.0/chatter/groups/{GROUP_ID}/members/requests operations: - name: groupmembersprivate method: GET description: Salesforce Group Members—private outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: GROUP_ID in: path type: string required: true - name: groupmembersprivatepost method: POST description: Salesforce Group Members—private - Post outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: GROUP_ID in: path type: string required: true - name: data-v64.0-support-dataCategoryGroups path: /data/v64.0/support/dataCategoryGroups operations: - name: datacategorygroups method: GET description: Salesforce Data Category Groups outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sObjectName in: query type: string required: true - name: Content-Type in: header type: string required: true authentication: type: bearer token: '{{env.SALESFORCE_API_KEY}}' exposes: - type: rest namespace: salesforce-groups-rest port: 8080 description: REST adapter for Salesforce — Groups. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/data/v64-0/chatter/group-membership-requests/{chatter-group-request-id} name: data-v64-0-chatter-group-membership-requests-chatter-group-request-id description: REST surface for data-v64.0-chatter-group-membership-requests-CHATTER_GROUP_REQUEST_ID. operations: - method: PATCH name: groupmembershiprequestsprivate description: Salesforce Group Membership Requests—private call: salesforce-groups.groupmembershiprequestsprivate with: status: rest.status responseMessage: rest.responseMessage CHATTER_GROUP_REQUEST_ID: rest.CHATTER_GROUP_REQUEST_ID outputParameters: - type: object mapping: $. - path: /v1/data/v64-0/chatter/groups name: data-v64-0-chatter-groups description: REST surface for data-v64.0-chatter-groups. operations: - method: GET name: listofgroups description: Salesforce List of Groups call: salesforce-groups.listofgroups outputParameters: - type: object mapping: $. - method: POST name: listofgroupspost description: Salesforce List of Groups - Post call: salesforce-groups.listofgroupspost with: name: rest.name visibility: rest.visibility description: rest.description information: rest.information isArchived: rest.isArchived isAutoArchiveDisabled: rest.isAutoArchiveDisabled isBroadcast: rest.isBroadcast canHaveChatterGuests: rest.canHaveChatterGuests outputParameters: - type: object mapping: $. - path: /v1/data/v64-0/chatter/groups/group/{group-id}/invite name: data-v64-0-chatter-groups-group-group-id-invite description: REST surface for data-v64.0-chatter-groups-group-GROUP_ID-invite. operations: - method: POST name: groupinvites description: Salesforce Group Invites call: salesforce-groups.groupinvites with: GROUP_ID: rest.GROUP_ID body: rest.body outputParameters: - type: object mapping: $. - path: /v1/data/v64-0/chatter/groups/{group-id}/members name: data-v64-0-chatter-groups-group-id-members description: REST surface for data-v64.0-chatter-groups-GROUP_ID-members. operations: - method: POST name: groupmembers description: Salesforce Group Members call: salesforce-groups.groupmembers with: userId: rest.userId GROUP_ID: rest.GROUP_ID outputParameters: - type: object mapping: $. - path: /v1/data/v64-0/chatter/groups/{group-id}/members/requests name: data-v64-0-chatter-groups-group-id-members-requests description: REST surface for data-v64.0-chatter-groups-GROUP_ID-members-requests. operations: - method: GET name: groupmembersprivate description: Salesforce Group Members—private call: salesforce-groups.groupmembersprivate with: GROUP_ID: rest.GROUP_ID outputParameters: - type: object mapping: $. - method: POST name: groupmembersprivatepost description: Salesforce Group Members—private - Post call: salesforce-groups.groupmembersprivatepost with: GROUP_ID: rest.GROUP_ID outputParameters: - type: object mapping: $. - path: /v1/data/v64-0/support/datacategorygroups name: data-v64-0-support-datacategorygroups description: REST surface for data-v64.0-support-dataCategoryGroups. operations: - method: GET name: datacategorygroups description: Salesforce Data Category Groups call: salesforce-groups.datacategorygroups with: sObjectName: rest.sObjectName Content-Type: rest.Content-Type outputParameters: - type: object mapping: $. - type: mcp namespace: salesforce-groups-mcp port: 9090 transport: http description: MCP adapter for Salesforce — Groups. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: salesforce-group-membership-requests-private description: Salesforce Group Membership Requests—private hints: readOnly: false destructive: false idempotent: true call: salesforce-groups.groupmembershiprequestsprivate with: status: tools.status responseMessage: tools.responseMessage CHATTER_GROUP_REQUEST_ID: tools.CHATTER_GROUP_REQUEST_ID outputParameters: - type: object mapping: $. - name: salesforce-list-groups description: Salesforce List of Groups hints: readOnly: true destructive: false idempotent: true call: salesforce-groups.listofgroups outputParameters: - type: object mapping: $. - name: salesforce-list-groups-post description: Salesforce List of Groups - Post hints: readOnly: true destructive: false idempotent: false call: salesforce-groups.listofgroupspost with: name: tools.name visibility: tools.visibility description: tools.description information: tools.information isArchived: tools.isArchived isAutoArchiveDisabled: tools.isAutoArchiveDisabled isBroadcast: tools.isBroadcast canHaveChatterGuests: tools.canHaveChatterGuests outputParameters: - type: object mapping: $. - name: salesforce-group-invites description: Salesforce Group Invites hints: readOnly: false destructive: false idempotent: false call: salesforce-groups.groupinvites with: GROUP_ID: tools.GROUP_ID body: tools.body outputParameters: - type: object mapping: $. - name: salesforce-group-members description: Salesforce Group Members hints: readOnly: false destructive: false idempotent: false call: salesforce-groups.groupmembers with: userId: tools.userId GROUP_ID: tools.GROUP_ID outputParameters: - type: object mapping: $. - name: salesforce-group-members-private description: Salesforce Group Members—private hints: readOnly: true destructive: false idempotent: true call: salesforce-groups.groupmembersprivate with: GROUP_ID: tools.GROUP_ID outputParameters: - type: object mapping: $. - name: salesforce-group-members-private-post description: Salesforce Group Members—private - Post hints: readOnly: false destructive: false idempotent: false call: salesforce-groups.groupmembersprivatepost with: GROUP_ID: tools.GROUP_ID outputParameters: - type: object mapping: $. - name: salesforce-data-category-groups description: Salesforce Data Category Groups hints: readOnly: true destructive: false idempotent: true call: salesforce-groups.datacategorygroups with: sObjectName: tools.sObjectName Content-Type: tools.Content-Type outputParameters: - type: object mapping: $.