Ftero (1.19.0)

Download OpenAPI specification:Download

Changelog

1.19.0

1.18.0

1.17.0

1.16.0

  • POST /calls
    • rename source.taskId to source.task to maintain consistency
    • rename newTasks.campaignId to newTasks.campaign to maintain consistency

1.15.0

1.14.0

1.13.0

1.12.0

1.11.0

1.10.0

  • remove tenants

1.9.0

1.8.0

1.7.2

1.7.1

1.7.0

1.6.0

  • POST /calls
    • add timestampClosed
    • set timestampEnd nullable for unanswered calls

1.5.0

  • Documentation
    • sort fields alphabetically
  • POST /calls
    • remove call classification
    • add tags
    • add follow-ups
    • add call attempts
    • unify source and contact fields

1.4.0

Data formats

Date and time

All date and time strings in this document should be formatted according to ISO 8601-1:2019.

In particular Apollo will always send such parameters formatted as UTC time stamps, e.g. 2019-08-24T14:15:22Z.

Phone numbers

All phone numbers must be formatted according to E.164 without any whitespace or brackets.

Every phone number must fulfil the following regular expression: ^\+\d{3,}$.

IDs

IDs can be any string, but should not begin or end with whitespace.

In the examples usually UUIDv4 are used – this is for purposes of illustration only.

Create contact

Request Body schema: application/json
required
Company contact (object) or Person contact (object) (contact)
One of
required
object
required
object or null

Responses

Request samples

Content type
application/json
{
  • "contact": {
    }
}

Search contacts

Retrieve all contacts associated with a search parameter.

Request Body schema: application/json
required
object
phoneNumber
string

An E.164 phone number

params*
additional property
any

Any parameters defined by the customer's endpoint

Responses

Request samples

Content type
application/json
Example
{
  • "query": {
    }
}

Response samples

Content type
application/json
Example
{
  • "contacts": [
    ]
}

Create company

Request Body schema: application/json
required
object (company)
required
object
address
string or null
annotation
string or null

Free-form text

city
string or null
country
string or null
email
string or null
name
required
string
phone
string or null
phone2
string or null
zipCode
string or null

Responses

Request samples

Content type
application/json
{
  • "contact": {
    }
}

Response samples

Content type
application/json
{
  • "contact": {
    }
}

Get company

path Parameters
companyId
required
string (companyId)
Example: 64A865FC-732B-E811-A954-000D3A246A83

Company reference ID

Responses

Response samples

Content type
application/json
{
  • "company": {
    }
}

Modify company

path Parameters
companyId
required
string (companyId)
Example: 64A865FC-732B-E811-A954-000D3A246A83

Company reference ID

Request Body schema: application/json
required
object
address
string or null
annotation
string or null

Free-form text

city
string or null
country
string or null
email
string or null
name
string
phone
string or null
phone2
string or null
zipCode
string or null

Responses

Request samples

Content type
application/json
{
  • "company": {
    }
}

Get company's people

path Parameters
companyId
required
string (companyId)
Example: 64A865FC-732B-E811-A954-000D3A246A83

Company reference ID

Responses

Response samples

Content type
application/json
{
  • "persons": [
    ]
}

Get company's additional data

path Parameters
companyId
required
string (companyId)
Example: 64A865FC-732B-E811-A954-000D3A246A83

Company reference ID

Responses

Response samples

Content type
application/json
{
  • "company": {
    }
}

Create person

Request Body schema: application/json
required
object (companyIdRef)
object
required
object

Responses

Request samples

Content type
application/json
{
  • "contact": {
    }
}

Response samples

Content type
application/json
{
  • "contact": {
    }
}

Get person

path Parameters
personId
required
string (personId)
Example: 83FA8C8A-77AB-4946-A8A0-6E921071176A

Person reference ID

Responses

Response samples

Content type
application/json
{
  • "person": {
    }
}

Modify person

path Parameters
personId
required
string (personId)
Example: 83FA8C8A-77AB-4946-A8A0-6E921071176A

Person reference ID

Request Body schema: application/json
required
object
address
string or null
annotation
string or null

Free-form text

city
string or null
country
string or null
email
string or null
firstName
string or null
lastName
string or null
phone
string or null

Phone number to use in campaigns

phone2
string or null
phoneMobile
string or null
salutation
string or null
title
string or null
zipCode
string or null

Responses

Request samples

Content type
application/json
{
  • "person": {
    }
}

Get person's additional data

path Parameters
personId
required
string (personId)
Example: 83FA8C8A-77AB-4946-A8A0-6E921071176A

Person reference ID

Responses

Response samples

Content type
application/json
{
  • "person": {
    }
}

Get all campaigns

Responses

Response samples

Content type
application/json
{
  • "campaigns": [
    ]
}

Get campaign's statistics

path Parameters
campaignId
required
string (campaignId)
Example: 8EB46643-C769-45F2-AD67-8D1E8D0C8705

Campaign reference ID

Responses

Response samples

Content type
application/json
{
  • "contactsTotal": 42,
  • "contactsOpen": 13,
  • "params1": null,
  • "params2": null
}

Get campaign's contacts

path Parameters
campaignId
required
string (campaignId)
Example: 8EB46643-C769-45F2-AD67-8D1E8D0C8705

Campaign reference ID

Responses

Response samples

Content type
application/json
{
  • "contacts": [
    ]
}

Get campaign's tasks

path Parameters
campaignId
required
string (campaignId)
Example: 8EB46643-C769-45F2-AD67-8D1E8D0C8705

Campaign reference ID

query Parameters
date and time (string) or date only (string)

Lower inclusive limit for the task's timestamp in UTC.

If not provided, no lower limit shall be set.

date and time (string) or date only (string)

Upper non-inclusive limit for the task's timestamp in UTC.

If not provided, no upper limit shall be set.

limit
string

If set, limit the number of returned tasks.

Must be a positive integer.

scheduled
string
Enum: true false

If true, include only tasks with a set timestamp.

If false, include only tasks with an empty timestamp set to null.

If not set, include all available tasks.

Responses

Response samples

Content type
application/json
{
  • "tasks": [
    ]
}

Get campaign's next open contact

path Parameters
campaignId
required
string (campaignId)
Example: 8EB46643-C769-45F2-AD67-8D1E8D0C8705

Campaign reference ID

Responses

Response samples

Content type
application/json
{
  • "contact": {
    }
}

Create call record

Request Body schema: application/json
required
inbound call (object) or outbound call (object) or campaign call (object)
One of
agent
required
string or null

Agent reference ID

Will be null if the call was not answered.

annotation
required
string

Free-form text

required
Array of objects

Previous attempts to reach other agents

required
object or null (CRM contact reference)

Contact tuple, if any was selected

doNotCall
required
boolean

If true, other party does not want to be called again

dtmfPath
required
string

DTMF input by caller

id
required
string <uuid>

Unique ID

required
Array of objects

New follow-up calls

phoneNumber
required
string or null

Phone number of other party, if available

required
object

The source of this call

required
Array of objects

Assigned call-tags

timestampAssigned
required
string or null <date-time>

When was the call assigned to this agent in UTC – i.e. when did the agent's phone start ringing

Will be null if the call was not answered.

timestampClosed
required
string <date-time>

When was post-processing finished in UTC

timestampEnd
required
string or null <date-time>

When did the call end in UTC

Will be null if the call was not answered.

timestampInit
required
string <date-time>

When was the call initialised in UTC

timestampStart
required
string or null <date-time>

When did the call audio start in UTC – i.e. when did the phone stop ringing.

Will be null if the call was not answered.

required
internal transfer (object) or external transfer (object) or null

The target this call has been transferred to, if applicable

Responses

Request samples

Content type
application/json
Example
{
  • "call": {
    }
}