> For the complete documentation index, see [llms.txt](https://developer.kizen.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.kizen.com/docs/integrations-and-plugins/integrations/retireflo.md).

# RetireFlo

Learn how to connect AgentCRM to RetireFlo. Receive RetireFlo survey data in real time as new or updated Contacts and Objects for use in AgentCRM Agentic Workflows.

{% hint style="success" %}
**Audience:** Admins, Developers, Solution Architects

**Purpose:** Provides a high-level look at the features and capabilities of the RetireFlo integration for AgentCRM.
{% endhint %}

## Overview

With the RetireFlo integration, you receive RetireFlo survey submissions in AgentCRM in real time, automatically create new <code class="expression">space.vars.entities</code> or update existing <code class="expression">space.vars.entities</code> in AgentCRM on the basis of these surveys, and utilize their data in <code class="expression">space.vars.automations</code>.

{% hint style="info" %}
**Note:** This integration is exclusive to AgentCRM and is set up from RetireFlo, not the <code class="expression">space.vars.Kizen\_company\_name</code> App Marketplace.

For more information, see [Connect AgentCRM to RetireFlo](/docs/integrations-and-plugins/integrations/retireflo/connect-agentcrm-to-retireflo.md).
{% endhint %}

### What Is the RetireFlo Integration?

The RetireFlo integration connects AgentCRM to RetireFlo. Once you establish the connection, survey submissions in RetireFlo automatically update <code class="expression">space.vars.entities</code> in AgentCRM. The integration refreshes AgentCRM <code class="expression">space.vars.contacts</code> with demographic data on current or prospective clients and their associated pharmacies, medications, and providers.

### When to Use the RetireFlo Integration

Use the RetireFlo integration when you want to automate the transfer of data from survey submissions in RetireFlo to AgentCRM. Once the data exists in AgentCRM, you can work with it in <code class="expression">space.vars.automations</code>.

{% hint style="info" %}
**Note:** If you transform or update survey data in AgentCRM, you can't write it back to RetireFlo at this time. To protect the integrity of the original survey data, the connection goes one way only.&#x20;
{% endhint %}

#### Common Use Cases

Here are some common use cases of the RetireFlo integration:

* Check which Medicare Advantage or Part D plans are most appropriate for a prospect based on their medications or preferred providers.
* Proactively identify clients whose plans might no longer be optimal based on provider participation.
* Utilize up-to-date information about the client's healthcare to improve the speed, accuracy, and effectiveness of follow-up calls.

***

## How the RetireFlo Integration Works

Before you configure the RetireFlo integration, it's important to understand how it functions at a conceptual level.

### Connection Model

The integration connects AgentCRM to RetireFlo through a preconfigured global OAuth application. Because of this, authentication is quick and secure. You don't need to generate additional API keys or set up AgentCRM to connect.

See [Connect AgentCRM to RetireFlo](/docs/integrations-and-plugins/integrations/retireflo/connect-agentcrm-to-retireflo.md) for more information.

### Survey Field Mapping

Survey data in RetireFlo maps to specific data structures in AgentCRM. When someone submits a survey on the RetireFlo side, the integration passes the relevant data to the corresponding <code class="expression">space.vars.entities</code> and <code class="expression">space.vars.fields</code> on the AgentCRM side. Specifically:

* Client data in RetireFlo maps to <code class="expression">space.vars.fields</code> of <code class="expression">space.vars.contacts</code> in AgentCRM.
* Pharmacy data in RetireFlo maps to <code class="expression">space.vars.fields</code> of Pharmacy <code class="expression">space.vars.objects</code> in AgentCRM.
* Medication data in RetireFlo maps to <code class="expression">space.vars.fields</code> of Medication <code class="expression">space.vars.objects</code> in AgentCRM.
* Provider data in RetireFlo maps to <code class="expression">space.vars.fields</code> of Provider <code class="expression">space.vars.objects</code> in AgentCRM.

The following expandable sections describe these mappings in more detail.

<details>

<summary>Client Data Field Mapping</summary>

Client data in RetireFlo maps to the following <code class="expression">space.vars.fields</code> of AgentCRM <code class="expression">space.vars.contacts</code>:

<table data-search="false"><thead><tr><th>Kizen Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>First Name</strong></td><td><code>String</code></td><td>The client's first name.</td></tr><tr><td><strong>Last Name</strong></td><td><code>String</code></td><td>The client's last name.</td></tr><tr><td><strong>Email</strong></td><td><code>String</code></td><td>The client's email address.</td></tr><tr><td><strong>Mobile Phone</strong></td><td><code>String</code></td><td>The client's mobile phone number. This string must consist of digits only and be exactly 10 characters long.</td></tr><tr><td><strong>Street Address</strong></td><td><code>String</code></td><td>The client's street address.</td></tr><tr><td><strong>Street Address 2</strong></td><td><code>String</code></td><td>The second line of the client's street address, if any.</td></tr><tr><td><strong>City</strong></td><td><code>String</code></td><td>The client's city of residence.</td></tr><tr><td><strong>State</strong></td><td><code>Object</code></td><td>The full name of the client's state of residence, mapped internally to the corresponding two-letter abbreviation.</td></tr><tr><td><strong>Zipcode</strong></td><td><code>String</code></td><td>The ZIP code associated with the client's street address.</td></tr><tr><td><strong>Birthday</strong></td><td><code>String</code></td><td>The client's date of birth in <code>YYYY-MM-DD</code> format.</td></tr><tr><td><strong>Pharmacies</strong></td><td><code>Array</code></td><td>An array of pharmacy IDs for the pharmacies associated with the client <code class="expression">space.vars.entity</code>.</td></tr><tr><td><strong>Medications</strong></td><td><code>Array</code></td><td>An array of the medication IDs for the medications associated with the client <code class="expression">space.vars.entity</code>.</td></tr><tr><td><strong>Providers</strong></td><td><code>Array</code></td><td>An array of the provider IDs for the providers associated with the client <code class="expression">space.vars.entity</code>.</td></tr></tbody></table>

</details>

<details>

<summary>Pharmacy Data Field Mapping</summary>

Pharmacy data in RetireFlo maps to the following <code class="expression">space.vars.fields</code> of AgentCRM Pharmacy <code class="expression">space.vars.objects</code>:

<table data-search="false"><thead><tr><th>Kizen Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>Name</strong></td><td><code>String</code></td><td>The NPI or name of the pharmacy.</td></tr><tr><td><strong>Pharmacy Name</strong></td><td><code>String</code></td><td>The name of the pharmacy.</td></tr><tr><td><strong>NPI</strong></td><td><code>String</code></td><td>The NPI of the pharmacy.</td></tr><tr><td><strong>Phone Number</strong></td><td><code>String</code></td><td>The pharmacy's phone number. This string must consist of digits only.</td></tr><tr><td><strong>Street Address</strong></td><td><code>String</code></td><td>The pharmacy's street address.</td></tr><tr><td><strong>Street Address 2</strong></td><td><code>String</code></td><td>The second line of the pharmacy's street address, if any.</td></tr><tr><td><strong>City</strong></td><td><code>String</code></td><td>The city in which the pharmacy is located.</td></tr><tr><td><strong>State</strong></td><td><code>String</code></td><td>The two-letter abbreviation corresponding to the state in which the pharmacy is located.</td></tr><tr><td><strong>Zip</strong></td><td><code>String</code></td><td>The ZIP code associated with the pharmacy's street address.</td></tr></tbody></table>

</details>

<details>

<summary>Medication Data Field Mapping</summary>

Medication data in RetireFlo maps to the following <code class="expression">space.vars.fields</code> of AgentCRM Medication <code class="expression">space.vars.objects</code>:

<table data-search="false"><thead><tr><th>Kizen Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>Drug Name</strong></td><td><code>String</code></td><td>The NDC or name of the medication in the following format: <code>{ndc_or_drug name}-{quantity}.0-{frequency}</code></td></tr><tr><td><strong>Name and Dosage</strong></td><td><code>String</code></td><td>The prescription name and dosage of the medication in the following format: <code>{prescription_name} {dosage_name}</code></td></tr><tr><td><strong>NDC</strong></td><td><code>String</code></td><td>The NDC of the medication</td></tr><tr><td><strong>Quantity</strong></td><td><code>Number</code></td><td>The quantity prescribed of the medication</td></tr><tr><td><strong>Frequency</strong></td><td><code>Number</code></td><td>The supply of the medication in days: <code>30</code>, <code>60</code>, <code>90</code>, <code>180</code>, or <code>365</code></td></tr><tr><td><strong>Connecture Drug ID</strong></td><td><code>String</code></td><td>The ID of the medication in ConnectureDRX</td></tr><tr><td><strong>Connecture Dosage ID</strong></td><td><code>String</code></td><td>The ID of the medication's dosage in ConnectureDRX</td></tr></tbody></table>

{% hint style="info" %}
**Note:** The **Connecture Drug ID** and **Connecture Dosage ID** fields don't appear on the medication <code class="expression">space.vars.entity</code> in AgentCRM. AgentCRM uses these values internally.
{% endhint %}

</details>

<details>

<summary>Provider Data Field Mapping</summary>

Provider data in RetireFlo maps to the following <code class="expression">space.vars.fields</code> of AgentCRM Provider <code class="expression">space.vars.objects</code>:

{% hint style="info" %}
**Note:** Depending on whether the submission contains data from ConnectureDRX, not every field receives a value.
{% endhint %}

<table data-search="false"><thead><tr><th>Kizen Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>Provider Name</strong></td><td><code>String</code></td><td>The NPI or name of the provider or hospital.</td></tr><tr><td><strong>Full Name</strong></td><td><code>String</code></td><td>The full name of the provider or hospital.</td></tr><tr><td><strong>Last Name</strong></td><td><code>String</code></td><td>The last name of the provider.</td></tr><tr><td><strong>NPI</strong></td><td><code>String</code></td><td>The NPI of the provider or hospital.</td></tr><tr><td><strong>Address</strong></td><td><code>String</code></td><td>The street address of the provider or hospital.</td></tr><tr><td><strong>City</strong></td><td><code>String</code></td><td>The city in which the provider or hospital is located.</td></tr><tr><td><strong>State</strong></td><td><code>Object</code></td><td>The full name of the state in which the provider or hospital is located, mapped internally to the corresponding two-letter abbreviation.</td></tr><tr><td><strong>Zip</strong></td><td><code>String</code></td><td>The ZIP code associated with the street address of the provider or hospital. The integration uses the first five characters only.</td></tr></tbody></table>

{% hint style="info" %}
**Note:** The **Last Name** field doesn't appear on the provider <code class="expression">space.vars.entity</code> in AgentCRM. AgentCRM uses this value internally.
{% endhint %}

</details>

### Record Matching

When RetireFlo receives a survey submission, the integration determines whether to create a new <code class="expression">space.vars.contact</code> in AgentCRM or update an existing <code class="expression">space.vars.contact</code> based on the following logic:

1. The integration checks for a match in the **First Name** and **Email** fields. If a match exists, the integration updates this <code class="expression">space.vars.contact</code> in AgentCRM.
2. The integration checks for a match in the **First Name** and **Mobile Phone** fields. If a match exists, the integration updates this <code class="expression">space.vars.contact</code> in AgentCRM.
3. If neither combination yields a match, the integration creates a new <code class="expression">space.vars.contact</code> in AgentCRM.

***

## Available RetireFlo Actions and Topics

For step-by-step instructions on using the RetireFlo integration, see the following topics:

* [Connect AgentCRM to RetireFlo](/docs/integrations-and-plugins/integrations/retireflo/connect-agentcrm-to-retireflo.md)
* [Receive RetireFlo Survey Submissions in AgentCRM](/docs/integrations-and-plugins/integrations/retireflo/receive-retireflo-survey-submissions-in-agentcrm.md)
* [Troubleshoot RetireFlo](/docs/integrations-and-plugins/integrations/retireflo/troubleshoot-retireflo.md)

***

## What's Next

Continue to [Connect AgentCRM to RetireFlo](/docs/integrations-and-plugins/integrations/retireflo/connect-agentcrm-to-retireflo.md) to learn how to set up the AgentCRM connection in RetireFlo.

<details>

<summary><strong>Related Topics</strong></summary>

* [Connect AgentCRM to RetireFlo](/docs/integrations-and-plugins/integrations/retireflo/connect-agentcrm-to-retireflo.md)
* [Receive RetireFlo Survey Submissions in AgentCRM](/docs/integrations-and-plugins/integrations/retireflo/receive-retireflo-survey-submissions-in-agentcrm.md)
* [Troubleshoot RetireFlo](/docs/integrations-and-plugins/integrations/retireflo/troubleshoot-retireflo.md)

</details>

***

*RetireFlo is a trademark of the RetireFlo company.*&#x20;


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://developer.kizen.com/docs/integrations-and-plugins/integrations/retireflo.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
