naftiko: 1.0.0-alpha2 info: label: Salesforce Marketing Cloud REST API — Journeys description: 'Salesforce Marketing Cloud REST API — Journeys. 8 operations. Lead operation: Salesforce Marketing Cloud Fire a Journey Entry Event. Self-contained Naftiko capability covering one Salesforce Marketing Cloud business surface.' tags: - Salesforce Marketing Cloud - Journeys created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SALESFORCE_MARKETING_CLOUD_API_KEY: SALESFORCE_MARKETING_CLOUD_API_KEY capability: consumes: - type: http namespace: salesforce-marketing-cloud-journeys baseUri: https://{subdomain}.rest.marketingcloudapis.com description: Salesforce Marketing Cloud REST API — Journeys business capability. Self-contained, no shared references. resources: - name: interaction-v1-events path: /interaction/v1/events operations: - name: fireentryevent method: POST description: Salesforce Marketing Cloud Fire a Journey Entry Event outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: interaction-v1-interactions path: /interaction/v1/interactions operations: - name: listjourneys method: GET description: Salesforce Marketing Cloud List Journeys outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: $page in: query type: integer description: Page number for pagination (1-based) - name: $pageSize in: query type: integer description: Number of journeys per page - name: $orderBy in: query type: string description: Field to sort results by (e.g., ModifiedDate DESC, Name ASC) - name: status in: query type: string description: Filter journeys by status (Draft, Published, ScheduledToPublish, Stopped, Unpublished) - name: nameOrDescription in: query type: string description: Filter journeys by name or description (partial match) - name: createjourney method: POST description: Salesforce Marketing Cloud Create a Journey outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: interaction-v1-interactions-publishAsync-id path: /interaction/v1/interactions/publishAsync/{id} operations: - name: publishjourney method: POST description: Salesforce Marketing Cloud Publish a Journey outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Unique identifier (UUID) of the journey to publish required: true - name: body in: body type: object description: Request body (JSON). required: false - name: interaction-v1-interactions-stop-id path: /interaction/v1/interactions/stop/{id} operations: - name: stopjourney method: POST description: Salesforce Marketing Cloud Stop a Journey outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Unique identifier (UUID) of the journey to stop required: true - name: interaction-v1-interactions-id path: /interaction/v1/interactions/{id} operations: - name: getjourney method: GET description: Salesforce Marketing Cloud Retrieve a Journey outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Unique identifier (UUID) of the journey required: true - name: versionNumber in: query type: integer description: Specific version number to retrieve. If omitted, returns the latest version. - name: updatejourney method: PUT description: Salesforce Marketing Cloud Update a Journey outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Unique identifier (UUID) of the journey required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletejourney method: DELETE description: Salesforce Marketing Cloud Delete a Journey outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Unique identifier (UUID) of the journey required: true authentication: type: bearer token: '{{env.SALESFORCE_MARKETING_CLOUD_API_KEY}}' exposes: - type: rest namespace: salesforce-marketing-cloud-journeys-rest port: 8080 description: REST adapter for Salesforce Marketing Cloud REST API — Journeys. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/interaction/v1/events name: interaction-v1-events description: REST surface for interaction-v1-events. operations: - method: POST name: fireentryevent description: Salesforce Marketing Cloud Fire a Journey Entry Event call: salesforce-marketing-cloud-journeys.fireentryevent with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/interaction/v1/interactions name: interaction-v1-interactions description: REST surface for interaction-v1-interactions. operations: - method: GET name: listjourneys description: Salesforce Marketing Cloud List Journeys call: salesforce-marketing-cloud-journeys.listjourneys with: $page: rest.$page $pageSize: rest.$pageSize $orderBy: rest.$orderBy status: rest.status nameOrDescription: rest.nameOrDescription outputParameters: - type: object mapping: $. - method: POST name: createjourney description: Salesforce Marketing Cloud Create a Journey call: salesforce-marketing-cloud-journeys.createjourney with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/interaction/v1/interactions/publishasync/{id} name: interaction-v1-interactions-publishasync-id description: REST surface for interaction-v1-interactions-publishAsync-id. operations: - method: POST name: publishjourney description: Salesforce Marketing Cloud Publish a Journey call: salesforce-marketing-cloud-journeys.publishjourney with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/interaction/v1/interactions/stop/{id} name: interaction-v1-interactions-stop-id description: REST surface for interaction-v1-interactions-stop-id. operations: - method: POST name: stopjourney description: Salesforce Marketing Cloud Stop a Journey call: salesforce-marketing-cloud-journeys.stopjourney with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/interaction/v1/interactions/{id} name: interaction-v1-interactions-id description: REST surface for interaction-v1-interactions-id. operations: - method: GET name: getjourney description: Salesforce Marketing Cloud Retrieve a Journey call: salesforce-marketing-cloud-journeys.getjourney with: id: rest.id versionNumber: rest.versionNumber outputParameters: - type: object mapping: $. - method: PUT name: updatejourney description: Salesforce Marketing Cloud Update a Journey call: salesforce-marketing-cloud-journeys.updatejourney with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletejourney description: Salesforce Marketing Cloud Delete a Journey call: salesforce-marketing-cloud-journeys.deletejourney with: id: rest.id outputParameters: - type: object mapping: $. - type: mcp namespace: salesforce-marketing-cloud-journeys-mcp port: 9090 transport: http description: MCP adapter for Salesforce Marketing Cloud REST API — Journeys. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: salesforce-marketing-cloud-fire-journey description: Salesforce Marketing Cloud Fire a Journey Entry Event hints: readOnly: false destructive: false idempotent: false call: salesforce-marketing-cloud-journeys.fireentryevent with: body: tools.body outputParameters: - type: object mapping: $. - name: salesforce-marketing-cloud-list-journeys description: Salesforce Marketing Cloud List Journeys hints: readOnly: true destructive: false idempotent: true call: salesforce-marketing-cloud-journeys.listjourneys with: $page: tools.$page $pageSize: tools.$pageSize $orderBy: tools.$orderBy status: tools.status nameOrDescription: tools.nameOrDescription outputParameters: - type: object mapping: $. - name: salesforce-marketing-cloud-create-journey description: Salesforce Marketing Cloud Create a Journey hints: readOnly: false destructive: false idempotent: false call: salesforce-marketing-cloud-journeys.createjourney with: body: tools.body outputParameters: - type: object mapping: $. - name: salesforce-marketing-cloud-publish-journey description: Salesforce Marketing Cloud Publish a Journey hints: readOnly: false destructive: false idempotent: false call: salesforce-marketing-cloud-journeys.publishjourney with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: salesforce-marketing-cloud-stop-journey description: Salesforce Marketing Cloud Stop a Journey hints: readOnly: false destructive: false idempotent: false call: salesforce-marketing-cloud-journeys.stopjourney with: id: tools.id outputParameters: - type: object mapping: $. - name: salesforce-marketing-cloud-retrieve-journey description: Salesforce Marketing Cloud Retrieve a Journey hints: readOnly: true destructive: false idempotent: true call: salesforce-marketing-cloud-journeys.getjourney with: id: tools.id versionNumber: tools.versionNumber outputParameters: - type: object mapping: $. - name: salesforce-marketing-cloud-update-journey description: Salesforce Marketing Cloud Update a Journey hints: readOnly: false destructive: false idempotent: true call: salesforce-marketing-cloud-journeys.updatejourney with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: salesforce-marketing-cloud-delete-journey description: Salesforce Marketing Cloud Delete a Journey hints: readOnly: false destructive: true idempotent: true call: salesforce-marketing-cloud-journeys.deletejourney with: id: tools.id outputParameters: - type: object mapping: $.