Salesforce · Capability

Salesforce — Jobs

Salesforce — Jobs. 18 operations. Lead operation: Salesforce Bulk Create Job. Self-contained Naftiko capability covering one Salesforce business surface.

Run with Naftiko SalesforceJobs

What You Can Do

POST
Bulkcreatejob — Salesforce Bulk Create Job
/v1/async/64-0/job
POST
Bulkclosejob — Salesforce Bulk Close Job
/v1/async/64-0/job
POST
Createjob — Salesforce Create Job
/v1/data/v64-0/jobs/ingest
GET
Getalljobs — Salesforce Get All Jobs
/v1/data/v64-0/jobs/ingest
PATCH
Closeorabortajob — Salesforce Close or Abort a Job
/v1/data/v64-0/jobs/ingest
DELETE
Deletejob — Salesforce Delete Job
/v1/data/v64-0/jobs/ingest
GET
Getjobinfo — Salesforce Get Job Info
/v1/data/v64-0/jobs/ingest
PUT
Uploadjobdata — Salesforce Upload Job Data
/v1/data/v64-0/jobs/ingest/batches
GET
Getjobfailedrecordresults — Salesforce Get Job Failed Record Results
/v1/data/v64-0/jobs/ingest/failedresults
GET
Getjobsuccessfulrecordresults — Salesforce Get Job Successful Record Results
/v1/data/v64-0/jobs/ingest/successfulresults
GET
Getjobunprocessedrecordresults — Salesforce Get Job Unprocessed Record Results
/v1/data/v64-0/jobs/ingest/unprocessedrecords
GET
Getallqueryjobs — Salesforce Get All Query Jobs
/v1/data/v64-0/jobs/query
POST
Successfulcreatejobquery — Salesforce Successful Create Job Query
/v1/data/v64-0/jobs/query
GET
Getjobinfoquery — Salesforce Get Job Info Query
/v1/data/v64-0/jobs/query
PATCH
Abortajobquery — Salesforce Abort a Job Query
/v1/data/v64-0/jobs/query
DELETE
Deletejobquery — Salesforce Delete Job Query
/v1/data/v64-0/jobs/query
GET
Getparallelresultsforaqueryjob — Salesforce Get Parallel Results for a Query Job
/v1/data/v64-0/jobs/query/resultpages
GET
Getjobqueryresult — Salesforce Get Job Query Result
/v1/data/v64-0/jobs/query/results

MCP Tools

salesforce-bulk-create-job

Salesforce Bulk Create Job

salesforce-bulk-close-job

Salesforce Bulk Close Job

salesforce-create-job

Salesforce Create Job

salesforce-get-all-jobs

Salesforce Get All Jobs

read-only idempotent
salesforce-close-abort-job

Salesforce Close or Abort a Job

idempotent
salesforce-delete-job

Salesforce Delete Job

idempotent
salesforce-get-job-info

Salesforce Get Job Info

read-only idempotent
salesforce-upload-job-data

Salesforce Upload Job Data

idempotent
salesforce-get-job-failed-record

Salesforce Get Job Failed Record Results

read-only idempotent
salesforce-get-job-successful-record

Salesforce Get Job Successful Record Results

read-only idempotent
salesforce-get-job-unprocessed-record

Salesforce Get Job Unprocessed Record Results

read-only idempotent
salesforce-get-all-query-jobs

Salesforce Get All Query Jobs

read-only idempotent
salesforce-successful-create-job-query

Salesforce Successful Create Job Query

read-only
salesforce-get-job-info-query

Salesforce Get Job Info Query

read-only idempotent
salesforce-abort-job-query

Salesforce Abort a Job Query

idempotent
salesforce-delete-job-query

Salesforce Delete Job Query

idempotent
salesforce-get-parallel-results-query

Salesforce Get Parallel Results for a Query Job

read-only idempotent
salesforce-get-job-query-result

Salesforce Get Job Query Result

read-only idempotent

Capability Spec

salesforce-jobs.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Salesforce — Jobs
  description: 'Salesforce — Jobs. 18 operations. Lead operation: Salesforce Bulk Create Job. Self-contained Naftiko capability
    covering one Salesforce business surface.'
  tags:
  - Salesforce
  - Jobs
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SALESFORCE_API_KEY: SALESFORCE_API_KEY
capability:
  consumes:
  - type: http
    namespace: salesforce-jobs
    baseUri: https://login.salesforce.com
    description: Salesforce — Jobs business capability. Self-contained, no shared references.
    resources:
    - name: async-64.0-job
      path: /async/64.0/job
      operations:
      - name: bulkcreatejob
        method: POST
        description: Salesforce Bulk Create Job
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: X-SFDC-Session
          in: header
          type: string
          required: true
        - name: charset
          in: header
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: async-64.0-job
      path: /async/64.0/job/
      operations:
      - name: bulkclosejob
        method: POST
        description: Salesforce Bulk Close Job
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: X-SFDC-Session
          in: header
          type: string
          required: true
        - name: charset
          in: header
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: data-v64.0-jobs-ingest
      path: /data/v64.0/jobs/ingest
      operations:
      - name: createjob
        method: POST
        description: Salesforce Create Job
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: getalljobs
        method: GET
        description: Salesforce Get All Jobs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: data-v64.0-jobs-ingest
      path: /data/v64.0/jobs/ingest/
      operations:
      - name: closeorabortajob
        method: PATCH
        description: Salesforce Close or Abort a Job
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletejob
        method: DELETE
        description: Salesforce Delete Job
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: getjobinfo
        method: GET
        description: Salesforce Get Job Info
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: data-v64.0-jobs-ingest-batches
      path: /data/v64.0/jobs/ingest//batches
      operations:
      - name: uploadjobdata
        method: PUT
        description: Salesforce Upload Job Data
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Content-Type
          in: header
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: data-v64.0-jobs-ingest-failedResults
      path: /data/v64.0/jobs/ingest//failedResults
      operations:
      - name: getjobfailedrecordresults
        method: GET
        description: Salesforce Get Job Failed Record Results
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: data-v64.0-jobs-ingest-successfulResults
      path: /data/v64.0/jobs/ingest//successfulResults
      operations:
      - name: getjobsuccessfulrecordresults
        method: GET
        description: Salesforce Get Job Successful Record Results
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: data-v64.0-jobs-ingest-unprocessedrecords
      path: /data/v64.0/jobs/ingest//unprocessedrecords
      operations:
      - name: getjobunprocessedrecordresults
        method: GET
        description: Salesforce Get Job Unprocessed Record Results
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: data-v64.0-jobs-query
      path: /data/v64.0/jobs/query
      operations:
      - name: getallqueryjobs
        method: GET
        description: Salesforce Get All Query Jobs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: isPkChunkingEnabled
          in: query
          type: boolean
          description: If set to true, the request only returns information about jobs where PK Chunking is enabled
          required: true
        - name: jobType
          in: query
          type: string
          description: BigObjectIngest Classic V2Query
          required: true
        - name: concurrencyMode
          in: query
          type: string
          description: serial parallel
          required: true
        - name: queryLocator
          in: query
          type: string
          description: use the value from the nextRecordsUrl from the previous set
          required: true
        - name: Content-Type
          in: header
          type: string
          required: true
      - name: successfulcreatejobquery
        method: POST
        description: Salesforce Successful Create Job Query
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: data-v64.0-jobs-query
      path: /data/v64.0/jobs/query/
      operations:
      - name: getjobinfoquery
        method: GET
        description: Salesforce Get Job Info Query
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: abortajobquery
        method: PATCH
        description: Salesforce Abort a Job Query
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletejobquery
        method: DELETE
        description: Salesforce Delete Job Query
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: data-v64.0-jobs-query-resultPages
      path: /data/v64.0/jobs/query//resultPages
      operations:
      - name: getparallelresultsforaqueryjob
        method: GET
        description: Salesforce Get Parallel Results for a Query Job
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Content-Type
          in: header
          type: string
          required: true
        - name: Accept
          in: header
          type: string
          required: true
    - name: data-v64.0-jobs-query-results
      path: /data/v64.0/jobs/query//results
      operations:
      - name: getjobqueryresult
        method: GET
        description: Salesforce Get Job Query Result
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Content-Type
          in: header
          type: string
          required: true
        - name: Accept
          in: header
          type: string
          required: true
    authentication:
      type: bearer
      token: '{{env.SALESFORCE_API_KEY}}'
  exposes:
  - type: rest
    namespace: salesforce-jobs-rest
    port: 8080
    description: REST adapter for Salesforce — Jobs. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/async/64-0/job
      name: async-64-0-job
      description: REST surface for async-64.0-job.
      operations:
      - method: POST
        name: bulkcreatejob
        description: Salesforce Bulk Create Job
        call: salesforce-jobs.bulkcreatejob
        with:
          X-SFDC-Session: rest.X-SFDC-Session
          charset: rest.charset
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/async/64-0/job
      name: async-64-0-job
      description: REST surface for async-64.0-job.
      operations:
      - method: POST
        name: bulkclosejob
        description: Salesforce Bulk Close Job
        call: salesforce-jobs.bulkclosejob
        with:
          X-SFDC-Session: rest.X-SFDC-Session
          charset: rest.charset
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/data/v64-0/jobs/ingest
      name: data-v64-0-jobs-ingest
      description: REST surface for data-v64.0-jobs-ingest.
      operations:
      - method: POST
        name: createjob
        description: Salesforce Create Job
        call: salesforce-jobs.createjob
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getalljobs
        description: Salesforce Get All Jobs
        call: salesforce-jobs.getalljobs
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/data/v64-0/jobs/ingest
      name: data-v64-0-jobs-ingest
      description: REST surface for data-v64.0-jobs-ingest.
      operations:
      - method: PATCH
        name: closeorabortajob
        description: Salesforce Close or Abort a Job
        call: salesforce-jobs.closeorabortajob
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletejob
        description: Salesforce Delete Job
        call: salesforce-jobs.deletejob
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getjobinfo
        description: Salesforce Get Job Info
        call: salesforce-jobs.getjobinfo
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/data/v64-0/jobs/ingest/batches
      name: data-v64-0-jobs-ingest-batches
      description: REST surface for data-v64.0-jobs-ingest-batches.
      operations:
      - method: PUT
        name: uploadjobdata
        description: Salesforce Upload Job Data
        call: salesforce-jobs.uploadjobdata
        with:
          Content-Type: rest.Content-Type
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/data/v64-0/jobs/ingest/failedresults
      name: data-v64-0-jobs-ingest-failedresults
      description: REST surface for data-v64.0-jobs-ingest-failedResults.
      operations:
      - method: GET
        name: getjobfailedrecordresults
        description: Salesforce Get Job Failed Record Results
        call: salesforce-jobs.getjobfailedrecordresults
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/data/v64-0/jobs/ingest/successfulresults
      name: data-v64-0-jobs-ingest-successfulresults
      description: REST surface for data-v64.0-jobs-ingest-successfulResults.
      operations:
      - method: GET
        name: getjobsuccessfulrecordresults
        description: Salesforce Get Job Successful Record Results
        call: salesforce-jobs.getjobsuccessfulrecordresults
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/data/v64-0/jobs/ingest/unprocessedrecords
      name: data-v64-0-jobs-ingest-unprocessedrecords
      description: REST surface for data-v64.0-jobs-ingest-unprocessedrecords.
      operations:
      - method: GET
        name: getjobunprocessedrecordresults
        description: Salesforce Get Job Unprocessed Record Results
        call: salesforce-jobs.getjobunprocessedrecordresults
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/data/v64-0/jobs/query
      name: data-v64-0-jobs-query
      description: REST surface for data-v64.0-jobs-query.
      operations:
      - method: GET
        name: getallqueryjobs
        description: Salesforce Get All Query Jobs
        call: salesforce-jobs.getallqueryjobs
        with:
          isPkChunkingEnabled: rest.isPkChunkingEnabled
          jobType: rest.jobType
          concurrencyMode: rest.concurrencyMode
          queryLocator: rest.queryLocator
          Content-Type: rest.Content-Type
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: successfulcreatejobquery
        description: Salesforce Successful Create Job Query
        call: salesforce-jobs.successfulcreatejobquery
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/data/v64-0/jobs/query
      name: data-v64-0-jobs-query
      description: REST surface for data-v64.0-jobs-query.
      operations:
      - method: GET
        name: getjobinfoquery
        description: Salesforce Get Job Info Query
        call: salesforce-jobs.getjobinfoquery
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: abortajobquery
        description: Salesforce Abort a Job Query
        call: salesforce-jobs.abortajobquery
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletejobquery
        description: Salesforce Delete Job Query
        call: salesforce-jobs.deletejobquery
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/data/v64-0/jobs/query/resultpages
      name: data-v64-0-jobs-query-resultpages
      description: REST surface for data-v64.0-jobs-query-resultPages.
      operations:
      - method: GET
        name: getparallelresultsforaqueryjob
        description: Salesforce Get Parallel Results for a Query Job
        call: salesforce-jobs.getparallelresultsforaqueryjob
        with:
          Content-Type: rest.Content-Type
          Accept: rest.Accept
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/data/v64-0/jobs/query/results
      name: data-v64-0-jobs-query-results
      description: REST surface for data-v64.0-jobs-query-results.
      operations:
      - method: GET
        name: getjobqueryresult
        description: Salesforce Get Job Query Result
        call: salesforce-jobs.getjobqueryresult
        with:
          Content-Type: rest.Content-Type
          Accept: rest.Accept
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: salesforce-jobs-mcp
    port: 9090
    transport: http
    description: MCP adapter for Salesforce — Jobs. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: salesforce-bulk-create-job
      description: Salesforce Bulk Create Job
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: salesforce-jobs.bulkcreatejob
      with:
        X-SFDC-Session: tools.X-SFDC-Session
        charset: tools.charset
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: salesforce-bulk-close-job
      description: Salesforce Bulk Close Job
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: salesforce-jobs.bulkclosejob
      with:
        X-SFDC-Session: tools.X-SFDC-Session
        charset: tools.charset
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: salesforce-create-job
      description: Salesforce Create Job
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: salesforce-jobs.createjob
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: salesforce-get-all-jobs
      description: Salesforce Get All Jobs
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: salesforce-jobs.getalljobs
      outputParameters:
      - type: object
        mapping: $.
    - name: salesforce-close-abort-job
      description: Salesforce Close or Abort a Job
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: salesforce-jobs.closeorabortajob
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: salesforce-delete-job
      description: Salesforce Delete Job
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: salesforce-jobs.deletejob
      outputParameters:
      - type: object
        mapping: $.
    - name: salesforce-get-job-info
      description: Salesforce Get Job Info
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: salesforce-jobs.getjobinfo
      outputParameters:
      - type: object
        mapping: $.
    - name: salesforce-upload-job-data
      description: Salesforce Upload Job Data
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: salesforce-jobs.uploadjobdata
      with:
        Content-Type: tools.Content-Type
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: salesforce-get-job-failed-record
      description: Salesforce Get Job Failed Record Results
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: salesforce-jobs.getjobfailedrecordresults
      outputParameters:
      - type: object
        mapping: $.
    - name: salesforce-get-job-successful-record
      description: Salesforce Get Job Successful Record Results
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: salesforce-jobs.getjobsuccessfulrecordresults
      outputParameters:
      - type: object
        mapping: $.
    - name: salesforce-get-job-unprocessed-record
      description: Salesforce Get Job Unprocessed Record Results
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: salesforce-jobs.getjobunprocessedrecordresults
      outputParameters:
      - type: object
        mapping: $.
    - name: salesforce-get-all-query-jobs
      description: Salesforce Get All Query Jobs
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: salesforce-jobs.getallqueryjobs
      with:
        isPkChunkingEnabled: tools.isPkChunkingEnabled
        jobType: tools.jobType
        concurrencyMode: tools.concurrencyMode
        queryLocator: tools.queryLocator
        Content-Type: tools.Content-Type
      outputParameters:
      - type: object
        mapping: $.
    - name: salesforce-successful-create-job-query
      description: Salesforce Successful Create Job Query
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: salesforce-jobs.successfulcreatejobquery
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: salesforce-get-job-info-query
      description: Salesforce Get Job Info Query
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: salesforce-jobs.getjobinfoquery
      outputParameters:
      - type: object
        mapping: $.
    - name: salesforce-abort-job-query
      description: Salesforce Abort a Job Query
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: salesforce-jobs.abortajobquery
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: salesforce-delete-job-query
      description: Salesforce Delete Job Query
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: salesforce-jobs.deletejobquery
      outputParameters:
      - type: object
        mapping: $.
    - name: salesforce-get-parallel-results-query
      description: Salesforce Get Parallel Results for a Query Job
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: salesforce-jobs.getparallelresultsforaqueryjob
      with:
        Content-Type: tools.Content-Type
        Accept: tools.Accept
      outputParameters:
      - type: object
        mapping: $.
    - name: salesforce-get-job-query-result
      description: Salesforce Get Job Query Result
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: salesforce-jobs.getjobqueryresult
      with:
        Content-Type: tools.Content-Type
        Accept: tools.Accept
      outputParameters:
      - type: object
        mapping: $.