Build a Dent-selling Funnel that delivers Dent access and triggers tenant provisioning.
-
Start with the page creation sequence for the Dent-selling Checkout, Upsell, and Thank You Funnel Steps so the Funnel presents the Offer like a polished sales surface, not a wireframe.
-
Provisioning is Product delivery. Configure the Product included in the sold Offer with the access grants and provisioning webhook it must deliver after purchase; do not add a separate operator API step.
-
Create or choose the Webhook Endpoint for the provisioning webhook target. customHeaders is write-only; use it only for the secret that target expects:
{
"name": "Dent Provisioning",
"url": "https://provisioning.example.com/dent/product-delivery",
"events": [],
"customHeaders": {"Authorization": "Bearer <provisioning-secret>"},
"enabled": true
}
Send it to POST /api/v1/webhook-endpoints.
-
Create the Dent Product with Product delivery configuration. Use courseIds or spaceIds for Dent access grants the buyer receives, and webhooks for the provisioning webhook payload:
{
"name": "Dent Pro",
"value": 197,
"status": "publish",
"courseIds": [321],
"spaceIds": [654],
"webhooks": [{
"endpointId": 17,
"parameters": {
"email": "{{ contact.email }}",
"first_name": "{{ contact.firstName }}",
"last_name": "{{ contact.lastName }}",
"plan": "pro",
"order_id": "{{ order.id }}",
"source": "dent-selling-funnel",
"slug": "buyer-tenant-slug",
"name": "Buyer Tenant"
}
}]
}
Send it to POST /api/v1/products.
-
Create the Offer for that Product, then build Checkout, Upsell, and Thank You Funnel Steps exactly as in step 5.
-
Publish every public Funnel Step exactly as in step 5 before opening viewUrl, changing the Cart, or submitting Checkout.
-
Before Cart or Checkout API calls, GET the Checkout Funnel Step viewUrl with a cookie jar and reuse those cookies for POST /api/v1/funnel/cart and Checkout submit calls.
-
A TestGateway purchase of the Offer creates the Order, runs Product delivery, grants the configured Course or Space access, posts product.delivery to the configured provisioning webhook, and records the Webhook Delivery response. Treat tenant creation as the provisioning webhook's downstream effect, not as a separate operator API step in this skill.