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!
-
1Create a new GPTchatgpt.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. -
2Create an ActionConfigure > Create New Action
-
3AuthenticationAuthentication Type: API Key
API Key: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b
Auth Type: Custom
Custom Header Name: AuthorizationImportant
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.
-
4Schema
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" ] }
Did this answer your question?
If you still have a question, we’re here to help. Contact us