Popp Custom Fields (Beta) API

The Custom Fields (Beta) API from Popp — 2 operation(s) for custom fields (beta).

Operations 5

POST /v1/custom-fields Create a custom field (Beta) #
GET /v1/custom-fields List custom fields (Beta) #
GET /v1/custom-fields/{id} Get a custom field (Beta) #
PATCH /v1/custom-fields/{id} Update a custom field (Beta) #
DELETE /v1/custom-fields/{id} Delete a custom field (Beta) #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/popp:popp-custom-fields-beta-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

popp-custom-fields-beta-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Popp Custom Fields (Beta) API
  description: Popp API documentation
  version: '1'
servers:
- url: https://api.joinpopp.com
  description: Development server
security:
- popp_api_key: []
  organization_id: []
tags:
- name: Custom Fields (Beta)
paths:
  /v1/custom-fields:
    post:
      summary: Create a custom field (Beta)
      description: '**Beta.** You can define and manage custom fields now. Populating candidate values and filtering or searching by them arrives in a later release.


        Creates a custom field for your organization. The field is scoped to the organization resolved from your API key; any `organizationId` in the body is ignored. `fieldKey` must be unique among your active fields, and `type` is fixed once created. When `hasFixedOptions` is true, `allowedValues` is required and non-empty; when false, `allowedValues` must be empty or omitted. `displayAs: AGE` shows a `DATE` field as an age; it is rejected on any other type, and omitting it defaults to `DATE`.


        **Capacity:** there is a maximum number of fields per `type`, and deleting a field does not free that capacity (deletes are permanent). Provision fields deliberately. A create that exceeds the limit for a type returns 400.'
      operationId: create-custom-field
      parameters: []
      tags:
      - Custom Fields (Beta)
      requestBody:
        description: The custom field to create
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomFieldRequest'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomField'
          headers: {}
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
    get:
      summary: List custom fields (Beta)
      description: '**Beta.** You can define and manage custom fields now. Populating candidate values and filtering or searching by them arrives in a later release.


        Lists the active custom fields in your organization. Retired (deleted) fields are not returned. Results are paginated; pass the returned `nextToken` to fetch the next page.'
      operationId: list-custom-fields
      parameters:
      - name: limit
        in: query
        description: Maximum number of fields to return (1-50, default 20).
        required: false
        schema:
          $ref: '#/components/schemas/limit'
      - name: nextToken
        in: query
        description: Pagination token from a previous response.
        required: false
        schema:
          $ref: '#/components/schemas/nextToken'
      tags:
      - Custom Fields (Beta)
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCustomFieldsResponse'
          headers: {}
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
  /v1/custom-fields/{id}:
    get:
      summary: Get a custom field (Beta)
      description: '**Beta.** You can define and manage custom fields now. Populating candidate values and filtering or searching by them arrives in a later release.


        Returns a single custom field by id. A field that belongs to a different organization, or one that has been deleted, returns 404.'
      operationId: get-custom-field
      parameters:
      - name: id
        in: path
        description: Custom field id (UUID).
        required: true
        schema:
          $ref: '#/components/schemas/id'
      tags:
      - Custom Fields (Beta)
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomField'
          headers: {}
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
    patch:
      summary: Update a custom field (Beta)
      description: '**Beta.** You can define and manage custom fields now. Populating candidate values and filtering or searching by them arrives in a later release.


        Updates a custom field''s `label`, `hasFixedOptions`, `allowedValues` and/or `displayAs`. At least one field must be provided. `type` is immutable and cannot be changed. `hasFixedOptions` and `allowedValues` must stay consistent (a fixed-options field needs non-empty `allowedValues`; a free-input field must have none), and `displayAs: AGE` is only valid on a `DATE` field. A field belonging to another organization, or one that has been deleted, returns 404.'
      operationId: update-custom-field
      parameters:
      - name: id
        in: path
        description: Custom field id (UUID).
        required: true
        schema:
          $ref: '#/components/schemas/id'
      tags:
      - Custom Fields (Beta)
      requestBody:
        description: Fields to update
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCustomFieldRequest'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomField'
          headers: {}
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
    delete:
      summary: Delete a custom field (Beta)
      description: '**Beta.** You can define and manage custom fields now. Populating candidate values and filtering or searching by them arrives in a later release.


        Deletes a custom field. **Deletion is permanent and does not free the field''s capacity for its type** (the slot is retired, not reused), so delete deliberately. After deletion the field no longer appears in the list and returns 404 on subsequent reads. A field belonging to another organization, or one already deleted, returns 404.'
      operationId: delete-custom-field
      parameters:
      - name: id
        in: path
        description: Custom field id (UUID).
        required: true
        schema:
          $ref: '#/components/schemas/id'
      tags:
      - Custom Fields (Beta)
      responses:
        '204':
          description: ''
          headers: {}
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers: {}
components:
  schemas:
    CreateCustomFieldRequest:
      type: object
      description: Request body for creating a custom field.
      properties:
        fieldKey:
          type: string
          minLength: 1
          maxLength: 255
          title: Field Key
          description: Your stable key for the field. Must be unique among the organization's active fields.
        label:
          type: string
          minLength: 1
          maxLength: 255
          title: Label
          description: Human-readable display name for the field.
        type:
          type: string
          enum:
          - TEXT
          - TEXT_ARRAY
          - NUMBER
          - DATE
          - BOOLEAN
          title: Type
          description: The field's data type. Cannot be changed after creation.
        hasFixedOptions:
          type: boolean
          title: Has Fixed Options
          description: When true, `allowedValues` is required and non-empty (a dropdown). When false, `allowedValues` must be empty or omitted.
        allowedValues:
          type: array
          items:
            type: string
            minLength: 1
          title: Allowed Values
          description: The permitted values. Required and non-empty when `hasFixedOptions` is true; must be empty or omitted otherwise.
        displayAs:
          type: string
          enum:
          - DATE
          - AGE
          title: Display As
          description: How the value is displayed. `AGE` shows a `DATE` field as a whole-number age in years, derived from the stored date on the day it is read; it is rejected on any other type. Defaults to `DATE`.
      required:
      - fieldKey
      - label
      - type
      - hasFixedOptions
      additionalProperties: false
    ListCustomFieldsResponse:
      type: object
      properties:
        items:
          type: array
          description: Active custom fields in the caller's organization.
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
              organizationId:
                type: string
                format: uuid
              fieldKey:
                type: string
              label:
                type: string
              type:
                type: string
                enum:
                - TEXT
                - TEXT_ARRAY
                - NUMBER
                - DATE
                - BOOLEAN
              hasFixedOptions:
                type: boolean
              allowedValues:
                type:
                - array
                - 'null'
                items:
                  type: string
              displayAs:
                type: string
                enum:
                - DATE
                - AGE
              createdAt:
                type: string
                format: date-time
              updatedAt:
                type: string
                format: date-time
            required:
            - id
            - organizationId
            - fieldKey
            - label
            - type
            - hasFixedOptions
            - allowedValues
            - displayAs
            - createdAt
            - updatedAt
            additionalProperties: false
        nextToken:
          type:
          - string
          - 'null'
          description: Pass back as `nextToken` to fetch the next page. Null when there are no more results.
      required:
      - items
      - nextToken
      additionalProperties: false
    UpdateCustomFieldRequest:
      type: object
      description: Request body for updating a custom field. At least one field must be provided. `type` is immutable and cannot be updated.
      properties:
        label:
          type: string
          minLength: 1
          maxLength: 255
          title: Label
          description: New display name for the field.
        hasFixedOptions:
          type: boolean
          title: Has Fixed Options
          description: Whether values are constrained to `allowedValues`. Must stay consistent with `allowedValues`.
        allowedValues:
          type: array
          items:
            type: string
            minLength: 1
          title: Allowed Values
          description: The permitted values. Must be non-empty when `hasFixedOptions` is true and empty otherwise.
        displayAs:
          type: string
          enum:
          - DATE
          - AGE
          title: Display As
          description: How the value is displayed. `AGE` is only valid on a `DATE` field. Omit to leave unchanged.
      additionalProperties: false
    nextToken:
      type: string
    limit:
      type: integer
    ErrorResponse:
      type: object
    id:
      type: string
    CustomField:
      type: object
      description: A custom field definition for an organization. Custom fields let you add your own typed, filterable attributes to candidate profiles.
      properties:
        id:
          type: string
          format: uuid
          title: Field ID
          description: Unique identifier for the custom field.
        organizationId:
          type: string
          format: uuid
          title: Organization ID
          description: The organization the field belongs to.
        fieldKey:
          type: string
          title: Field Key
          description: Your stable key for the field, unique among the organization's active fields (e.g. "clearanceLevel").
        label:
          type: string
          title: Label
          description: Human-readable display name for the field.
        type:
          type: string
          enum:
          - TEXT
          - TEXT_ARRAY
          - NUMBER
          - DATE
          - BOOLEAN
          title: Type
          description: The field's data type. Immutable after creation.
        hasFixedOptions:
          type: boolean
          title: Has Fixed Options
          description: When true, values are constrained to `allowedValues` (a dropdown). When false, the field accepts free input.
        allowedValues:
          type:
          - array
          - 'null'
          title: Allowed Values
          description: The permitted values when `hasFixedOptions` is true; null or omitted otherwise.
          items:
            type: string
        displayAs:
          type: string
          enum:
          - DATE
          - AGE
          title: Display As
          description: How the value is displayed. `AGE` shows a `DATE` field as a whole-number age in years; the stored value is still the date. `DATE` for every other field.
        createdAt:
          type: string
          format: date-time
          title: Created At
          description: When the field was created (ISO 8601).
        updatedAt:
          type: string
          format: date-time
          title: Updated At
          description: When the field was last updated (ISO 8601).
      required:
      - id
      - organizationId
      - fieldKey
      - label
      - type
      - hasFixedOptions
      - allowedValues
      - displayAs
      - createdAt
      - updatedAt
      additionalProperties: false
  securitySchemes:
    popp_api_key:
      description: Your Popp API key for authentication
      type: apiKey
      name: x-api-key
      in: header
    organization_id:
      description: Your organization's unique identifier
      type: apiKey
      name: x-organization-id
      in: header
x-provenance:
  method: searched
  source: https://docs.joinpopp.com/reference
  harvested: '2026-10-14'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://docs.joinpopp.com/reference/add-candidates-to-list-by-external-id.md
  - https://docs.joinpopp.com/reference/add-candidates-to-list.md
  - https://docs.joinpopp.com/reference/archive-analysis.md
  - https://docs.joinpopp.com/reference/archive-document-type.md
  - https://docs.joinpopp.com/reference/archive-workflow-by-external-id.md
  - https://docs.joinpopp.com/reference/archive-workflow.md
  - https://docs.joinpopp.com/reference/bulk-create-conversations.md
  - https://docs.joinpopp.com/reference/cancel-booking.md
  - https://docs.joinpopp.com/reference/cancel-workflow-run.md
  - https://docs.joinpopp.com/reference/create-analysis-candidate.md
  - https://docs.joinpopp.com/reference/create-analysis.md
  - https://docs.joinpopp.com/reference/create-campaign.md
  - https://docs.joinpopp.com/reference/create-candidate-list.md
  - https://docs.joinpopp.com/reference/create-candidate-note-by-external-id.md
  - https://docs.joinpopp.com/reference/create-candidate-note.md
  - https://docs.joinpopp.com/reference/create-candidate.md
  - https://docs.joinpopp.com/reference/create-conversation.md
  - https://docs.joinpopp.com/reference/create-custom-field.md
  - https://docs.joinpopp.com/reference/create-document-credential.md
  - https://docs.joinpopp.com/reference/create-document-type.md
  - https://docs.joinpopp.com/reference/create-meeting-template.md
  - https://docs.joinpopp.com/reference/create-organization-config.md
  - https://docs.joinpopp.com/reference/create-scheduling-conversation.md
  - https://docs.joinpopp.com/reference/create-user.md
  - https://docs.joinpopp.com/reference/create-webhook.md
  - https://docs.joinpopp.com/reference/create-workflow.md
  - https://docs.joinpopp.com/reference/deactivate-user-by-email.md
  - https://docs.joinpopp.com/reference/deactivate-user.md
  - https://docs.joinpopp.com/reference/delete-candidate-by-email.md
  - https://docs.joinpopp.com/reference/delete-candidate-by-external-id.md
  - https://docs.joinpopp.com/reference/delete-candidate-by-phone-number.md
  - https://docs.joinpopp.com/reference/delete-candidate-list-by-external-id.md
  - https://docs.joinpopp.com/reference/delete-candidate-list.md
  - https://docs.joinpopp.com/reference/delete-candidate-note.md
  - https://docs.joinpopp.com/reference/delete-candidate.md
  - https://docs.joinpopp.com/reference/delete-custom-field.md
  - https://docs.joinpopp.com/reference/delete-document-credential.md
  - https://docs.joinpopp.com/reference/delete-document-type.md
  - https://docs.joinpopp.com/reference/delete-meeting-template.md
  - https://docs.joinpopp.com/reference/delete-tag.md
  - https://docs.joinpopp.com/reference/delete-user-by-email.md
  - https://docs.joinpopp.com/reference/delete-user.md
  - https://docs.joinpopp.com/reference/delete-webhook.md
  - https://docs.joinpopp.com/reference/download-media.md
  - https://docs.joinpopp.com/reference/generate-preferred-answer-requirements.md
  - https://docs.joinpopp.com/reference/generate-questions.md
  - https://docs.joinpopp.com/reference/generate-requirements.md
  - https://docs.joinpopp.com/reference/get-analysis.md
  - https://docs.joinpopp.com/reference/get-booking.md
  - https://docs.joinpopp.com/reference/get-campaign.md
  - https://docs.joinpopp.com/reference/get-candidate-by-external-id.md
  - https://docs.joinpopp.com/reference/get-candidate-list-by-external-id.md
  - https://docs.joinpopp.com/reference/get-candidate-list.md
  - https://docs.joinpopp.com/reference/get-candidate-profile-by-external-id.md
  - https://docs.joinpopp.com/reference/get-candidate.md
  - https://docs.joinpopp.com/reference/get-conversation.md
  - https://docs.joinpopp.com/reference/get-custom-field.md
  - https://docs.joinpopp.com/reference/get-document-media.md
  - https://docs.joinpopp.com/reference/get-document-type.md
  - https://docs.joinpopp.com/reference/get-document.md
  - https://docs.joinpopp.com/reference/get-meeting-template.md
  - https://docs.joinpopp.com/reference/get-organization-config-by-external-id.md
  - https://docs.joinpopp.com/reference/get-organization-config.md
  - https://docs.joinpopp.com/reference/get-organization-details.md
  - https://docs.joinpopp.com/reference/get-user-by-email.md
  - https://docs.joinpopp.com/reference/get-user-calendar.md
  - https://docs.joinpopp.com/reference/get-user.md
  - https://docs.joinpopp.com/reference/get-workflow-analysis-application.md
  - https://docs.joinpopp.com/reference/get-workflow-analysis.md
  - https://docs.joinpopp.com/reference/get-workflow-by-external-id.md
  - https://docs.joinpopp.com/reference/get-workflow-run.md
  - https://docs.joinpopp.com/reference/get-workflow.md
  - https://docs.joinpopp.com/reference/hand-conversation-to-agent.md
  - https://docs.joinpopp.com/reference/invite-calendar-contact.md
  - https://docs.joinpopp.com/reference/list-agents.md
  - https://docs.joinpopp.com/reference/list-analyses.md
  - https://docs.joinpopp.com/reference/list-ats-job-stages.md
  - https://docs.joinpopp.com/reference/list-ats-jobs.md
  - https://docs.joinpopp.com/reference/list-ats-rejection-reasons.md
  - https://docs.joinpopp.com/reference/list-bookings.md
  - https://docs.joinpopp.com/reference/list-campaigns.md
  - https://docs.joinpopp.com/reference/list-candidate-lists.md
  - https://docs.joinpopp.com/reference/list-candidate-notes-by-external-id.md
  - https://docs.joinpopp.com/reference/list-candidate-notes.md
  - https://docs.joinpopp.com/reference/list-conversation-documents.md
  - https://docs.joinpopp.com/reference/list-conversation-messages.md
  - https://docs.joinpopp.com/reference/list-conversations.md
  - https://docs.joinpopp.com/reference/list-custom-fields.md
  - https://docs.joinpopp.com/reference/list-document-credentials.md
  - https://docs.joinpopp.com/reference/list-document-types.md
  - https://docs.joinpopp.com/reference/list-meeting-templates.md
  - https://docs.joinpopp.com/reference/list-organization-users.md
  - https://docs.joinpopp.com/reference/list-organizations.md
  - https://docs.joinpopp.com/reference/list-tags.md
  - https://docs.joinpopp.com/reference/list-templates.md
  - https://docs.joinpopp.com/reference/list-user-calendars.md
  - https://docs.joinpopp.com/reference/list-users.md
  - https://docs.joinpopp.com/reference/list-webhook-events.md
  - https://docs.joinpopp.com/reference/list-webhooks.md
  - https://docs.joinpopp.com/reference/list-workflow-analysis-application-history.md
  - https://docs.joinpopp.com/reference/list-workflow-analysis-applications.md
  - https://docs.joinpopp.com/reference/list-workflow-runs.md
  - https://docs.joinpopp.com/reference/list-workflows.md
  - https://docs.joinpopp.com/reference/parse-availability.md
  - https://docs.joinpopp.com/reference/pause-workflow-by-external-id.md
  - https://docs.joinpopp.com/reference/pause-workflow.md
  - https://docs.joinpopp.com/reference/process-document.md
  - https://docs.joinpopp.com/reference/publish-workflow-by-external-id.md
  - https://docs.joinpopp.com/reference/publish-workflow.md
  - https://docs.joinpopp.com/reference/reactivate-user-by-email.md
  - https://docs.joinpopp.com/reference/reactivate-user.md
  - https://docs.joinpopp.com/reference/remove-candidate-document-by-external-id.md
  - https://docs.joinpopp.com/reference/remove-candidate-document.md
  - https://docs.joinpopp.com/reference/remove-candidates-from-list-by-external-id.md
  - https://docs.joinpopp.com/reference/remove-candidates-from-list.md
  - https://docs.joinpopp.com/reference/reparse-candidate-cv-by-external-id.md
  - https://docs.joinpopp.com/reference/reparse-candidate-cv.md
  - https://docs.joinpopp.com/reference/resend-booking-url.md
  - https://docs.joinpopp.com/reference/resume-workflow-by-external-id.md
  - https://docs.joinpopp.com/reference/resume-workflow.md
  - https://docs.joinpopp.com/reference/send-conversation-message.md
  - https://docs.joinpopp.com/reference/set-user-calendar-availability.md
  - https://docs.joinpopp.com/reference/sign-out-user-by-email.md
  - https://docs.joinpopp.com/reference/sign-out-user.md
  - https://docs.joinpopp.com/reference/start-workflow-runs-by-external-id.md
  - https://docs.joinpopp.com/reference/start-workflow-runs.md
  - https://docs.joinpopp.com/reference/stop-campaign.md
  - https://docs.joinpopp.com/reference/takeover-conversation.md
  - https://docs.joinpopp.com/reference/update-analysis.md
  - https://docs.joinpopp.com/reference/update-booking.md
  - https://docs.joinpopp.com/reference/update-campaign.md
  - https://docs.joinpopp.com/reference/update-candidate-by-external-id.md
  - https://docs.joinpopp.com/reference/update-candidate-list-by-external-id.md
  - https://docs.joinpopp.com/reference/update-candidate-list.md
  - https://docs.joinpopp.com/reference/update-candidate-note.md
  - https://docs.joinpopp.com/reference/update-candidate.md
  - https://docs.joinpopp.com/reference/update-custom-field.md
  - https://docs.joinpopp.com/reference/update-document-credential.md
  - https://docs.joinpopp.com/reference/update-document-type.md
  - https://docs.joinpopp.com/reference/update-meeting-template.md
  - https://docs.joinpopp.com/reference/update-organization-config-by-external-id.md
  - https://docs.joinpopp.com/reference/update-organization-config.md
  - https://docs.joinpopp.com/reference/update-organization-details.md
  - https://docs.joinpopp.com/reference/update-requirements-and-reanalyse.md
  - https://docs.joinpopp.com/reference/update-user-by-email.md
  - https://docs.joinpopp.com/reference/update-user.md
  - https://docs.joinpopp.com/reference/update-webhook.md
  - https://docs.joinpopp.com/reference/update-workflow-by-external-id.md
  - https://docs.joinpopp.com/reference/update-workflow.md
  merge:
    pages: 149
    deduped: 618
    conflicts_kept_first: 0