Skip to content
MC0RE edited this page Jul 20, 2026 · 4 revisions

Calls

Manage call activities in Teamleader Focus.

Overview

The Calls resource manages scheduled and completed phone-call activities linked to companies. Calls can be assigned to users, marked complete with an outcome, deleted, and filtered by date or related entity.

Access via Teamleader::calls().

Creation endpoint: create() posts to calls.add internally, not calls.create.

Deletion is supported (since v1.2.8) via delete(), targeting the calls.delete endpoint.

Endpoint

calls

Capabilities

Capability Supported
Pagination βœ… Supported
Filtering βœ… Supported
Sorting ❌ Not supported
Sideloading ❌ Not supported
Creation βœ… Supported
Update βœ… Supported
Deletion βœ… Supported

Methods

list(array $filters = [], array $options = [])

use McoreServices\TeamleaderSDK\Facades\Teamleader;

$calls = Teamleader::calls()->list();

$calls = Teamleader::calls()->list([
    'scheduled_after'  => '2025-04-01',
    'scheduled_before' => '2025-04-30',
]);

$calls = Teamleader::calls()->list([], ['page_size' => 50, 'page_number' => 1]);

info(string $id)

Validates $id before the request.

$call = Teamleader::calls()->info('call-uuid');

create(array $data)

Posts to calls.add. Required fields are validated before the request:

Field Notes
participant.customer.type Required
participant.customer.id Required
due_at ISO 8601 datetime with timezone
assignee.type Required
assignee.id Required
$call = Teamleader::calls()->create([
    'participant' => ['customer' => ['type' => 'company', 'id' => 'company-uuid']],
    'due_at'      => '2025-04-20T14:00:00+02:00',
    'assignee'    => ['type' => 'user', 'id' => 'user-uuid'],
    'description' => 'Follow-up on proposal.',
]);

update(string $id, array $data)

The id is injected into the request body. Validates $id before the request.

Teamleader::calls()->update('call-uuid', [
    'description'     => 'Updated notes after rescheduling',
    'call_outcome_id' => 'outcome-uuid',
]);

complete(string $id, ?string $outcomeId = null, ?string $outcomeSummary = null)

Marks a call as completed. $outcomeId and $outcomeSummary are optional.

Teamleader::calls()->complete('call-uuid', 'outcome-uuid', 'Left a voicemail.');

delete(string $id)

Deletes a call (calls.delete). Validates the UUID; returns an empty result (HTTP 204). Added in v1.2.8.

Teamleader::calls()->delete('call-uuid');

Helper Methods

Method Filter / behaviour
schedule(array $data) Alias for create()
reschedule(string $id, string $newDateTime) update() with a new due_at
upcoming(array $options = []) scheduled_after = today
overdue(array $options = []) scheduled_before = today
today(array $options = []) today's calls
thisWeek(array $options = []) this week's calls
betweenDates(string $start, string $end, array $options = []) scheduled_after + scheduled_before
forCompany(string $companyId, array $options = []) relates_to = company
withOutcome(string $outcomeId, array $options = []) call_outcome_id
Teamleader::calls()->upcoming();
Teamleader::calls()->forCompany('company-uuid');
Teamleader::calls()->betweenDates('2025-04-01', '2025-04-30');

Filters

Filter Type Description
scheduled_after string Calls on or after this date (YYYY-MM-DD)
scheduled_before string Calls on or before this date (YYYY-MM-DD)
relates_to object Related object ({type: 'company', id})
call_outcome_id string Completed calls with a given outcome

Related Resources

Clone this wiki locally