Integrating SweetProcess with ChatGPT via API

    Unleash productivity by seamlessly linking SweetProcess with ChatGPT through API magic! This powerhouse integration streamlines your workflow, letting you harness AI to manage tasks like a pro. Dive into this guide for a hassle-free setup!

    1. 1

      Create a new GPT

      chatgpt.com/gpts

      then select + Create

      Talk to the AI about what you want this new GPT to be like, its name, logo, vibe of the response and other pieces of information. The AI assistant will help you set that all up.
    2. 2

      Create an Action

      Configure > Create New Action
    3. 3

      Authentication

      Authentication Type: API Key
      API Key: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b
      Auth Type: Custom
      Custom Header Name: Authorization

      Important

      You should include the word 'Token' exactly as written with the capital T followed by a space in the API Key field itself. This is because SweetProcess is expecting an authorization header that looks like this:

      Authorization: Token <your token here>

      In ChatGPT that is where the auth type (Token) is expected to be written. There is not a separate field for it as of writing this guide.





    4. 4

      Schema

      openapi: 3.1.0
      info:   title: SweetProcess Procedures API (read-only)   version: "1.0.0"   description: |     List and fetch Procedures from SweetProcess. Configure authorisation in ChatGPT → Actions. servers:   - url: https://www.sweetprocess.com security:   - BearerAuth: [] tags:   - name: Procedures     description: Endpoints for listing and fetching procedures paths:   /api/v1/procedures/:     get:       operationId: listProcedures       tags: [Procedures]       summary: List procedures (paginated)       parameters:         - in: query           name: page           schema: { type: integer, minimum: 1 }           description: Page number (1-based)         - in: query           name: page_size           schema: { type: integer, minimum: 1, maximum: 200 }           description: Items per page         # Optional filters commonly supported by this API:         - in: query           name: search           schema: { type: string }           description: Full-text search         - in: query           name: team_id           schema: { type: integer }           description: Filter by team ID         - in: query           name: tag           schema: { type: string }           description: Comma-separated tag names         - in: query           name: policy_id           schema: { type: integer }           description: Filter by policy ID         - in: query           name: visible_to_user           schema: { type: string, format: uri }           description: Filter by user URL (visibility)         - in: query           name: ordering           schema:             type: string             description: |               Field to order by. Prefix with '-' for descending.               Typical fields: rank, name, modified_at, approved_at, last_review_at.       responses:         "200":           description: Paginated list of procedures           content:             application/json:               schema:                 $ref: "#/components/schemas/PaginatedProcedureList"               examples:                 page1:                   value:                     count: 418                     next: "https://www.sweetprocess.com/api/v1/procedures/?page=2&page_size=2"                     previous: null                     results:                       - id: 735530                         name: "Integrating SweetProcess with ChatGPT via API"                         description: "{\"content\":\"<h3>Procedure Overview</h3>...\"}"                         content: "[{\"title\":\"\",\"n\":1,...}]"                         modified_at: "2025-08-25T03:38:34.061345Z"                         created_at: "2025-08-25T03:38:14.556002Z"                         content_type: "procedure"                         private: true                         hashid: "KVJP2trB"                         slug: "integrating-sweetprocess-with-chatgpt-via-api"                         url: "https://www.sweetprocess.com/api/v1/procedures/735530/"                         html_url: "https://www.sweetprocess.com/procedures/KVJP2trB/integrating-sweetprocess-with-chatgpt-via-api/"                         author:                           id: 3                           url: "https://www.sweetprocess.com/api/v1/users/3/"                           name: "Jervis Whitley"                           email: "jervis@example.com"                           content_type: "user"                           avatar_image: "user-avatar/IMG_6168.JPG"                           is_deleted: false                       - id: 731939                         name: "How to Build Custom Manuals Instantly with SweetProcess"                         description: "{\"content\":\"<h3>Procedure Overview</h3>...\"}"                         content: "[{\"title\":\"Access SweetProcess Dashboard\",\"n\":1,...}]"                         modified_at: "2025-08-22T06:21:36.116450Z"                         created_at: "2025-08-05T08:06:40.803789Z"                         content_type: "procedure"                         private: true                         hashid: "dyEJjCQO"                         slug: "how-to-build-custom-manuals-instantly-with-sweetprocess"                         url: "https://www.sweetprocess.com/api/v1/procedures/731939/"                         html_url: "https://www.sweetprocess.com/procedures/dyEJjCQO/how-to-build-custom-manuals-instantly-with-sweetprocess/"                     num_pages: 209                     related:                       basic_team:                         "55667":                           url: "https://www.sweetprocess.com/api/v2/teams/55667/"                           id: 55667                           name: "Content Marketing"                           html_url: "https://www.sweetprocess.com/people/team/55667/team/users/"                           content_type: "team"         "401":           $ref: "#/components/responses/UnauthorizedError"         "403":           $ref: "#/components/responses/ForbiddenError"         "429":           $ref: "#/components/responses/RateLimitError"         "500":           $ref: "#/components/responses/ServerError"   /api/v1/procedures/{id}/:     get:       operationId: getProcedureById       tags: [Procedures]       summary: Get a single procedure by ID       parameters:         - in: path           name: id           required: true           schema: { type: integer }       responses:         "200":           description: A single procedure           content:             application/json:               schema:                 $ref: "#/components/schemas/Procedure"         "401":           $ref: "#/components/responses/UnauthorizedError"         "403":           $ref: "#/components/responses/ForbiddenError"         "404":           $ref: "#/components/responses/NotFoundError"         "500":           $ref: "#/components/responses/ServerError" components:   securitySchemes:     BearerAuth:       type: http       scheme: bearer       bearerFormat: API Key   responses:     UnauthorizedError:       description: Missing or invalid credentials     ForbiddenError:       description: You do not have permission to access this resource     NotFoundError:       description: Resource not found     RateLimitError:       description: Too many requests     ServerError:       description: Server error   schemas:     PaginatedProcedureList:       type: object       additionalProperties: false       properties:         count: { type: integer }         next: { type: [ "string", "null" ], format: uri }         previous: { type: [ "string", "null" ], format: uri }         results:           type: array           items: { $ref: "#/components/schemas/ProcedureSummary" }         num_pages: { type: integer }         related:           type: object           description: Included related resources keyed by type (e.g. basic_team)           additionalProperties: true       required: [count, results]     ProcedureSummary:       type: object       additionalProperties: true       properties:         id: { type: integer }         name: { type: string }         description: { type: [ "string", "null" ], description: "Stringified JSON containing HTML" }         content: { type: [ "string", "null" ], description: "Stringified JSON blocks" }         modified_at: { type: [ "string", "null" ], format: date-time }         created_at: { type: [ "string", "null" ], format: date-time }         content_type: { type: [ "string", "null" ] }         private: { type: [ "boolean", "null" ] }         hashid: { type: [ "string", "null" ] }         slug: { type: [ "string", "null" ] }         edited_at: { type: [ "string", "null" ], format: date-time }         diagram_png_url: { type: [ "string", "null" ], format: uri }         diagram_png_status: { type: [ "string", "null" ] }         tags: { type: array, items: { type: string } }         account_id: { type: [ "integer", "null" ] }         is_large: { type: [ "boolean", "null" ] }         lanes: { type: object, additionalProperties: true }         embed_url: { type: [ "string", "null" ], format: uri }         url: { type: [ "string", "null" ], format: uri }         html_url: { type: [ "string", "null" ], format: uri }         current_version: { $ref: "#/components/schemas/ProcedureVersion" }         team_memberships:           type: array           items: { $ref: "#/components/schemas/TeamMembership" }         team_names:           type: array           items: { $ref: "#/components/schemas/TeamName" }         connections:           type: array           items: { $ref: "#/components/schemas/Connection" }         author: { $ref: "#/components/schemas/User" }         original_author: { $ref: "#/components/schemas/User" }         approved_by: { type: [ "string", "null" ] }         signoff_requested_by: { type: [ "string", "null" ] }         next_review_at: { type: [ "string", "null" ], format: date-time }         review_period_months: { type: [ "integer", "null" ] }         steps_blocked_at: { type: [ "string", "null" ], format: date-time }         reviewer: { type: [ "string", "null" ] }         processes: { type: array, items: { type: object } }         policies: { type: array, items: { type: object } }       required: [id, name]     Procedure:       allOf:         - $ref: "#/components/schemas/ProcedureSummary"     ProcedureVersion:       type: object       additionalProperties: true       properties:         id: { type: integer }         url: { type: [ "string", "null" ], format: uri }         content_type: { type: [ "string", "null" ] }         html_url: { type: [ "string", "null" ], format: uri }     TeamMembership:       type: object       additionalProperties: true       properties:         url: { type: [ "string", "null" ], format: uri }         team: { type: [ "string", "null" ], format: uri }         direct: { type: [ "boolean", "null" ] }         via_process: { type: [ "boolean", "null" ] }         via_folder: { type: [ "boolean", "null" ] }         via_name: { type: [ "string", "null" ] }         html_url: { type: [ "string", "null" ], format: uri }     TeamName:       type: object       additionalProperties: true       properties:         type: { type: [ "string", "null" ] }         id: { type: [ "integer", "null" ] }     Connection:       type: object       additionalProperties: true       properties:         team: { type: [ "string", "null" ] }         process: { type: [ "string", "null" ] }         folder: { type: [ "string", "null" ] }         url: { type: [ "string", "null" ], format: uri }     User:       type: object       additionalProperties: true       properties:         id: { type: integer }         url: { type: [ "string", "null" ], format: uri }         name: { type: [ "string", "null" ] }         email: { type: [ "string", "null" ], format: email }         content_type: { type: [ "string", "null" ] }         avatar_image: { type: [ "string", "null" ] }         is_deleted: { type: [ "boolean", "null" ] }

    5. 5

      Privacy Policy

      Use our privacy policy link if you like:

      sweetprocess.com/privacy/
    If you still have a question, we’re here to help. Contact us