Skip to main content

Quickstart

This guide walks you through setting up a live Click agreement from start to finish.

The first three steps happen in the Click dashboard and can be completed by anyone with Admin or Editor access. Steps 4 onward connect your backend and require developer access.

Prerequisites:

  • A Propper account with Click enabled
  • Admin or Editor role on your organization
  • (For the integration steps) A backend service that can call the Click API

Step 1: Create a Template​

A template is the agreement your users will see. Start here.

  1. Go to Click → Templates and click New Template.

  2. Choose the type that fits your use case:

    • Static Clickwrap: the same content for every user — best for Terms of Service or Privacy Policies
    • Generated Clickwrap (coming soon): personalized content using variables — best for NDAs or custom contracts
    • Consent Management (coming soon): category-based opt-in/out — best for GDPR cookie banners
    Coming Soon

    Only Static Clickwrap is currently available. Generated Clickwrap and Consent Management are not yet accessible.

  3. Give the template a name (this is an internal label, not shown to users).

  4. Write your agreement content in the editor. For Generated templates, use {{variableName}} syntax to insert user-specific values — for example, {{userName}} or {{startDate}}.

  5. Configure the display: title, button labels, and whether to show a decline option.

tip

Keep your agreement text clear and concise. Users are more likely to read and accept shorter, plain-language terms.

Coming Soon

Screenshot: Template editor showing content area and variable insertion


Step 2: Publish a Version​

Publishing locks your content so it can be deployed. A template must be published before you can use it.

  1. When you are satisfied with the content, click Publish.
  2. Confirm whether this is a content-only update or a policy change. A policy change will eventually prompt users who accepted an earlier version to accept again — see Versioning.
  3. Click Confirm Publish.

The template moves from Draft to Published. You cannot edit a published template — any further changes require creating a new version, while your current version continues serving users.

Coming Soon

Screenshot: Publish confirmation dialog showing the content vs. policy change toggle


Step 3: Create a Deployment​

A deployment connects your published template to a specific location in your product.

  1. Go to Click → Deployments and click New Deployment.
  2. Select the template you just published.
  3. Configure the deployment:
    • Domain: your application's domain (e.g. app.yourcompany.com)
    • Path: the URL path where this agreement should appear (e.g. /signup). Use / to cover all pages on the domain.
    • Environment: start with Development or Staging to test before going live
    • Display mode: how the agreement appears to users — modal, inline, or popup
  4. Click Save.

The deployment is saved in an inactive state. It will not show to users until you activate it, giving your team time to complete the integration and test first.

Coming Soon

Screenshot: New deployment form showing domain, path, environment, and display mode fields


Step 4: Get Your Credentials and Deployment ID​

Click works server to server: your backend fetches the agreement, shows it to the user in your own product, and records the acceptance. There is no browser SDK or embeddable script, so these steps involve your developers. They need two things:

  1. OAuth client: Go to Organization → Settings → OAuth Clients and create a client with the click:read, click:write and click:accept scopes. Copy the client secret when it is shown and store it in your backend's secrets manager; it is never needed in a browser.
  2. Deployment ID: Open your deployment and copy the ID shown on the detail page.

Share these with the developer completing the integration.

Coming Soon

Screenshot: Deployment detail page with the Deployment ID field highlighted


Step 5: Render and Accept From Your Backend​

Your developers follow the API quickstart from Step 1. In outline:

  1. Your backend gets an access token with the OAuth client.
  2. When a user needs to see the agreement, it calls the Render API for the deployment. The response carries the agreement content and its checksum.
  3. Your product shows the content to the user.
  4. When the user accepts, your backend calls the Accept API with that checksum and the locale it rendered in (metadata.locale). Propper checks the checksum against what the deployment serves and rejects the acceptance if they differ.
  5. Your backend saves the receiptId from the response next to the user's record, so you can cross-reference Click's evidence records during audits.

Always send an idempotency key with the acceptance so that a retry is recorded once, and always handle a user who declines: Click records acceptances only, so your product decides what a decline means.


Step 6: Test Before Going Live​

With your deployment still set to Development or Staging:

  1. Activate the deployment in the Deployments list.
  2. Run the render and accept calls from your backend.
  3. Confirm:
    • The accept call returns a receiptId
    • The receipt ID is saved in your database
    • An evidence record appears in Click → Evidence within a few seconds
  4. Look the receipt up with GET /v1/click/receipts/{receiptId} and verify it, as in Step 6 of the API quickstart.
Coming Soon

Screenshot: Evidence record in the dashboard showing the acceptance timestamp, user reference, and content hash


Step 7: Go Live​

When testing is complete:

  1. Create a new deployment with Environment set to Production (or update your existing deployment's environment setting).
  2. Point your backend at the production deployment ID.
  3. Activate the production deployment in the Deployments list.

Your agreement is now live: your backend serves it, and records the acceptance, for every user who reaches it.

Coming Soon

Screenshot: Deployments list showing the production deployment with an active status badge


What's Next​