Customer Trip Recap

Personalized film-warm recap; swap traveler name, three stats, favourite moment and toggle the shared-by badge.

Type
Video
Format
Instagram Reel · 9:16
Orientation
Portrait
Duration
16.55s
Scenes
4
Render cost
$0.00414 / render
VariablesConditional scenes
Open in editor

Free template · opens in the editor, no account required.

Customize Customer Trip Recap

Customer Trip Recap is a ready-to-render Travel / tourism video design formatted for Instagram Reel · 9:16 with 4 scenes and support for variables, conditional scenes. Open it in the editor to replace its copy and media, then render variations through the Zvid API.

19 variables: Every value below is a variable you can override — send them in the variables field of the render request (or edit them in the editor) to generate on-brand versions at scale.

brandNameText
TRIP REWIND
travelerNameText
Maya's Greece '26
openingLineText
Ten days.<br>One island at<br>a time.
recapSubText
Here's how your trip looked back.
statLabel1Text
MILES TRAVELLED
statValue1Text
3,240
statLabel2Text
PLACES SEEN
statValue2Text
7
statLabel3Text
SUNSETS CAUGHT
statValue3Text
9
favouriteMomentText
Cliff-diving in Milos at golden hour — you said it was the best day of the year.
badgeTextText
SHARED WITH LOVE BY TRIP REWIND
showBadgeToggle
on
ctaTextText
Relive the full trip
ctaHandleText
triprewind.app
accentColorColor
#F2B23E
openImageMedia URL
momentImageMedia URL
musicUrlMedia URL

The exact JSON payload

This is the full render config — POST it to the API, or open it in the editor to tweak.

Open in editor ↗
{
  "name": "travel-trip-recap",
  "resolution": "instagram-reel",
  "frameRate": 30,
  "backgroundColor": "#12100E",
  "outputFormat": "mp4",
  "variables": {
    "brandName": "TRIP REWIND",
    "travelerName": "Maya's Greece '26",
    "openingLine": "Ten days.<br>One island at<br>a time.",
    "recapSub": "Here's how your trip looked back.",
    "statLabel1": "MILES TRAVELLED",
    "statValue1": "3,240",
    "statLabel2": "PLACES SEEN",
    "statValue2": "7",
    "statLabel3": "SUNSETS CAUGHT",
    "statValue3": "9",
    "favouriteMoment": "Cliff-diving in Milos at golden hour — you said it was the best day of the year.",
    "badgeText": "SHARED WITH LOVE BY TRIP REWIND",
    "showBadge": true,
    "ctaText": "Relive the full trip",
    "ctaHandle": "triprewind.app",
    "accentColor": "#F2B23E",
    "openImage": "https://images.pexels.com/photos/12963517/pexels-photo-12963517.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940",
    "momentImage": "https://images.pexels.com/photos/31237700/pexels-photo-31237700.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940",
    "musicUrl": "https://cdn.pixabay.com/audio/2025/04/21/audio_ed6f0ed574.mp3"
  },
  "scenes": [
    {
      "id": "open",
      "duration": 4.4,
      "backgroundColor": "#12100E",
      "transition": "fade",
      "transitionId": "stats",
      "transitionDuration": 0.55,
      "visuals": [
        {
          "type": "IMAGE",
          "src": "{{openImage}}",
          "width": 1080,
          "height": 1920,
          "position": "center-center",
          "resize": "cover",
          "zoom": true,
          "track": 0,
          "enterBegin": 0,
          "exitEnd": 4.4
        },
        {
          "type": "SVG",
          "width": 1080,
          "height": 1920,
          "track": 1,
          "enterBegin": 0,
          "exitEnd": 4.4,
          "svg": "<svg width='1080' height='1920' viewBox='0 0 1080 1920' xmlns='http://www.w3.org/2000/svg'><defs><linearGradient id='ttrOpen' x1='0' y1='0' x2='0' y2='1'><stop offset='0' stop-color='#12100E' stop-opacity='0.6'/><stop offset='0.44' stop-color='#12100E' stop-opacity='0.08'/><stop offset='1' stop-color='#12100E' stop-opacity='0.94'/></linearGradient></defs><rect width='1080' height='1920' fill='url(#ttrOpen)'/><rect x='46' y='46' width='988' height='1828' rx='42' fill='none' stroke='rgba(247,240,228,0.2)' stroke-width='1.5'/><rect x='88' y='1140' width='130' height='6' rx='3' fill='#F2B23E'/></svg>"
        },
        {
          "type": "TEXT",
          "x": 540,
          "y": 130,
          "anchor": "top-center",
          "track": 2,
          "enterBegin": 0.25,
          "enterEnd": 0.7,
          "enterAnimation": "fade",
          "exitEnd": 4.4,
          "style": {
            "fontFamily": "Sora"
          },
          "html": "<div style='display:inline-block; border:1.5px solid rgba(247,240,228,0.5); border-radius:999px; padding:14px 36px; color:#F7F0E4; font-size:24px; font-weight:700; letter-spacing:6px;'>{{brandName}}</div>"
        },
        {
          "type": "TEXT",
          "x": 88,
          "y": 1180,
          "width": 920,
          "anchor": "top-left",
          "track": 3,
          "enterBegin": 0.5,
          "enterEnd": 1.05,
          "enterAnimation": "smoothup",
          "exitEnd": 4.4,
          "style": {
            "fontFamily": "Playfair Display"
          },
          "html": "<div style='color:{{accentColor}}; font-size:26px; font-weight:700; letter-spacing:5px; font-family:Sora, sans-serif;'>{{travelerName}}</div><div style='margin-top:18px; color:#F7F0E4; font-size:108px; line-height:0.98; font-weight:600; letter-spacing:-3px;'>{{openingLine}}</div>"
        }
      ]
    },
    {
      "id": "stats",
      "duration": 5,
      "backgroundColor": "#12100E",
      "transition": "smoothup",
      "transitionId": "moment",
      "transitionDuration": 0.55,
      "visuals": [
        {
          "type": "SVG",
          "width": 1080,
          "height": 1920,
          "track": 0,
          "enterBegin": 0,
          "exitEnd": 5,
          "svg": "<svg width='1080' height='1920' viewBox='0 0 1080 1920' xmlns='http://www.w3.org/2000/svg'><defs><radialGradient id='ttrStats' cx='0.5' cy='0.3' r='1'><stop offset='0' stop-color='#221C14'/><stop offset='1' stop-color='#12100E'/></radialGradient></defs><rect width='1080' height='1920' fill='url(#ttrStats)'/><rect x='90' y='560' width='900' height='300' rx='36' fill='rgba(242,178,62,0.05)' stroke='rgba(242,178,62,0.35)' stroke-width='1.5'/><rect x='90' y='900' width='900' height='300' rx='36' fill='rgba(242,178,62,0.05)' stroke='rgba(242,178,62,0.35)' stroke-width='1.5'/><rect x='90' y='1240' width='900' height='300' rx='36' fill='rgba(242,178,62,0.05)' stroke='rgba(242,178,62,0.35)' stroke-width='1.5'/></svg>"
        },
        {
          "type": "TEXT",
          "x": 540,
          "y": 200,
          "width": 900,
          "anchor": "top-center",
          "track": 1,
          "enterBegin": 0.25,
          "enterEnd": 0.7,
          "enterAnimation": "smoothup",
          "exitEnd": 5,
          "style": {
            "fontFamily": "Playfair Display"
          },
          "html": "<div style='text-align:center; color:#F7F0E4; font-size:66px; line-height:1.05; font-weight:600;'>The trip, by<br>the numbers</div><div style='margin-top:18px; text-align:center; color:#B7A98E; font-size:29px; font-weight:400; font-family:Sora, sans-serif;'>{{recapSub}}</div>"
        },
        {
          "type": "TEXT",
          "x": 150,
          "y": 640,
          "anchor": "top-left",
          "track": 2,
          "enterBegin": 0.5,
          "enterEnd": 0.9,
          "enterAnimation": "smoothleft",
          "exitEnd": 5,
          "style": {
            "fontFamily": "Sora"
          },
          "html": "<div style='color:#B7A98E; font-size:26px; font-weight:700; letter-spacing:4px;'>{{statLabel1}}</div><div style='margin-top:6px; color:{{accentColor}}; font-size:130px; line-height:1; font-weight:800; letter-spacing:-4px;'>{{statValue1}}</div>"
        },
        {
          "type": "TEXT",
          "x": 150,
          "y": 980,
          "anchor": "top-left",
          "track": 3,
          "enterBegin": 0.7,
          "enterEnd": 1.1,
          "enterAnimation": "smoothleft",
          "exitEnd": 5,
          "style": {
            "fontFamily": "Sora"
          },
          "html": "<div style='color:#B7A98E; font-size:26px; font-weight:700; letter-spacing:4px;'>{{statLabel2}}</div><div style='margin-top:6px; color:{{accentColor}}; font-size:130px; line-height:1; font-weight:800; letter-spacing:-4px;'>{{statValue2}}</div>"
        },
        {
          "type": "TEXT",
          "x": 150,
          "y": 1320,
          "anchor": "top-left",
          "track": 4,
          "enterBegin": 0.9,
          "enterEnd": 1.3,
          "enterAnimation": "smoothleft",
          "exitEnd": 5,
          "style": {
            "fontFamily": "Sora"
          },
          "html": "<div style='color:#B7A98E; font-size:26px; font-weight:700; letter-spacing:4px;'>{{statLabel3}}</div><div style='margin-top:6px; color:{{accentColor}}; font-size:130px; line-height:1; font-weight:800; letter-spacing:-4px;'>{{statValue3}}</div>"
        }
      ]
    },
    {
      "id": "moment",
      "duration": 4.8,
      "backgroundColor": "#12100E",
      "transition": "fade",
      "transitionId": "cta",
      "transitionDuration": 0.55,
      "visuals": [
        {
          "type": "IMAGE",
          "src": "{{momentImage}}",
          "width": 1080,
          "height": 1920,
          "position": "center-center",
          "resize": "cover",
          "zoom": true,
          "track": 0,
          "enterBegin": 0,
          "exitEnd": 4.8
        },
        {
          "type": "SVG",
          "width": 1080,
          "height": 1920,
          "track": 1,
          "enterBegin": 0,
          "exitEnd": 4.8,
          "svg": "<svg width='1080' height='1920' viewBox='0 0 1080 1920' xmlns='http://www.w3.org/2000/svg'><defs><linearGradient id='ttrMoment' x1='0' y1='0' x2='0' y2='1'><stop offset='0' stop-color='#12100E' stop-opacity='0.55'/><stop offset='0.45' stop-color='#12100E' stop-opacity='0.1'/><stop offset='1' stop-color='#12100E' stop-opacity='0.95'/></linearGradient></defs><rect width='1080' height='1920' fill='url(#ttrMoment)'/><rect x='84' y='1180' width='6' height='420' rx='3' fill='#F2B23E'/></svg>"
        },
        {
          "type": "TEXT",
          "condition": "{{showBadge}}",
          "x": 540,
          "y": 170,
          "anchor": "top-center",
          "track": 3,
          "enterBegin": 0.3,
          "enterEnd": 0.7,
          "enterAnimation": "smoothdown",
          "exitEnd": 4.8,
          "style": {
            "fontFamily": "Sora"
          },
          "html": "<div style='display:inline-block; background:rgba(242,178,62,0.16); border:1.5px solid rgba(242,178,62,0.55); color:#F2B23E; border-radius:999px; padding:12px 32px; font-size:22px; font-weight:800; letter-spacing:3px;'>{{badgeText}}</div>"
        },
        {
          "type": "TEXT",
          "x": 118,
          "y": 1210,
          "width": 870,
          "anchor": "top-left",
          "track": 2,
          "enterBegin": 0.45,
          "enterEnd": 1,
          "enterAnimation": "smoothup",
          "exitEnd": 4.8,
          "style": {
            "fontFamily": "Playfair Display"
          },
          "html": "<div style='color:{{accentColor}}; font-size:26px; font-weight:700; letter-spacing:5px; font-family:Sora, sans-serif;'>FAVOURITE MOMENT</div><div style='margin-top:18px; color:#F7F0E4; font-size:52px; line-height:1.25; font-weight:500; font-style:italic;'>{{favouriteMoment}}</div>"
        }
      ]
    },
    {
      "id": "cta",
      "duration": 4,
      "backgroundColor": "#12100E",
      "visuals": [
        {
          "type": "SVG",
          "width": 1080,
          "height": 1920,
          "track": 0,
          "enterBegin": 0,
          "exitEnd": 4,
          "svg": "<svg width='1080' height='1920' viewBox='0 0 1080 1920' xmlns='http://www.w3.org/2000/svg'><defs><radialGradient id='ttrCta' cx='0.5' cy='0.42' r='0.9'><stop offset='0' stop-color='#241D13'/><stop offset='1' stop-color='#12100E'/></radialGradient></defs><rect width='1080' height='1920' fill='url(#ttrCta)'/><rect x='46' y='46' width='988' height='1828' rx='40' fill='none' stroke='rgba(242,178,62,0.3)' stroke-width='1.5'/><path d='M540 610 C540 580 505 560 470 575 C438 588 440 630 470 650 L540 700 L610 650 C640 630 642 588 610 575 C575 560 540 580 540 610 Z' fill='none' stroke='#F2B23E' stroke-width='5' stroke-linejoin='round'/></svg>"
        },
        {
          "type": "TEXT",
          "x": 540,
          "y": 830,
          "width": 920,
          "anchor": "top-center",
          "track": 1,
          "enterBegin": 0.3,
          "enterEnd": 0.8,
          "enterAnimation": "smoothup",
          "exitEnd": 4,
          "style": {
            "fontFamily": "Playfair Display"
          },
          "html": "<div style='text-align:center; color:#F7F0E4; font-size:78px; line-height:1.06; font-weight:600;'>Some trips stay<br>with you forever.</div>"
        },
        {
          "type": "TEXT",
          "x": 540,
          "y": 1170,
          "anchor": "top-center",
          "track": 2,
          "enterBegin": 0.75,
          "enterEnd": 1.2,
          "enterAnimation": "circleopen",
          "exitEnd": 4,
          "style": {
            "fontFamily": "Sora"
          },
          "html": "<div style='display:inline-block; background:{{accentColor}}; color:#12100E; border-radius:999px; padding:26px 62px; font-size:39px; font-weight:800;'>{{ctaText}}</div>"
        },
        {
          "type": "TEXT",
          "x": 540,
          "y": 1330,
          "anchor": "top-center",
          "track": 3,
          "enterBegin": 1.1,
          "enterEnd": 1.5,
          "enterAnimation": "fade",
          "exitEnd": 4,
          "style": {
            "fontFamily": "Sora"
          },
          "html": "<div style='text-align:center; color:#8C7F66; font-size:27px; font-weight:500; letter-spacing:2px;'>{{ctaHandle}}</div>"
        }
      ]
    }
  ],
  "audios": [
    {
      "src": "{{musicUrl}}",
      "volume": 0.15,
      "track": 0
    }
  ]
}

More Travel / tourism templates

View all ↗

Ready to ship video at scale?

Start free — your first render is only a JSON payload away.