External Offers

ConvertExternal — link to payment pages, booking tools, and other external destinations.

Basic Usage

Link to an external payment or booking page:

::convert-external{to="https://buy.stripe.com/your-link" type="payment" location="pricing"}
::

Props

PropTypeDefaultDescription
tostringrequiredExternal URL
typeOfferIdrequired'payment', 'booking', 'service', 'social', or 'apply'
locationstringrequiredLocation identifier for tracking
labelstringAuto from typeButton/CTA text
iconstringAuto from typeTrailing icon
variant'button' | 'card''button'Display mode

Button Variant Props

PropTypeDefault
buttonSizeButtonProps['size']'xl'
buttonVariantButtonProps['variant']'solid'
buttonColorButtonProps['color']'primary'
blockboolean

Card Variant Props

PropTypeDefault
titlestring
descriptionstring
pricestring
originalPricestring
priceNotestring
badgestring
highlightedbooleanfalse

Type-Based Defaults

The type prop sets the default label and icon:

TypeDefault LabelDefault Icon
paymentPurchase Nowi-lucide-credit-card
bookingBook Sessioni-lucide-calendar
applyApply Nowi-lucide-send

Override these by passing label and icon explicitly.

Button Variant

A simple CTA button that opens an external URL:

::convert-external
---
to: https://cal.com/yourname/30min
type: booking
location: hero
label: Book a Free Call
icon: i-lucide-calendar
---
::

Card Variant

A rich pricing card with price, description, and CTA:

::convert-external
---
to: https://buy.stripe.com/your-link
type: payment
location: pricing
variant: card
title: Pro Plan
description: Everything you need to validate your idea.
price: "$49"
originalPrice: "$99"
priceNote: one-time payment
badge: Most Popular
highlighted: true
---
::

Event Tracking

Every click fires an offer_click event with {type}_external as the target:

{
  "type": "offer_click",
  "target": "payment_external",
  "location": "pricing"
}

This lets you measure how many visitors reach the payment/booking step.