agentCLAWHUBUnverified

Renatus Icm

Manage Renatus event campaigns by setting up landing pages, running email blasts, handling guest registrations, exporting leads, and syncing unsubscribes. Skill: Renatus Icm Owner: earlvanze Summary: Manage Renatus event campaigns by setting up landing pages, running email blasts, handling guest registrations, exporting leads, and syncing unsubscribes. Tags: latest:2.1.5 Version history: v2.1.5 | 2026-07-22T17:34:06.286Z | user Add sanitized Renatus Back Office order-entry API reference and safety preflight. v2.1.4 | 2026-04-04T18:43:14.351Z | user Add Bitwarden/Browse

OpenClaw

Rank

62

Safety

84

Downloads

2.0k

Updated

Oct 9, 2026

Version

2.1.5

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 2K downloads reported by the source. Last updated 10/9/2026.

Avoid when

  • Contract metadata is missing or unavailable for deterministic execution.

Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing

Public facts

Every fact links back to the source it came from.

Vendor
Clawhubvendor · observed Oct 9, 2026
Protocol compatibility
OpenClawcompatibility · observed Oct 9, 2026
Adoption signal
2K downloadsadoption · observed Oct 9, 2026
Latest release
2.1.5release · observed Jul 22, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s17e9q72w7rrtswh8zeszvr87s8476ga:renatus-icm
  1. Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
  2. Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-earlvanze-renatus-icm/snapshot"

Documentation

CLAWHUB

152,199 characters of source documentation, loaded on request.

Extracted files

5 files captured from the source.

SKILL.md

---
name: renatus-icm
description: Manage Renatus event marketing campaigns as an ICM. Use when running event registration campaigns, sending commercial email blasts, setting up event landing pages, exporting leads from Supabase, syncing unsubscribes to Renatus, or performing browser-based guest registration via CDP. Requires: Renatus credentials, Supabase project, SMTP sender account. Trigger phrases: "run a Renatus event campaign", "send Renatus email campaign", "register a guest for Renatus", "download Renatus leads", "set up event landing page".
---

## ⚠️ Credentials & Security

**Required environment variables** (declare these before running any script):

| Variable | Purpose | Minimum Scope |
|---|---|---|
| `RENATUS_USERNAME` | Renatus back office login | ICM-level account |
| `RENATUS_PASSWORD` | Renatus back office login | ICM-level account |
| `SUPABASE_URL` | Supabase project URL | Read leads |
| `LEAD_ADMIN_TOKEN` | Supabase admin export | `anon` key or limited service role |
| `SENDER_EMAIL` | From address for campaigns | Send-only SMTP account |
| `SENDER_PASSWORD` | SMTP auth for email | Send-only |
| `SUPABASE_SERVICE_ROLE_KEY` | Supabase admin actions (destructive) | Service role — do not use for read-only ops |

**Security recommendations:**
- Use a dedicated Supabase project for testing — do not supply your production `service_role_key`
- Create a least-privilege Supabase anon key scoped to `funnel_leads` table reads only
- Use a separate Chrome/Brave **profile** for CDP access (not your main browser session)
- `renatus_delete_lead.py` performs deletions — always run with `--dry-run` first
- Rotate credentials after use; revoke tokens that were shared or exposed
- Do not commit real credentials to `config.json` — use the `.example` file and environment variables

**CDP access:** Scripts connect to `http://127.0.0.1:9222` to inspect your browser's localStorage/cookies for Renatus auth tokens. This requires Chrome/Brave launched with `--remote-debugging-port=9222`. The skill does not extract your master Renatus password from CDP — it reads existing session tokens only.

---
name: renatus-icm
description: Run a Renatus event marketing campaign as an ICM (Independent Campaign Manager). Use when managing Renatus event registrations, sending commercial email campaigns, setting up event landing pages, downloading/exporting leads, syncing unsubscribes to Renatus, or performing browser-based guest registration via CDP. Handles: Supabase Edge Function registration (submit-renatus-registration), gws/gog email sending (commercial-core-day1), bounce detection and SMS recovery, CDP browser registration/delete scripts, weekly unsubscribe cron, and lead export via lead-admin-export. Trigger phrases: "run a Renatus event campaign", "send Renatus email campaign", "register a guest for Renatus", "download Renatus leads", "set up event landing page", "handle Renatus unsubscribes".
---
# Renatus ICM Skill

Complete toolkit for running a Renatus ev

_meta.json

{
  "ownerId": "kn7a5vdq619nymw8zq4aq95b49846rhq",
  "slug": "renatus-icm",
  "version": "2.1.5",
  "publishedAt": 1784741646286
}

references/email-campaign.md

# Email Campaign Guide

## Overview

Commercial email campaigns are sent from `[email protected]` via gws CLI. The email template is `commercial-core-day1.html`. Campaigns target leads from `renatus_leads.csv` and track delivery via `logs/email_send_log.json`.

## Campaign Assets

| File | Purpose |
|---|---|
| `email/commercial-core-day1.html` | HTML email template |
| `renatus_leads.csv` | Lead list (export via `renatus_leads.py --export`) |
| `logs/email_send_log.json` | Sent log (resumable sends) |
| `logs/bounced_emails.json` | Bounced email tracking |

### Getting the Leads CSV
```bash
# Export fresh from Supabase
python3 scripts/renatus_leads.py --export

# Convert existing JSON to CSV (if you have old JSON export)
python3 scripts/renatus_leads.py --convert-json
```

## Sending Emails

### Prerequisites
- `gws` CLI authenticated as `[email protected]`
- `renatus_leads.csv` exists with at least `email` column
- `commercial-core-day1.html` template

### Dry Run (Preview)
```bash
python3 scripts/send_commercial_email_batches.py --dry-run
```

### Send in Batches (with Resume)
```bash
# First batch
python3 scripts/send_commercial_email_batches.py --batch-size 20 --start 0 --send

# Resume from batch 2
python3 scripts/send_commercial_email_batches.py --batch-size 20 --start 20 --send

# Resume from batch 3
python3 scripts/send_commercial_email_batches.py --batch-size 20 --start 40 --send
```

### Batch Script Flags
| Flag | Default | Description |
|---|---|---|
| `--batch-size` | 20 | Emails per batch |
| `--start` | 0 | Starting index |
| `--dry-run` | — | Preview without sending |
| `--send` | — | Actually send |
| `--delay` | 2.0 | Seconds between sends |

## Personalizing the Template

The template uses `{{recipient_email}}` as a placeholder for the unsubscribe link target.

### Adding Personalized Unsubscribe URL
Replace `{{recipient_email}}` with a base64-encoded unsubscribe URL:

```python
import base64

def encode_unsubscribe_url(email: str, base_url: str = "https://YOUR_DOMAIN/unsubscribe.html") -> str:
    encoded = base64.urlsafe_b64encode(email.encode()).decode().rstrip('=')
    return f"{base_url}?e={encoded}"
```

### Unsubscribe URL in Email Template
```html
<a href="https://YOUR_DOMAIN/unsubscribe.html?e={{recipient_email}}"
   style="color: #999999; font-size: 12px;">
  Unsubscribe
</a>
```

When the user clicks unsubscribe, their email is pre-filled and they confirm removal.

## Subject Line Options

Tested subject lines for Commercial Core:
1. `They turned $7K into $103M. Learn how (April 16)`
2. `Commercial real estate: free training from $100M operators`
3. `[Only 9 days] Learn commercial underwriting from operators`
4. `From skeptical to 90+ doors in 8 months (free training)`

## Bounce Handling

### Check for Bounces
```bash
python3 scripts/handle_bounced_emails.py --check
```

### Export Bounced Contacts with Phone Numbers for SMS
```bash
python3 scripts/handle_bounced_emails.py --export-sms
# Output: logs/sms_fo

references/event-page-setup.md

# Event Page Setup Guide

## Overview

The event landing page is a static HTML form at `site/commercial/index.html` (or similar path on your hostinger/YOUR_DOMAIN deployment). It submits directly to a Supabase Edge Function which registers the lead in Renatus Back Office.

## Page Structure

### Registration Form Fields
- `firstName` (required)
- `lastName` (required)
- `email` (required)
- `phone` (required)
- `website` (honeypot — hidden, must be empty)
- `source_page` (auto-populated from `window.location.href`)

### Submit Endpoint
```
POST https://<PROJECT_REF>.supabase.co/submit-renatus-registration
```

### Request Body
```json
{
  "firstName": "Jane",
  "lastName": "Smith",
  "email": "[email protected]",
  "phone": "(555) 555-5555",
  "website": "",
  "source_page": "https://YOUR_DOMAIN/commercial/"
}
```

### Success Response
```json
{
  "ok": true,
  "eventId": "0817966f-b9bb-448e-bbb8-b4160115bcc8",
  "eventName": "Commercial Core - Live Education",
  "registrationId": "...",
  "leadId": "...",
  "guestUserId": "...",
  "registeredSessions": ["Session Name 1", "Session Name 2"]
}
```

### Error Response
```json
{ "error": "Error message", "details": "optional details" }
```

## Setting Up a New Event Page

### 1. Copy the Template
Copy `site/commercial/index.html` to a new directory, e.g., `site/<event-slug>/index.html`

### 2. Update the Edge Function URL
In the `<script>` section, update:
```javascript
const EDGE_URL = 'https://<PROJECT_REF>.supabase.co/submit-renatus-registration';
```

### 3. Update Event Details
Update the visible event details in the HTML (date, location, speakers, description).

### 4. Update the Event ID
Either:
- Set `RENATUS_EVENT_ID` secret in Supabase (affects all form submissions)
- Add `eventId` field to the form and pass it in the payload

### 5. Get the Event GUID from Renatus
1. Log into `backoffice.myrenatus.com`
2. Navigate to Events
3. Open the event
4. Copy the event GUID from the URL or API response

### 6. Verify Registration Flow
Submit a test registration and confirm:
- Lead appears in `funnel_leads` table
- Lead appears in Renatus Back Office
- Email confirmation is sent by Renatus

## Customizing the Landing Page

### Styling
The page uses CSS custom properties for easy theming:
```css
:root {
  --bg: #0f172a;
  --card: #111827;
  --accent: #22c55e;
  --text: #e5e7eb;
}
```

### Adding a Second Event (In-Person Option)
Modify the `feesPayload` to include multiple sessions, or use separate event pages with different event IDs.

### Redirect to Confirmation Page
After successful form submission:
```javascript
if (resp.ok) {
  window.location.href = '/confirmation.html';
}
```

## Hosting Options

### Option A: Deploy with your hosting scripts
```bash
python3 scripts/deploy_hostinger.py
```

### Option B: Manual FTP Upload
Upload `site/commercial/` directory to your web host's `public_html/` or equivalent.

### Option C: Subdirectory on Existing Site
Upload to `public_html/commercial/` — page wi

references/order-entry-backoffice-api.md

# Renatus Back Office Order Entry API

This reference is a sanitized, capture-derived map of the Renatus **Orders** page. It records endpoint paths, parameter names, status counts, and JSON key shapes only. It contains no captured credentials, identifiers, addresses, payment data, or response records.

## Safety Boundary

- The capture showed authenticated browser transport through `backoffice.myrenatus.com`; use a current, logged-in Chrome/Brave CDP session. Do not reuse values from the HAR.
- Read calls use `GET /api/queryproxy/execute?url=<target-path>` with target-specific parameters appended to the proxy request.
- Command calls use `POST /api/commandproxy/execute?url=<target-path>` with JSON bodies. The observed browser requests used `x-requested-with` and an XSRF header.
- `POST` endpoints below can create a lead or save an order. They are external actions: run a dry-run/read preflight first and do not call them unless the user explicitly approves the exact customer, products, payment method, and submission state.
- Do not replay captured payloads. Build values from the live browser session and the authorized order only.

## Capture Scope

The July 22, 2026 order-entry capture contains 78 network entries. All 50 query-proxy calls and all four command-proxy calls returned HTTP 200. It covers the Orders page, lead/customer selection, product and payment lookup, and one successful order-container save.

## Read Endpoints

| Target path | Parameters observed | Use |
|---|---|---|
| `/api/orders/customersList` | `Value` | Customer search/list |
| `/api/orders/sellersList` | `Value` | Seller search/list |
| `/api/orders/containers/search` | `CurrentPage`, `PageSize`, `SortDirection`, `SortField`, `TotalCount`, `UserId`, `StatusFilter[n][Join]`, `StatusFilter[n][Data][Item]`, `StatusFilter[n][Data][Operation]` | Existing order-container list |
| `/api/orders/products` | — | Product catalog |
| `/api/orders/agreements` | — | Agreement catalog |
| `/api/orders/availableproductsforcustomer` | `BuyerLeadId`, `IsInternational`, `LeadCountryCode` | Products eligible for the selected customer |
| `/api/orderpayments/downpayments` | `CountryCode`, `ProductIds[]` | Down-payment options for selected products |
| `/api/paymentMethod/getUserPaymentMethods` | `CurrentDate`, `UserId` | Saved payment methods |
| `/api/marketinglead/validatelead` | `Value` | Lead validation |
| `/api/userprofile/current` | — | Current authenticated user |

The page also loads campaign/status, settings, domain, notification, grid-filter, and event-status data. Those calls are contextual UI support, not required order-entry mutations.

## Observed Command Endpoints and Payload Shapes

### `POST /api/marketingLead/customerbyleadid`

Observed twice, returning HTTP 200. JSON shape:

```json
{ "Value": "string", "Key": "string" }
```

### `POST /api/guestRegistration/addcustomer`

Observed once, returning HTTP 200. This can create a customer/lead. JSON key shape:

```text
LeadId, Owne
Github ReposUpdated 3h agoRank 70

AionUi

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

activepieces

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

Machine-readable data

The same record, as JSON, for agents and crawlers.

{
  "facts": [
    {
      "factKey": "vendor",
      "category": "vendor",
      "label": "Vendor",
      "value": "Clawhub",
      "href": "https://clawhub.ai/earlvanze/skills/renatus-icm",
      "sourceUrl": "https://clawhub.ai/earlvanze/skills/renatus-icm",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T20:49:14.416Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-earlvanze-renatus-icm/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-earlvanze-renatus-icm/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-09T20:49:14.416Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "2K downloads",
      "href": "https://clawhub.ai/earlvanze/renatus-icm",
      "sourceUrl": "https://clawhub.ai/earlvanze/renatus-icm",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T20:49:14.416Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "2.1.5",
      "href": "https://clawhub.ai/earlvanze/renatus-icm",
      "sourceUrl": "https://clawhub.ai/earlvanze/renatus-icm",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-07-22T17:34:06.286Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-earlvanze-renatus-icm/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-earlvanze-renatus-icm/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 2.1.5",
      "description": "Add sanitized Renatus Back Office order-entry API reference and safety preflight.",
      "href": "https://clawhub.ai/earlvanze/renatus-icm",
      "sourceUrl": "https://clawhub.ai/earlvanze/renatus-icm",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-07-22T17:34:06.286Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 9, 2026.

Sponsored

Ads related to Renatus Icm and adjacent AI workflows.