Front · Capability
Channel API — Messages
Channel API — Messages. 3 operations. Lead operation: Update external message status. Self-contained Naftiko capability covering one Front business surface.
What You Can Do
PUT
Updateexternalmessagestatus
— Update external message status
/v1/channels/{channel-id}/conversations/{conv-ext-id}/messages/{message-ext-id}/status
POST
Syncinboundmessage
— Sync inbound message
/v1/channels/{channel-id}/inbound-messages
POST
Syncoutboundmessage
— Sync outbound message
/v1/channels/{channel-id}/outbound-messages
MCP Tools
update-external-message-status
Update external message status
idempotent
sync-inbound-message
Sync inbound message
sync-outbound-message
Sync outbound message
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Channel API — Messages
description: 'Channel API — Messages. 3 operations. Lead operation: Update external message status. Self-contained Naftiko
capability covering one Front business surface.'
tags:
- Front
- Messages
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
FRONT_API_KEY: FRONT_API_KEY
capability:
consumes:
- type: http
namespace: channel-messages
baseUri: https://api2.frontapp.com
description: Channel API — Messages business capability. Self-contained, no shared references.
resources:
- name: channels-channel_id-conversations-conv_ext_id-messages-message_ext_id-status
path: /channels/{channel_id}/conversations/{conv_ext_id}/messages/{message_ext_id}/status
operations:
- name: updateexternalmessagestatus
method: PUT
description: Update external message status
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: channel_id
in: path
type: string
description: The channel ID. Alternatively, you can supply the channel address as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).
required: true
- name: conv_ext_id
in: path
type: string
description: The conversation's external ID.
required: true
- name: message_ext_id
in: path
type: string
description: The message's external ID.
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: channels-channel_id-inbound_messages
path: /channels/{channel_id}/inbound_messages
operations:
- name: syncinboundmessage
method: POST
description: Sync inbound message
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: channel_id
in: path
type: string
description: The channel ID. Alternatively, you can supply the channel address as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: channels-channel_id-outbound_messages
path: /channels/{channel_id}/outbound_messages
operations:
- name: syncoutboundmessage
method: POST
description: Sync outbound message
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: channel_id
in: path
type: string
description: The channel ID. Alternatively, you can supply the channel address as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
authentication:
type: bearer
token: '{{env.FRONT_API_KEY}}'
exposes:
- type: rest
namespace: channel-messages-rest
port: 8080
description: REST adapter for Channel API — Messages. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/channels/{channel-id}/conversations/{conv-ext-id}/messages/{message-ext-id}/status
name: channels-channel-id-conversations-conv-ext-id-messages-message-ext-id-status
description: REST surface for channels-channel_id-conversations-conv_ext_id-messages-message_ext_id-status.
operations:
- method: PUT
name: updateexternalmessagestatus
description: Update external message status
call: channel-messages.updateexternalmessagestatus
with:
channel_id: rest.channel_id
conv_ext_id: rest.conv_ext_id
message_ext_id: rest.message_ext_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/channels/{channel-id}/inbound-messages
name: channels-channel-id-inbound-messages
description: REST surface for channels-channel_id-inbound_messages.
operations:
- method: POST
name: syncinboundmessage
description: Sync inbound message
call: channel-messages.syncinboundmessage
with:
channel_id: rest.channel_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/channels/{channel-id}/outbound-messages
name: channels-channel-id-outbound-messages
description: REST surface for channels-channel_id-outbound_messages.
operations:
- method: POST
name: syncoutboundmessage
description: Sync outbound message
call: channel-messages.syncoutboundmessage
with:
channel_id: rest.channel_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: channel-messages-mcp
port: 9090
transport: http
description: MCP adapter for Channel API — Messages. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: update-external-message-status
description: Update external message status
hints:
readOnly: false
destructive: false
idempotent: true
call: channel-messages.updateexternalmessagestatus
with:
channel_id: tools.channel_id
conv_ext_id: tools.conv_ext_id
message_ext_id: tools.message_ext_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: sync-inbound-message
description: Sync inbound message
hints:
readOnly: false
destructive: false
idempotent: false
call: channel-messages.syncinboundmessage
with:
channel_id: tools.channel_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: sync-outbound-message
description: Sync outbound message
hints:
readOnly: false
destructive: false
idempotent: false
call: channel-messages.syncoutboundmessage
with:
channel_id: tools.channel_id
body: tools.body
outputParameters:
- type: object
mapping: $.