# Integration approaches

How you connect to Cronofy depends first on whose workflows you're building
for: your customers' through your product, or your own company's.

[Authorization & Authentication](https://docs.cronofy.com/developers/temporal-grid/integration-approaches/authorization/index.md)
explains the applications, Organizational Units, and accounts every approach
is built from, and
[Permissions](https://docs.cronofy.com/developers/temporal-grid/integration-approaches/permissions/index.md)
how Cronofy decides what your application can do with users' calendars.

## Your customers’ workflows, through your product
If you're building a product that your customers use to schedule, each
customer connects their own calendars and configuration to your application.

### Managed scheduling and rescheduling (Recommended)
Use a Managed Organizational Unit for each customer, authorized with
[Organization Connect](https://docs.cronofy.com/developers/temporal-grid/connectivity/organization-connect/index.md).
Your application gets the customer's members, their calendars, and their
scheduling configuration, such as Selection Rules and Templates, so Cronofy
can facilitate each meeting's workflow from finding a time through
rescheduling and cancelling.

**Managed scheduling for your customers**

Diagram of managed scheduling for your customers: your customers schedule in your product, which connects to Cronofy through Organization Connect, and Cronofy works with each customer's Organizational Unit: its Scheduling Controls, calendars, and conferencing.

```mermaid
flowchart TB
  Your_customers[Your customers] --> Your_product[Your product]
  Your_product --> Cronofy
  subgraph Your_customer_s_Organizational_Unit [Your customer's Organizational Unit]
    direction LR
    Scheduling_Controls[Scheduling Controls]
    Calendars
    Conferencing
  end
  Cronofy --> Your_customer_s_Organizational_Unit
```

- Your customers schedule in your product.
- Your product connects to Cronofy through Organization Connect, with an authorization for each customer's Organizational Unit.
- Cronofy works with each customer's Organizational Unit.
- The Organizational Unit holds the customer's Scheduling Controls, and connects their calendars and conferencing.


This works for customers of any size. The customer's members connect their
calendars behind the scenes, either through a service account their
administrator authorizes once, as with
[Enterprise Connect](https://docs.cronofy.com/developers/temporal-grid/connectivity/enterprise-connect/index.md), or each
for themselves, as with
[Individual Connect](https://docs.cronofy.com/developers/temporal-grid/connectivity/individual-connect/index.md). Your
application doesn't need to handle either; it works with the Organizational
Unit.

- Create [Scheduling Requests](https://docs.cronofy.com/developers/managed-scheduling/scheduling-requests/index.md)
for the Organizational Unit as a whole, letting Cronofy choose the host.

- Drop to an individual member when you need to, by passing their `sub` in
the [`Cronofy-Impersonate` header](https://docs.cronofy.com/api-reference/authorization/authentication/index.md)
alongside the Organizational Unit's access token.

[Getting Started](https://docs.cronofy.com/developers/getting-started/index.md) walks
through this approach with a Sandbox.

### Calendar and availability only
If you only need the calendar and availability level, such as reading and
writing events or querying availability in your own scheduling flows, you
can connect to calendars directly instead:

**Calendar and availability for your customers**

Diagram of calendar and availability for your customers: your customers schedule in your product, which connects to Cronofy through Enterprise Connect or Individual Connect, and Cronofy connects directly to their calendars.

```mermaid
flowchart LR
  Your_customers[Your customers] --> Your_product[Your product]
  Your_product --> Cronofy
  Cronofy --> Calendars
```

- Your customers schedule in your product.
- Your product connects to Cronofy through Enterprise Connect, for a customer's whole organization, or Individual Connect, for each person.
- Cronofy connects directly to your customers' calendars.


- [Enterprise Connect](https://docs.cronofy.com/developers/temporal-grid/connectivity/enterprise-connect/index.md)
connects a customer's whole organization through a service account their
administrator authorizes once.

- [Individual Connect](https://docs.cronofy.com/developers/temporal-grid/connectivity/individual-connect/index.md)
connects each person, who authorizes your application for their own
calendars.

Your application then works with
[modular calendar and availability control](https://docs.cronofy.com/developers/calendar-and-availability/index.md),
and builds the scheduling workflow itself.

## Your own company’s workflows
If you're building for people inside your own company, such as an internal
recruiting tool or CRM, use an
[Internal Application](https://docs.cronofy.com/api-reference/application-management/internal-applications/index.md).

An Internal Application is linked to your company's Organizational Unit, and
has access to all of its members without any authorization flow.

**Your own company's workflows**

Diagram of an internal integration: your colleagues schedule in your internal application, which connects to Cronofy as an Internal Application, and Cronofy works with your company's Organizational Unit: its Scheduling Controls, calendars, and conferencing.

```mermaid
flowchart TB
  Your_colleagues[Your colleagues] --> Your_internal_application[Your internal application]
  Your_internal_application --> Cronofy
  subgraph Your_company_s_Organizational_Unit [Your company's Organizational Unit]
    direction LR
    Scheduling_Controls[Scheduling Controls]
    Calendars
    Conferencing
  end
  Cronofy --> Your_company_s_Organizational_Unit
```

- Your colleagues schedule in your internal application.
- Your internal application connects to Cronofy as an Internal Application, linked to your company's Organizational Unit, so it needs no authorization flow.
- Cronofy works with your company's Organizational Unit, which holds its Scheduling Controls, and connects its calendars and conferencing.


- Authenticate with the application's `client_secret`.

- Act as a particular member by passing their `sub` in the
[`Cronofy-Impersonate` header](https://docs.cronofy.com/api-reference/authorization/authentication/index.md).

An Internal Application can only access one Organizational Unit, so it isn't
suitable for a product your customers use.


---
[Read in HTML](https://docs.cronofy.com/developers/temporal-grid/integration-approaches/)

## In this section

- [Authorization & Authentication](https://docs.cronofy.com/developers/temporal-grid/integration-approaches/authorization/index.md) — How authorization and authentication works with Cronofy API.
- [Permissions](https://docs.cronofy.com/developers/temporal-grid/integration-approaches/permissions/index.md) — How Cronofy approaches permissions to read, create and modify in users' calendars and events.
