Front · Capability
Channel API — Calls
Channel API — Calls. 5 operations. Lead operation: Create a call. Self-contained Naftiko capability covering one Front business surface.
What You Can Do
POST
Createcall
— Create a call
/v1/channels/{channel-id}/calls
PATCH
Updatecall
— Update call status
/v1/channels/{channel-id}/calls/{external-call-id}
POST
Addcallrecording
— Add call recording
/v1/channels/{channel-id}/calls/{external-call-id}/recording
POST
Addcallsummary
— Add call summary
/v1/channels/{channel-id}/calls/{external-call-id}/summary
POST
Addcalltranscript
— Add call transcript
/v1/channels/{channel-id}/calls/{external-call-id}/transcript
MCP Tools
create-call
Create a call
update-call-status
Update call status
idempotent
add-call-recording
Add call recording
add-call-summary
Add call summary
add-call-transcript
Add call transcript
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Channel API — Calls
description: 'Channel API — Calls. 5 operations. Lead operation: Create a call. Self-contained Naftiko capability covering
one Front business surface.'
tags:
- Front
- Calls
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
FRONT_API_KEY: FRONT_API_KEY
capability:
consumes:
- type: http
namespace: channel-calls
baseUri: https://api2.frontapp.com
description: Channel API — Calls business capability. Self-contained, no shared references.
resources:
- name: channels-channel_id-calls
path: /channels/{channel_id}/calls
operations:
- name: createcall
method: POST
description: Create a call
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: channel_id
in: path
type: string
description: The Channel ID.
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: channels-channel_id-calls-external_call_id
path: /channels/{channel_id}/calls/{external_call_id}
operations:
- name: updatecall
method: PATCH
description: Update call status
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: channel_id
in: path
type: string
description: The Channel ID.
required: true
- name: external_call_id
in: path
type: string
description: The external call ID from the provider system (same as `external_call_id` on create).
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: channels-channel_id-calls-external_call_id-recording
path: /channels/{channel_id}/calls/{external_call_id}/recording
operations:
- name: addcallrecording
method: POST
description: Add call recording
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: channel_id
in: path
type: string
description: The Channel ID.
required: true
- name: external_call_id
in: path
type: string
description: The external call ID from the provider system.
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: channels-channel_id-calls-external_call_id-summary
path: /channels/{channel_id}/calls/{external_call_id}/summary
operations:
- name: addcallsummary
method: POST
description: Add call summary
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: channel_id
in: path
type: string
description: The Channel ID.
required: true
- name: external_call_id
in: path
type: string
description: The external call ID from the provider system.
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: channels-channel_id-calls-external_call_id-transcript
path: /channels/{channel_id}/calls/{external_call_id}/transcript
operations:
- name: addcalltranscript
method: POST
description: Add call transcript
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: channel_id
in: path
type: string
description: The Channel ID.
required: true
- name: external_call_id
in: path
type: string
description: The external call ID from the provider system.
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-calls-rest
port: 8080
description: REST adapter for Channel API — Calls. One Spectral-compliant resource per consumed operation, prefixed with
/v1.
resources:
- path: /v1/channels/{channel-id}/calls
name: channels-channel-id-calls
description: REST surface for channels-channel_id-calls.
operations:
- method: POST
name: createcall
description: Create a call
call: channel-calls.createcall
with:
channel_id: rest.channel_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/channels/{channel-id}/calls/{external-call-id}
name: channels-channel-id-calls-external-call-id
description: REST surface for channels-channel_id-calls-external_call_id.
operations:
- method: PATCH
name: updatecall
description: Update call status
call: channel-calls.updatecall
with:
channel_id: rest.channel_id
external_call_id: rest.external_call_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/channels/{channel-id}/calls/{external-call-id}/recording
name: channels-channel-id-calls-external-call-id-recording
description: REST surface for channels-channel_id-calls-external_call_id-recording.
operations:
- method: POST
name: addcallrecording
description: Add call recording
call: channel-calls.addcallrecording
with:
channel_id: rest.channel_id
external_call_id: rest.external_call_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/channels/{channel-id}/calls/{external-call-id}/summary
name: channels-channel-id-calls-external-call-id-summary
description: REST surface for channels-channel_id-calls-external_call_id-summary.
operations:
- method: POST
name: addcallsummary
description: Add call summary
call: channel-calls.addcallsummary
with:
channel_id: rest.channel_id
external_call_id: rest.external_call_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/channels/{channel-id}/calls/{external-call-id}/transcript
name: channels-channel-id-calls-external-call-id-transcript
description: REST surface for channels-channel_id-calls-external_call_id-transcript.
operations:
- method: POST
name: addcalltranscript
description: Add call transcript
call: channel-calls.addcalltranscript
with:
channel_id: rest.channel_id
external_call_id: rest.external_call_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: channel-calls-mcp
port: 9090
transport: http
description: MCP adapter for Channel API — Calls. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: create-call
description: Create a call
hints:
readOnly: false
destructive: false
idempotent: false
call: channel-calls.createcall
with:
channel_id: tools.channel_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: update-call-status
description: Update call status
hints:
readOnly: false
destructive: false
idempotent: true
call: channel-calls.updatecall
with:
channel_id: tools.channel_id
external_call_id: tools.external_call_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: add-call-recording
description: Add call recording
hints:
readOnly: false
destructive: false
idempotent: false
call: channel-calls.addcallrecording
with:
channel_id: tools.channel_id
external_call_id: tools.external_call_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: add-call-summary
description: Add call summary
hints:
readOnly: false
destructive: false
idempotent: false
call: channel-calls.addcallsummary
with:
channel_id: tools.channel_id
external_call_id: tools.external_call_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: add-call-transcript
description: Add call transcript
hints:
readOnly: false
destructive: false
idempotent: false
call: channel-calls.addcalltranscript
with:
channel_id: tools.channel_id
external_call_id: tools.external_call_id
body: tools.body
outputParameters:
- type: object
mapping: $.