---
title: CIAM-Passwordless-Protect-Agreement(ToS)-Subflow
description: The CIAM-Passwordless-Protect-Agreement(ToS)-Subflow lets users read and confirm any agreement required in your environment.
component: pingone-solutions
page_id: pingone-solutions:pingone-customers-passwordless:flow_reference/ciam_passwordless_ciam_agreement
canonical_url: https://docs.pingidentity.com/pingone-solutions/pingone-customers-passwordless/flow_reference/ciam_passwordless_ciam_agreement.html
revdate: July 22, 2024
section_ids:
  purpose: Purpose
  structure: Structure
  input-schema: Input schema
  output-schema: Output schema
  variables-and-parameters: Variables and parameters
---

# CIAM-Passwordless-Protect-Agreement(ToS)-Subflow

The CIAM-Passwordless-Protect-Agreement(ToS)-Subflow lets users read and confirm any agreement required in your environment.

## Purpose

The **CIAM-Passwordless-Protect-Agreement(ToS)-Subflow** determines whether the user needs to consent to an agreement. If so, it displays the agreement for the user and stores the user's consent if they agree to the agreement.

## Structure

Diagram of the structure, as described below.

This flow is divided into sections using teleport nodes.

* **Check if agreement form needs to be displayed**

  Uses comparison nodes to check if agreement is enabled in the environment and if agreement is necessary for the current user. If so, a PingOne node checks the user's consent status. If consent is needed but not present, the flow progresses to the **Display Agreement Form** section; otherwise the flow progresses to the **Return Success** section.

* **Display Agreement Form**

  Uses a PingOne node to retrieve the required agreement, then presents the user with an HTML page on which they can review and accept or decline. The flow then progresses to the **User Action** section.

* **User Action**

  Uses a comparison node to branch based on the user's choice. If the user accepts the agreement, a PingOne node stores the user's agreement, then the flow progresses to the **Return Success** section. If the user declines, an error message displays.

* **Return Success**

  Sends a success JSON response, indicating that the flow has completed successfully.

* **Return Error**

  Sends an error JSON response, indicating that the flow completed unsuccessfully.

## Input schema

This flow has the following inputs.

| Input name              | Required | Description                                                                      |
| ----------------------- | -------- | -------------------------------------------------------------------------------- |
| `checkRequired`         | Yes      | Indicates whether to check for existing consent before displaying the agreement. |
| `pingOneUserId`         | Yes      | The user ID of the current user.                                                 |
| `ciam_agreementEnabled` | Yes      | Indicates whether agreement is enabled for user registration.                    |
| `ciam_companyLogo`      | No       | The company logo.Used only when the main flow was launched using the widget.     |

## Output schema

This flow has the following outputs.

| Output name         | Description                                      |
| ------------------- | ------------------------------------------------ |
| `ciam_errorMessage` | The error message to display in the parent flow. |

## Variables and parameters

This flow uses the following variable or parameter values.

| Variable name           | Parameter name            | Description                                                   |
| ----------------------- | ------------------------- | ------------------------------------------------------------- |
| `ciam_agreementEnabled` | `isTermsOfServiceEnabled` | Indicates whether agreement is enabled for user registration. |
| `ciam_agreementId`      | None                      | The ID of the agreement to present to users.                  |
| `ciam_logoStyle`        | None                      | The HTML style to use for your company logo.                  |
| `ciam_logoUrl`          | None                      | The URL for your company logo.                                |
| `ciam_companyName`      | None                      | Displays the name of your company.                            |
