Customer Milestone Celebration
A 32-second vertical (9:16) personalized account-anniversary video that reads like a hand-written note from a small team: a personal opening line, a milestone reveal, a tasteful confetti beat, a sincere thank-you, a little gift, and a signed sign-off across six palette-alternating scenes (cream / espresso / coral). Swap eight dynamic fields per customer - a greeting with their first name, a free-text personal line, the anniversary length (e.g. "One Year"), the member-since date, the offer text + code, the team signature, and a brand logo - to render a unique celebration for every recipient on an anniversary cron / lifecycle webhook and ship it as an email hero, SMS, or in-app drop.
- Aspect ratio
- 9:16 · Vertical
- Duration
- ~32s
- Category
- Personalized
Try it with your own copy
Edit a field and the frame re-renders in your browser. No account, no credits - previews are free because they cost a browser paint, not a render.
What you can customize
This template exposes 8 dynamic fields you can swap per video - edit them in the editor or pass them to the API to batch-render variations at scale. The monospace name is the exact key to send in replacements.
First Name
textfirst_nameHey Maya,
~10 characters max · 1 line
Personal Line
textpersonal_lineA year ago today, you took a chance on us — and honestly, it made our whole year.
~119 characters max · 4 lines
Years Label
textyears_labelOne Year
~11 characters max · 2 lines
Member Since
textmember_sinceJune 2025
~23 characters max · 1 line
Offer Text
textoffer_text20% off your next order
~38 characters max · 2 lines
Offer Code
textoffer_codeYEARONE
~24 characters max · 2 lines
Team Signature
textteam_signature— Everyone at Maple
~28 characters max · 2 lines
Brand Logo
urlbrand_logohttps://renderly.video/_static/logo-black-400.png
Render it from the API
Copy either call below. Both already carry this template's ID and its real variable keys - swap the values for your own.
1. Preview it — free
Same body as a render. Costs no credits, creates no job. Returns a public URL that plays the video in a browser, plus a list of problems with your payload — a mistyped key is otherwise ignored in silence.
curl -X POST https://renderly.video/api/v1/previews \
-H "Authorization: Bearer $RENDERLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"templateId": "user-anniversary",
"replacements": {
"first_name": "Hey Maya,",
"personal_line": "A year ago today, you took a chance on us — and honestly, it made our whole year.",
"years_label": "One Year",
"member_since": "June 2025",
"offer_text": "20% off your\nnext order",
"offer_code": "YEARONE"
}
}'2. Render it
Change one word in the URL. Keep templateId — it is what links your call to this template, so later improvements reach you automatically.
curl -X POST https://renderly.video/api/v1/renders \
-H "Authorization: Bearer $RENDERLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"templateId": "user-anniversary",
"replacements": {
"first_name": "Hey Maya,",
"personal_line": "A year ago today, you took a chance on us — and honestly, it made our whole year.",
"years_label": "One Year",
"member_since": "June 2025",
"offer_text": "20% off your\nnext order",
"offer_code": "YEARONE"
}
}'The body above shows 6 of 8 variables. Send any subset — every key you leave out renders its authored default. Read the full contract, with character limits, from GET /api/v1/templates/user-anniversary/variables. See the previewing guide, the rendering guide, or the OpenAPI spec.
Frequently asked questions
How do I customize the Customer Milestone Celebration template?
Open the template in the Renderly editor and replace its 8 customizable fields (such as First Name) with your own text, images, or video. Every change previews instantly before you render.
How much does it cost to render this template?
Rendering is credit-based - 1 credit equals 1 minute of 1080p video. You only pay when you export, and credits never expire on the pay-as-you-go plan.
Can I generate this video at scale via the API?
Yes. POST this template's ID and a replacements object to /api/v1/renders - one call per row of data, 8 fields swappable per video. Send the same body to /api/v1/previews first to check it for free. No-code integrations like Zapier work the same way.
More Personalized templates

Test Drive Invitation
A 23-second 16:9 (1920x1080) automotive test-drive invitation that renders one MP4 per enquiry rather than per VIN - the bridge between a listing page and a showroom floor. Five hard-cut scenes alternate a graphite showroom ground with a warm bone ground: a full-bleed hero exterior with a "RESERVED FOR <name>" pill and the make/model set at 116px, a light-ground argument scene pairing an exterior and a cockpit tile under "Twenty minutes behind the wheel tells you what twenty tabs can't.", the appointment itself with the date rendered as the largest number in the video over a feathered backdrop of the car, a "where" scene carrying the dealer name, address and a perforated test-drive pass card (dashed tear line and two punched notches), and a booking scene with the dealer logo chip, the lead's first name at 104px, an accent booking block and the phone number. It deliberately reuses the Vehicle Listing Showcase family's graphite skin and its vehicle_image_1/2/3 photo contract, so one dealership feed drives both templates. Thirteen dynamic fields swap per render: first_name, make_model, year_mileage, drive_date, drive_time, dealer_name, location_address, booking_url, dealer_phone, three vehicle photos (vehicle_image_1 does triple duty as the full-bleed hero, the scene-03 backdrop and the scene-05 side tile) and dealer_logo. Dates and times are passed preformatted - the template does no date maths.

Service Reminder - Personalized
A service reminder addressed to one owner and one car, built to render unattended from a dealership DMS - one video per vehicle per interval. Five scenes over 33 seconds at 1920×1080 (16:9, 30fps): the owner's first name beside a photo of their model, the record the garage is acting on (vehicle, registration, odometer, service due) in a hairline-ruled panel, the three jobs the interval calls for, the fixed price and the hours on the single saturated blue frame, and a closing booking link plus phone number. The palette alternates grey-white and graphite with one service-blue frame; Manrope carries the display type, Geist every human sentence, and JetBrains Mono the machine-known data (plate, odometer, URL). It deliberately carries no countdown, offer, discount or urgency badge. Fourteen dynamic fields are swapped per render: owner_name, vehicle_name, vehicle_plate, vehicle_image, odometer, service_due, service_item_1, service_item_2, service_item_3, service_price, service_duration, booking_url, service_phone and service_centre - several appear on two to five scenes (service_centre on all five) as separate overlays sharing one replacement key. Every number, unit and currency symbol travels preformatted inside its variable, so the template needs no locale logic.

Quarterly Business Review
The internal-comms sibling of the Monthly Performance Recap: a composed, credible 34-second 1920x1080 (16:9) quarterly business review that a reporting job renders once per department on the first working day after quarter close. Six scenes on an ink-and-bone ground that flips at every cut — a cover that names the quarter and the department over a four-cell quarter track, three figure frames that each repeat the same four rows (counter band, label + value + delta chip, a 1660px attainment track scaled 0 to 130% of plan with a hard target tick at 100%, definition line), a ledger board that puts all three metrics on one screenshot-ready frame beside the sentence that explains them, and a closing commitment frame with the next review date in a signal-blue block. Deliberately not a hype reel: a miss gets exactly the same frame as a beat, with no confetti, no celebration language and no green/red traffic lights — polarity is expressed only by the delta chip being solid blue or a hairline outline. One signal-blue accent (#2563EB on bone, #4C82F8 on ink), Space Grotesk figures in tabular numerals at 262px, JetBrains Mono for every label and counter, and no logo, headshot or photography — the whole video is text overlays, so a job that emits a JSON row per department renders the quarter without touching S3. Twenty-five dynamic `content` fields swap per render: period_label, department_name, company_name and comparison_label; the composite lines period_department_line, company_department_line and all_figures_line; label, value, delta, target and attainment for each of the three metrics (each bound to both its figure scene and its ledger column, so one value fills two places); plus what_moved, next_focus and next_review_line. Values arrive preformatted — the template never formats a number, so pass the currency symbol, separators, decimals and the up/down arrow inside the delta string yourself.