Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@
"provider-guides/braintree",
"provider-guides/braze",
"provider-guides/breakcold",
"provider-guides/breezy",
"provider-guides/brevo",
"provider-guides/bynder",
"provider-guides/calendly",
Expand Down
1 change: 1 addition & 0 deletions src/generate-docs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -323,6 +323,7 @@ const baseConfig = {
"provider-guides/braintree",
"provider-guides/braze",
"provider-guides/breakcold",
"provider-guides/breezy",
"provider-guides/brevo",
"provider-guides/bynder",
"provider-guides/calendly",
Expand Down
142 changes: 142 additions & 0 deletions src/provider-guides/breezy.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
---
title: "Breezy"
---

## What's supported

### Supported actions

This connector supports:
- [Read Actions](/read-actions), including full historic backfill. Incremental read is supported for `positions` only. For all other objects, a full read will be done on each scheduled read.
- [Write Actions](/write-actions) (create/update) for `positions` only.
- [Proxy Actions](/proxy-actions), using the base URL `https://api.breezy.hr`.
- Subscribe Actions are not currently supported.

### Supported objects

export const rows = [
{
label: "categories", read: true, write: false, subscribe: false,
href: "https://developer.breezy.hr/reference/company-pipelines-1-1",
}, {
label: "companies", read: true, write: false, subscribe: false,
href: "https://developer.breezy.hr/reference/companies",
}, {
label: "departments", read: true, write: false, subscribe: false,
href: "https://developer.breezy.hr/reference/company-pipelines-1",
}, {
label: "pipelines", read: true, write: false, subscribe: false,
href: "https://developer.breezy.hr/reference/company-pipelines",
}, {
label: "positions", read: true, write: true, subscribe: false,
href: "https://developer.breezy.hr/reference/company-positions",
}, {
label: "questionnaires", read: true, write: false, subscribe: false,
href: "https://developer.breezy.hr/reference/company-questionnaires",
}, {
label: "templates", read: true, write: false, subscribe: false,
href: "https://developer.breezy.hr/reference/company-templates",
},
]

export const Check = () => <span>✅</span>
export const Cross = () => <span>🚫</span>

export function renderCellValue(value) {
if (typeof value === "boolean") {
return value ? <Check/> : <Cross/>;
}

return value;
}

<div style={{ width: '100%', overflowX: 'auto', display: 'block' }}>
<table style={{
width: '100%',
minWidth: '100%',
tableLayout: 'fixed',
textAlign: 'center',
borderCollapse: 'collapse',
display: 'table',
}}>
<thead style={{ display: 'table-header-group', width: '100%' }}>
<tr style={{ display: 'table-row', width: '100%' }}>
<th style={{ textAlign: 'left', width: '44%' }}>Object</th>
<th style={{ width: '14%' }}>Read</th>
<th style={{ width: '14%' }}>Write</th>
<th style={{ width: '14%' }}>Subscribe</th>
</tr>
</thead>
<tbody style={{ display: 'table-row-group', width: '100%' }}>
{[...rows]
.sort((a, b) => a.label.localeCompare(b.label))
.map((row) => (
<tr key={row.label}>
<td style={{ textAlign: 'left' }}>
<a href={row.href}>{row.label}</a>
</td>
<td>{renderCellValue(row.read)}</td>
<td>{renderCellValue(row.write)}</td>
<td>{renderCellValue(row.subscribe)}</td>
</tr>
))}
</tbody>
</table>
</div>

For objects and fields, you can also use Ampersand’s [Object Metadata APIs](/reference/objects-&-fields/get-object-metadata-via-connection) to inspect what’s available for a specific connection.

### Notes and limitations

- **Published vs draft positions**: Write creates new positions as **drafts** in Breezy. The `positions` Read object returns **published** job postings only. If you create a position via Write and need it in Read results, publish that job posting in Breezy first.
- **Incremental read**: Incremental read is supported for `positions` only. `companies`, `pipelines`, `categories`, `departments`, `questionnaires`, and `templates` are read in full on each scheduled read.
- **Pipelines**: The connector returns the default hiring pipeline from Breezy’s pipelines map response.

### Example integration

To define an integration for Breezy, use a manifest file (`amp.yaml`). For a complete example, visit our [samples repo on Github](https://github.com/amp-labs/samples/blob/main/breezy/amp.yaml).

## Before you get started

To connect _Breezy_ with _Ampersand_, you will need [a Breezy account](https://breezy.hr/).

Once your account is created, you'll need to obtain an **API Key** — a Breezy access token used as the `Authorization` header on API requests.

Your customers enter this when they install the integration via the InstallIntegration UI.

### Create a Breezy account

Here's how you can sign up for a Breezy account:

- Sign up at [Breezy](https://breezy.hr/).

### Obtain API credentials
Comment thread
Fullstack-Hero marked this conversation as resolved.

Follow the steps below to obtain your API key from Breezy:

1. Call Breezy's [sign-in endpoint](https://developer.breezy.hr/reference/signin) with a user that has API access. See [Authorization](https://developer.breezy.hr/reference/authorization).

```bash
curl -H "Content-Type: application/json" \
-X POST \
-d '{"email":"user@example.com","password":"YOUR_PASSWORD"}' \
https://api.breezy.hr/v3/signin
```

Use the `access_token` value from the response as the API key.

## Using the connector

This connector uses API Key auth, which means that you do not need to set up a Provider App before getting started. (Provider apps are only required for providers that use OAuth2 Authorization Code grant type.)

The API key is sent in the `Authorization` header with no prefix, per [Breezy’s documentation](https://developer.breezy.hr/reference/authorization).

To start integrating with Breezy:
- Create a manifest file; see [Example integration](#example-integration).
- Deploy it using the [amp CLI](/cli/overview).
- If you are using Read Actions, create a [destination](/destinations).
- Embed the [InstallIntegration](/embeddable-ui-components#install-integration) UI component. The UI component will prompt the customer for their API key.
- Start using the connector!
- If your integration has [Read Actions](/read-actions), you'll start getting webhook messages.
- If your integration has [Write Actions](/write-actions), you can start making API calls to our Write API.
- If your integration has [Proxy Actions](/proxy-actions), you can start making Proxy API calls. Ampersand will automatically attach the API key for the connected account.
Loading