# Custom connector

Custom connectors let The Wallet Crew integrate with systems that do not have a native connector. They are useful when a Brand or partner needs to fetch external data, react to wallet lifecycle events, or route transactional emails through an internal delivery stack.

<details>

<summary><strong>Real-world examples</strong></summary>

* A Brand enriches a loyalty pass with points, tier, or profile data from a CRM.
* A team synchronizes pass installation status with a marketing, analytics, or BI platform.
* A partner keeps The Wallet Crew email rendering, but sends through its own gateway.

</details>

## What this section covers

This section groups the custom connector patterns that are used most often in delivery projects.

### Pass lifecycle hooks

Use this pattern when an external system must react to wallet installation changes.

Typical use cases include CRM synchronization, install-based segmentation, onboarding journeys, and uninstall tracking.

* [Pass installation and uninstallation hooks](/connect/custom-connector/installation-changed-extensibility.md)

### Script-based email delivery

Use this pattern when The Wallet Crew should still build the email content, but the final send must be handled by a provider or relay controlled outside The Wallet Crew.

This is useful for internal gateways, unsupported ESPs, or environments with strict delivery governance.

* [EmailSender extensibility](/connect/custom-connector/emailsender-extensibility.md)

### Generic runtime scripting

Some custom connectors also need a broader runtime script to enrich pass data or register custom provider logic.

That generic model is documented in the developer guide:

* [Custom connector guide](/develop/guides/custom-connector.md)

## When to use a custom connector

Use a custom connector when the integration needs are specific enough that a built-in connector would not fit cleanly.

* Use a built-in connector when one already exists for the target platform.
* Use a custom connector when logic must call a private API or internal relay.
* Use a custom connector when runtime behavior must react to pass lifecycle events.

## FAQ

<details>

<summary><strong>When should a built-in connector be used instead?</strong></summary>

Use a built-in connector when The Wallet Crew already supports the target platform and the expected workflow matches the project needs. Use a custom connector when the integration depends on private APIs, internal relays, or runtime-specific logic.

</details>

<details>

<summary><strong>Is this the right place for install and uninstall synchronization?</strong></summary>

Yes. For wallet installation lifecycle events, start with [Pass installation and uninstallation hooks](/connect/custom-connector/installation-changed-extensibility.md).

</details>

<details>

<summary><strong>Is this the right place for a custom email gateway?</strong></summary>

Yes. For script-based transactional email sending, use [EmailSender extensibility](/connect/custom-connector/emailsender-extensibility.md).

</details>

<details>

<summary><strong>Where is the generic custom connector scripting model documented?</strong></summary>

The broader runtime model is covered in the [Custom connector guide](/develop/guides/custom-connector.md). This page focuses on the connector entry points exposed in the **Connect** section.

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.thewalletcrew.io/connect/custom-connector.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
