---
title: "Make"
description: "Connect Quire to Make with webhooks and the REST API."
image: "https://docs.quirelms.com/og.png"
---

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

# Make

<span id="make"></span>

Make connects to Quire through the REST API and webhooks, with Make's own
HTTP and webhook modules. Everything in the [API reference](https://docs.quirelms.com/api/) is
available.

## Start a scenario from a Quire event <!--quire:start-a-scenario-from-a-quire-event-->

1. Add the **Webhooks** module **Custom webhook** as the first module, and
   copy its address.
2. In Quire, open `/admin/webhooks`, choose **Add subscription**, paste the
   address and choose the events. Quire's test event lets Make learn the
   shape of the body: run the module once while it is sent.
3. Verify the signature before acting. In the webhook's advanced settings,
   pass the headers through, then check `webhook-signature` against
   `{webhook-id}.{webhook-timestamp}.{body}` with the subscription secret,
   as the [developer guide](/developer/#webhooks) describes. Add a filter
   that stops the scenario when the check fails.

## Call Quire from a scenario <!--quire:call-quire-from-a-scenario-->

Use the **HTTP** module **Make a request**:

| Field | Value |
| --- | --- |
| URL | `https://acme.quirelms.com/api/v1/<resource>` |
| Method | As the API reference says |
| Headers | `Authorization: Bearer qk_live_...`, and `Idempotency-Key` for writes |
| Body type | Raw, JSON |
| Parse response | Yes |

Make a key for Make alone at `/admin/integrations/api-keys`, with only the
scopes the scenario needs. For lists, loop while `page.has_more` is true,
passing `page.next_cursor` as `cursor`: Make's **Repeater** with a **Set
variable** carrying the cursor does this.

For scenarios that should act as a person, register an OAuth client at
`/admin/integrations/oauth-clients` and use Make's **HTTP** module **Make an
OAuth 2.0 request** with it.

## Example: weekly completion digest <!--quire:example-weekly-completion-digest-->

1. **Schedule**: every Monday.
2. **HTTP**: `GET /api/v1/course_completions?updated_since=<a week ago>`.
3. **Iterator** over `data`, **Aggregator** into a table.
4. Email or post the table.

Source: https://docs.quirelms.com/integrations/make/index.mdx
