Skip to content
ClientPress
  • Pricing
  • Features
  • Demo
  • SolutionsExpand
    • Coaches and Consultants
    • Employee Onboarding
    • Freelancers and Contractors
    • Teams Working With Outside Freelancers
    • Web and Digital Agencies
  • Contact
  • Log In
  • 0
ClientPress

Getting Started

7
  • Inviting a Client to Their Portal
  • Creating Your First Portal
  • User Roles Explained
  • Initial Setup Checklist
  • Plugin Overview — What ClientPress Does
  • Magic Login Links in Email Notifications
  • How to Link Clients to Their Portal

Navigation

1
  • How Client Login and Redirect Works

Assets, Files, and Deliverables

1
  • Portal Files — Browsing All Uploaded Files Across Portals

Client Setup

4
  • Onboarding — Guiding Clients Through Their First Steps
  • Managing Client Invitations
  • Assigning Project Managers to a Portal
  • Adding Sub-Clients to a Portal

Advanced

3
  • Uninstalling ClientPress — What Data Gets Deleted
  • Private File Storage and Security
  • Activity Log — What Gets Tracked and How to Use It

Automations and Integrations

5
  • REST API Overview
  • Connecting ClientPress to OttoKit
  • Connecting ClientPress to Make
  • Connecting ClientPress to Zapier
  • Using Webhooks with ClientPress

Features and Tabs

14
  • Onboarding — Guiding Clients Through Their First Steps
  • Docs — Adding Portal-Specific Client Documents
  • Guides — Creating and Assigning Global Support Docs
  • People Tab — Managing Portal Members
  • Tools & Links Tab — Building a Client Resource Board
  • Managing Deliverable Revisions
  • Deliverables — Sending Work for Client Approval
  • File Approval Workflow
  • Files Tab — Uploading and Managing Client Files
  • Calendar View — Visualizing Task Due Dates
  • Using the Kanban Board View for Tasks
  • Task Manager — Creating and Managing Tasks
  • Message Board — Topic-Based Team Discussions
  • Discussion Tab — Private Messaging with Clients

Notifications and Emails

3
  • Enabling or Disabling Admin Notifications
  • How Clients Can Manage Their Notification Preferences
  • How Portal Notifications Work

Portals and Hubs

6
  • Setting Portal Width and Layout per View
  • Configuring the Portal Landing Tab
  • Branding a Portal
  • Using Portal Templates
  • Managing Portal Status
  • Understanding Portals and Hubs (Child Portals)

Settings and Configuration

5
  • Setting Up the Login Redirect
  • Appearance Settings
  • Configuring Deliverable Categories and Revision Limits
  • Configuring File Upload Settings
  • Enabling and Disabling Portal Features Globally

Shortcodes and Theme

2
  • Customizing Portal Colors with the Theme Customizer
  • Shortcode Reference

Developer

5
  • ClientPress Hooks & Filters
  • ClientPress Outbound Webhooks
  • ClientPress Inbound Webhooks
  • ClientPress REST API
  • ClientPress Abilities API Integration
View Categories
  • Home
  • Support Documentation
  • Automations and Integrations
  • Using Webhooks with ClientPress

Using Webhooks with ClientPress

3 min read

ClientPress can send an HTTP POST request to any URL whenever something happens in a portal. This lets you connect ClientPress to external tools, automation platforms, and custom systems without any polling or manual effort.


Setting Up a Webhook #

  1. Go to Settings → ClientPress → Advanced → Webhooks
  2. Enter your Endpoint URL — the URL that should receive the webhook
  3. Optionally enter a Signing Secret to verify requests (recommended)
  4. Under Events to Send, check the events you want to fire
  5. Save settings

Leave the Endpoint URL blank to disable webhooks entirely.


Supported Events #

  • portal.created — Fires when a new portal is published
  • file.uploaded — Fires when a file is added to the Files tab
  • file.approved — Fires when a file is approved
  • file.rejected — Fires when a file is rejected
  • task.created — Fires when a new task is created
  • task.completed — Fires when a task is marked complete
  • message.sent — Fires when a message is posted in Discussion
  • invite.accepted — Fires when a client accepts an invitation and creates their account
  • board.topic_posted — Fires when a new topic is posted on the Message Board
  • deliverable.uploaded — Fires when a deliverable is uploaded
  • deliverable.in_review — Fires when a deliverable is sent for client review
  • deliverable.approved — Fires when a client approves a deliverable
  • deliverable.revision_requested — Fires when a client requests a revision on a deliverable

Payload Format #

All webhook requests are HTTP POST with a JSON body and the following structure:

{
  "event":      "task.completed",
  "portal_id":  42,
  "portal_url": "https://your-site.com/client-portal/acme-corp/",
  "timestamp":  "2024-01-18T14:22:00+00:00",
  "data":       { }
}

The data object contains event-specific fields. For example, task.completed includes the task ID, title, and list ID. invite.accepted includes the new user’s ID, email, and display name.


Request Headers #

Every webhook request includes these headers:

  • Content-Type — application/json
  • X-CP-Event — The event slug (e.g. task.completed)
  • X-CP-Portal-ID — The portal’s post ID
  • X-CP-Delivery — A unique UUID for this delivery
  • User-Agent — ClientPress/{version}; https://clientpress.io
  • X-CP-Signature — Present only if a signing secret is configured

Verifying Webhook Signatures #

If you configure a signing secret, each request includes an X-CP-Signature header formatted as:

sha256={hex_encoded_hmac}

The HMAC is computed using SHA-256 over the raw JSON request body, signed with your secret. To verify a request on your endpoint:

  1. Read the raw request body (before parsing JSON)
  2. Compute HMAC-SHA256(body, your_secret)
  3. Compare the result to the value after sha256= in the header
  4. Use a constant-time comparison function to prevent timing attacks

Requests that fail signature verification should be rejected.


Delivery Behavior #

  • Webhooks are sent fire-and-forget — they do not block or slow down portal actions
  • There is no automatic retry if your endpoint is unavailable or returns an error
  • Use the X-CP-Delivery UUID to detect and deduplicate any requests if needed
  • Your endpoint should respond with a 2xx status code to acknowledge receipt

Testing Your Webhook #

The easiest way to test is to use a tool like Webhook.site or RequestBin as a temporary endpoint. Paste the URL into the Webhook URL setting, trigger an event in a portal, and inspect the received payload.

Updated on June 9, 2026

What are your Feelings

  • Happy
  • Normal
  • Sad

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest
Connecting ClientPress to ZapierREST API Overview

Leave a ReplyCancel reply

Table of Contents
  • Setting Up a Webhook
  • Supported Events
  • Payload Format
  • Request Headers
  • Verifying Webhook Signatures
  • Delivery Behavior
  • Testing Your Webhook

Use Cases

  • Coaches and Consultants
  • Employee Onboarding
  • Freelancers and Independent Contractors
  • Teams Working With Outside Freelancers
  • Web and Digital Agencies

How We Compare

  • Market Comparison
  • ClientPress vs Client Portal
  • ClientPress vs. Asana
  • ClientPress vs. Basecamp
  • ClientPress vs. Microsft Teams
  • Clientpress vs. Clickup

Customers

  • Dashboard

Support

  • Documentation
  • Support
  • Changelog
  • Roadmap

Affiliates

  • Affiliate Program
  • Affiliate Dashboard
  • Affiliate Terms and Conditions

Legal

  • Accessibility Statement
  • Cookies Policy
  • Privacy Policy
  • Refund Policy
  • Terms of Service

© 2026 ClientPress

Review My Order

0

Subtotal

Taxes & shipping calculated at checkout

Checkout
  • Pricing
  • Features
  • Demo
  • Solutions
    • Coaches and Consultants
    • Employee Onboarding
    • Freelancers and Contractors
    • Teams Working With Outside Freelancers
    • Web and Digital Agencies
  • Contact
  • Log In
  • 0

Notifications