> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apifycloud.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Assignment modes

> How the booking engine decides which agent takes a call

The scheduling preset picks one of three **assignment modes**,
which controls how an agent gets attached to a new booking.

## Pick from options

The customer sees a **list of agents** in the booking page and
chooses the one they want.

* Public booking page: the UI renders a picker.
* Availability of each agent is computed independently, so
  customers only see the agents actually free for the slot they're
  considering.

Use this for customer-driven preferences: language, seniority,
named account manager, or any reason a customer might want to pick
a specific human.

## Any available

The system picks the agent automatically from the pool of agents
free at that slot.

* Public booking page: no agent picker is shown; the customer just
  picks a time.
* API: the caller omits `assignedAgentId` and the engine resolves
  one on create.

Use this for support-style flows where the customer doesn't care
who takes the call, only that the slot is booked.

<Note>
  When multiple agents qualify for the same slot, the engine picks
  one deterministically. The goal is a fair distribution across the
  available pool.
</Note>

## URL-forced only

The agent is decided **up front**, by whoever creates the booking.

* Admin / agent flows: the creator picks the agent explicitly.
* Public booking page: the distribution link includes the agent's
  id as a URL parameter, so every customer who opens that link
  books *that* agent.
* API: the caller passes `assignedAgentId` in the request.

Use this when each agent has their **own** distribution link
(business cards, personal email signatures, landing pages per
rep). Nobody ends up on the wrong calendar.

## Which mode should you use?

| Scenario                                      | Recommended mode                        |
| --------------------------------------------- | --------------------------------------- |
| One rep, one link (account manager model)     | URL-forced only                         |
| Each rep promotes themselves (sales, coaches) | URL-forced only                         |
| Customer should choose their preferred agent  | Pick from options                       |
| Tier-2 support, equal-skill pool              | Any available                           |
| External CRM already picked the agent         | URL-forced (API sets `assignedAgentId`) |

## Changing modes later

Assignment mode is part of the scheduling **preset**. Changing it
affects only **new** bookings — existing bookings keep whatever
assignment they were created with.

## What's next

<CardGroup cols={2}>
  <Card title="Agent availability" href="/guides/scheduled-calls/agent-availability">
    What the engine checks before accepting a slot.
  </Card>

  <Card title="Booking surfaces" href="/guides/scheduled-calls/booking-surfaces">
    Where bookings come from.
  </Card>
</CardGroup>
