Constant Contact · Capability

AppConnect V3 — Contacts Custom Fields

AppConnect V3 — Contacts Custom Fields. 5 operations. Lead operation: GET custom_fields Collection. Self-contained Naftiko capability covering one Constant Contact business surface.

Run with Naftiko Constant ContactContacts Custom Fields

What You Can Do

GET
Getcustomfields — GET custom_fields Collection
/v1/contact-custom-fields
POST
Postcustomfields — POST (create) a custom_field
/v1/contact-custom-fields
GET
Getcustomfield — GET a custom_field
/v1/contact-custom-fields/{custom-field-id}
PUT
Putcustomfield — Update a custom field.
/v1/contact-custom-fields/{custom-field-id}
DELETE
Deletecustomfield — DELETE a custom_field
/v1/contact-custom-fields/{custom-field-id}

MCP Tools

get-custom-fields-collection

GET custom_fields Collection

read-only idempotent
post-create-custom-field

POST (create) a custom_field

get-custom-field

GET a custom_field

read-only idempotent
update-custom-field

Update a custom field.

idempotent
delete-custom-field

DELETE a custom_field

idempotent

Capability Spec

v3-contacts-custom-fields.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: AppConnect V3 — Contacts Custom Fields
  description: 'AppConnect V3 — Contacts Custom Fields. 5 operations. Lead operation: GET custom_fields Collection. Self-contained
    Naftiko capability covering one Constant Contact business surface.'
  tags:
  - Constant Contact
  - Contacts Custom Fields
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    CONSTANT_CONTACT_API_KEY: CONSTANT_CONTACT_API_KEY
capability:
  consumes:
  - type: http
    namespace: v3-contacts-custom-fields
    baseUri: https://api.cc.email/v3
    description: AppConnect V3 — Contacts Custom Fields business capability. Self-contained, no shared references.
    resources:
    - name: contact_custom_fields
      path: /contact_custom_fields
      operations:
      - name: getcustomfields
        method: GET
        description: GET custom_fields Collection
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: integer
          description: Specifies the number of results displayed per page of output, from 1 - 100, default = 50.
      - name: postcustomfields
        method: POST
        description: POST (create) a custom_field
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: string
          description: The JSON payload required to create a new custom field.
          required: true
    - name: contact_custom_fields-custom_field_id
      path: /contact_custom_fields/{custom_field_id}
      operations:
      - name: getcustomfield
        method: GET
        description: GET a custom_field
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: custom_field_id
          in: path
          type: string
          description: The ID that uniquely identifies the custom field.
          required: true
      - name: putcustomfield
        method: PUT
        description: Update a custom field.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: custom_field_id
          in: path
          type: string
          description: The ID that uniquely identifies the custom field to update.
          required: true
        - name: body
          in: body
          type: string
          description: The JSON payload used to update an existing custom field. Any properties omitted in the PUT request
            are overwritten with a null value.
          required: true
      - name: deletecustomfield
        method: DELETE
        description: DELETE a custom_field
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: custom_field_id
          in: path
          type: string
          description: The ID that uniquely identifies the custom field to delete.
          required: true
  exposes:
  - type: rest
    namespace: v3-contacts-custom-fields-rest
    port: 8080
    description: REST adapter for AppConnect V3 — Contacts Custom Fields. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/contact-custom-fields
      name: contact-custom-fields
      description: REST surface for contact_custom_fields.
      operations:
      - method: GET
        name: getcustomfields
        description: GET custom_fields Collection
        call: v3-contacts-custom-fields.getcustomfields
        with:
          limit: rest.limit
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: postcustomfields
        description: POST (create) a custom_field
        call: v3-contacts-custom-fields.postcustomfields
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/contact-custom-fields/{custom-field-id}
      name: contact-custom-fields-custom-field-id
      description: REST surface for contact_custom_fields-custom_field_id.
      operations:
      - method: GET
        name: getcustomfield
        description: GET a custom_field
        call: v3-contacts-custom-fields.getcustomfield
        with:
          custom_field_id: rest.custom_field_id
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: putcustomfield
        description: Update a custom field.
        call: v3-contacts-custom-fields.putcustomfield
        with:
          custom_field_id: rest.custom_field_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletecustomfield
        description: DELETE a custom_field
        call: v3-contacts-custom-fields.deletecustomfield
        with:
          custom_field_id: rest.custom_field_id
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: v3-contacts-custom-fields-mcp
    port: 9090
    transport: http
    description: MCP adapter for AppConnect V3 — Contacts Custom Fields. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: get-custom-fields-collection
      description: GET custom_fields Collection
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v3-contacts-custom-fields.getcustomfields
      with:
        limit: tools.limit
      outputParameters:
      - type: object
        mapping: $.
    - name: post-create-custom-field
      description: POST (create) a custom_field
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: v3-contacts-custom-fields.postcustomfields
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-custom-field
      description: GET a custom_field
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v3-contacts-custom-fields.getcustomfield
      with:
        custom_field_id: tools.custom_field_id
      outputParameters:
      - type: object
        mapping: $.
    - name: update-custom-field
      description: Update a custom field.
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: v3-contacts-custom-fields.putcustomfield
      with:
        custom_field_id: tools.custom_field_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-custom-field
      description: DELETE a custom_field
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: v3-contacts-custom-fields.deletecustomfield
      with:
        custom_field_id: tools.custom_field_id
      outputParameters:
      - type: object
        mapping: $.