{"ok":true,"version":"99.73-premium-email-and-sms-notification-center","tenant_id":"tenant_default_001","brand_profile":{"company_logo":"{{company_logo}}","company_name":"Your Cleaning Company","company_phone":"(000) 000-0000","company_email":"office@example.com","company_website":"https://example.com","company_address":"Business address on file","company_primary_color":"#111827","company_secondary_color":"#C9A24D","business_hours":"Monday-Friday, 8:00 AM - 6:00 PM","reply_to_email":"{{company_email}}","company_signature":"With appreciation,\n{{company_name}}","social_links":{"google":"","facebook":"","instagram":"","yelp":""},"terms_policies_url":""},"settings":{"dark_mode_supported":true,"mobile_first":true,"english_enabled":true,"spanish_enabled":true,"ai_personalized_greetings":true,"single_use_tokens":true,"token_expiration_hours":168,"default_reminder_timing":["Immediately","72 hours","48 hours","24 hours","2 hours"],"sms_enabled":true,"sms_sender_name_supported":false,"sms_secure_summary_links":true,"sms_default_reminder_timing":["Immediately","72 hours","48 hours","24 hours","2 hours"]},"variables":["company_logo","company_name","company_phone","company_email","company_website","company_address","company_primary_color","company_secondary_color","customer_name","booking_number","service_type","service_date","booking_date","arrival_window","cleaners","property_address","service_address","price","balance_due","amount","invoice_number","payment_method","confirmation_url","confirm_booking_url","reschedule_url","cancel_url","booking_url","portal_url","portal_login_url","review_url","calendar_url","invoice_url","payment_url","tracking_url","unsubscribe_url","service_name","team_name","technician_name","eta_minutes","driver_name","driver_photo","vehicle","parking_instructions","pets","gate_code","special_instructions","old_service_date","old_arrival_window","new_service_date","new_arrival_window","temporary_password","verification_url","password_reset_url","gift_card_amount","gift_card_recipient","referral_credit","reward_amount","membership_plan","subscription_amount","estimate_number","estimate_url","proposal_number","proposal_url","walkthrough_url","ticket_number","complaint_status","quality_score"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"],"sms_variables":["company_logo","company_name","company_phone","company_email","company_website","company_address","company_primary_color","company_secondary_color","customer_name","booking_number","service_type","service_date","booking_date","arrival_window","cleaners","property_address","service_address","price","balance_due","amount","invoice_number","payment_method","confirmation_url","confirm_booking_url","reschedule_url","cancel_url","booking_url","portal_url","portal_login_url","review_url","calendar_url","invoice_url","payment_url","tracking_url","unsubscribe_url","service_name","team_name","technician_name","eta_minutes","driver_name","driver_photo","vehicle","parking_instructions","pets","gate_code","special_instructions","old_service_date","old_arrival_window","new_service_date","new_arrival_window","temporary_password","verification_url","password_reset_url","gift_card_amount","gift_card_recipient","referral_credit","reward_amount","membership_plan","subscription_amount","estimate_number","estimate_url","proposal_number","proposal_url","walkthrough_url","ticket_number","complaint_status","quality_score"],"sms_protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"],"templates":[{"template_key":"booking_confirmation","name":"Booking Confirmation","category":"booking","hero_badge":"Booking Confirmed","status_icon":"check","automation_event":"Booking saved or quote converted","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"{{company_name}} booking confirmed for {{service_date}}","preview_text":"Your cleaning appointment is confirmed.","header_title":"Booking Confirmed","body_text":"Hi {{customer_name}}, your {{service_type}} is confirmed for {{service_date}} during {{arrival_window}} at {{property_address}}.\n\nBooking {{booking_number}}\nTeam: {{cleaners}}\nPrice: {{price}}\n\nPlease confirm your appointment or choose another time below.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"{{company_name}} booking confirmed for {{service_date}}","preview_text":"Your cleaning appointment is confirmed.","header_title":"Booking Confirmed","body_text":"Hi {{customer_name}}, your {{service_type}} is confirmed for {{service_date}} during {{arrival_window}} at {{property_address}}.\n\nBooking {{booking_number}}\nTeam: {{cleaners}}\nPrice: {{price}}\n\nPlease confirm your appointment or choose another time below.","button_overrides":{}},"es":{"subject":"{{company_name}} booking confirmed for {{service_date}}","preview_text":"Your cleaning appointment is confirmed.","header_title":"Booking Confirmed","body_text":"Hi {{customer_name}}, your {{service_type}} is confirmed for {{service_date}} during {{arrival_window}} at {{property_address}}.\n\nBooking {{booking_number}}\nTeam: {{cleaners}}\nPrice: {{price}}\n\nPlease confirm your appointment or choose another time below.","button_overrides":{}}},"ctas":[{"key":"confirm_booking","label":"Confirm Booking","required":true,"style":"primary","url_variable":"confirm_booking_url"},{"key":"reschedule","label":"Reschedule Appointment","required":true,"style":"secondary","url_variable":"reschedule_url"},{"key":"portal","label":"View Customer Portal","required":false,"style":"ghost","url_variable":"portal_url"}],"required_ctas":["confirm_booking","reschedule"],"required_variables":["customer_name","company_name","company_phone","company_email","service_type","service_date","arrival_window","property_address","confirm_booking_url","reschedule_url","booking_number","price"],"reminder_timing":"Immediately","blocks":[{"content":"Large hero with premium confirmation status.","id":"booking_confirmed_5e25db","locked":false,"title":"Booking Confirmed","type":"hero"},{"content":"Booking Confirmed","id":"confirmed_status_ec5061","locked":true,"title":"Confirmed Status","type":"status"},{"content":[["Service","{{service_type}}"],["Date","{{service_date}}"],["Arrival Window","{{arrival_window}}"],["Address","{{property_address}}"],["Team","{{cleaners}}"],["Price","{{price}}"]],"id":"booking_summary_d42f2c","locked":true,"title":"Booking Summary","type":"summary_card"},{"content":"{{special_instructions}}","id":"special_instructions_05a013","locked":false,"title":"Special Instructions","type":"text"},{"content":"Confirm Appointment, Reschedule Appointment, View Customer Portal","id":"required_actions_7fe247","locked":true,"title":"Required Actions","type":"cta_buttons"},{"content":"{{company_name}} | {{company_phone}} | {{company_email}}","id":"tenant_contact_footer_c5020d","locked":true,"title":"Tenant Contact Footer","type":"footer"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.755700+00:00","published_at":"2026-06-25T20:11:59.755700+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","company_phone","company_email","service_type","service_date","arrival_window","property_address","confirm_booking_url","reschedule_url","booking_number","price"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"pending_confirmation","name":"Pending Confirmation","category":"booking","hero_badge":"Needs Confirmation","status_icon":"clock","automation_event":"Booking remains pending confirmation","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Please confirm your {{company_name}} appointment","preview_text":"Appointment confirmation is still needed.","header_title":"Please Confirm Your Appointment","body_text":"Hi {{customer_name}}, your {{service_type}} is scheduled for {{service_date}} during {{arrival_window}} at {{property_address}}.\n\nPlease confirm so {{company_name}} can keep your team and arrival window reserved.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Please confirm your {{company_name}} appointment","preview_text":"Appointment confirmation is still needed.","header_title":"Please Confirm Your Appointment","body_text":"Hi {{customer_name}}, your {{service_type}} is scheduled for {{service_date}} during {{arrival_window}} at {{property_address}}.\n\nPlease confirm so {{company_name}} can keep your team and arrival window reserved.","button_overrides":{}},"es":{"subject":"Please confirm your {{company_name}} appointment","preview_text":"Appointment confirmation is still needed.","header_title":"Please Confirm Your Appointment","body_text":"Hi {{customer_name}}, your {{service_type}} is scheduled for {{service_date}} during {{arrival_window}} at {{property_address}}.\n\nPlease confirm so {{company_name}} can keep your team and arrival window reserved.","button_overrides":{}}},"ctas":[{"key":"confirm_booking","label":"Confirm Booking","required":true,"style":"primary","url_variable":"confirm_booking_url"},{"key":"reschedule","label":"Reschedule Appointment","required":true,"style":"secondary","url_variable":"reschedule_url"},{"key":"portal","label":"View Customer Portal","required":false,"style":"ghost","url_variable":"portal_url"}],"required_ctas":["confirm_booking","reschedule"],"required_variables":["customer_name","company_name","company_phone","company_email","service_type","service_date","arrival_window","property_address","confirm_booking_url","reschedule_url"],"reminder_timing":"72 hours before service","blocks":[{"content":"Countdown hero for unconfirmed bookings.","id":"please_confirm_your_appointment_b89459","locked":false,"title":"Please Confirm Your Appointment","type":"hero"},{"content":"Appointment in 2 Days","id":"appointment_countdown_55f9ce","locked":true,"title":"Appointment Countdown","type":"countdown"},{"content":[["Service","{{service_type}}"],["Date","{{service_date}}"],["Arrival Window","{{arrival_window}}"],["Address","{{property_address}}"],["Team","{{cleaners}}"],["Price","{{price}}"]],"id":"pending_booking_summary_a69395","locked":true,"title":"Pending Booking Summary","type":"summary_card"},{"content":"Confirm Booking and Reschedule Here","id":"required_confirmation_ctas_c5818a","locked":true,"title":"Required Confirmation CTAs","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.755700+00:00","published_at":"2026-06-25T20:11:59.755700+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","company_phone","company_email","service_type","service_date","arrival_window","property_address","confirm_booking_url","reschedule_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"booking_reminder_48h","name":"Reminder Email","category":"reminder","hero_badge":"48 Hour Reminder","status_icon":"bell","automation_event":"48 hours before appointment","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Your cleaning is almost here","preview_text":"A quick reminder for your upcoming cleaning.","header_title":"Your Cleaning Is Almost Here","body_text":"Hi {{customer_name}}, we are getting ready for your {{service_type}} on {{service_date}} during {{arrival_window}}.\n\nAddress: {{property_address}}\nTeam: {{cleaners}}\n\nIf anything needs to change, you can confirm or reschedule below.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Your cleaning is almost here","preview_text":"A quick reminder for your upcoming cleaning.","header_title":"Your Cleaning Is Almost Here","body_text":"Hi {{customer_name}}, we are getting ready for your {{service_type}} on {{service_date}} during {{arrival_window}}.\n\nAddress: {{property_address}}\nTeam: {{cleaners}}\n\nIf anything needs to change, you can confirm or reschedule below.","button_overrides":{}},"es":{"subject":"Your cleaning is almost here","preview_text":"A quick reminder for your upcoming cleaning.","header_title":"Your Cleaning Is Almost Here","body_text":"Hi {{customer_name}}, we are getting ready for your {{service_type}} on {{service_date}} during {{arrival_window}}.\n\nAddress: {{property_address}}\nTeam: {{cleaners}}\n\nIf anything needs to change, you can confirm or reschedule below.","button_overrides":{}}},"ctas":[{"key":"confirm_booking","label":"Confirm Booking","required":true,"style":"primary","url_variable":"confirm_booking_url"},{"key":"reschedule","label":"Reschedule Appointment","required":true,"style":"secondary","url_variable":"reschedule_url"},{"key":"portal","label":"View Customer Portal","required":false,"style":"ghost","url_variable":"portal_url"}],"required_ctas":["confirm_booking","reschedule"],"required_variables":["customer_name","company_name","company_phone","company_email","service_type","service_date","arrival_window","property_address","confirm_booking_url","reschedule_url"],"reminder_timing":"48 hours before service","blocks":[{"content":"Premium reminder hero.","id":"your_cleaning_is_almost_here_d7fca6","locked":false,"title":"Your Cleaning Is Almost Here","type":"hero"},{"content":[["Service","{{service_type}}"],["Date","{{service_date}}"],["Arrival Window","{{arrival_window}}"],["Address","{{property_address}}"],["Team","{{cleaners}}"],["Price","{{price}}"]],"id":"arrival_details_975707","locked":true,"title":"Arrival Details","type":"summary_card"},{"content":["Clear counters and floors where possible.","Secure pets before the arrival window.","Leave gate, parking, or access notes in the portal.","Message the office if plans changed."],"id":"preparation_checklist_3dcded","locked":false,"title":"Preparation Checklist","type":"checklist"},{"content":"Confirm, Reschedule, Contact Office","id":"reminder_actions_072a51","locked":true,"title":"Reminder Actions","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.755700+00:00","published_at":"2026-06-25T20:11:59.755700+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","company_phone","company_email","service_type","service_date","arrival_window","property_address","confirm_booking_url","reschedule_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"tomorrow_reminder","name":"Tomorrow Reminder","category":"reminder","hero_badge":"Tomorrow","status_icon":"calendar","automation_event":"Tomorrow at 8 AM","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"We will see you tomorrow","preview_text":"Your team and arrival window are ready.","header_title":"We Are Looking Forward To Seeing You Tomorrow","body_text":"Hi {{customer_name}}, tomorrow is your {{service_type}} with {{company_name}}.\n\nArrival Window: {{arrival_window}}\nAssigned Team: {{cleaners}}\nAddress: {{property_address}}\n\nReply to {{company_phone}} or {{company_email}} if the office needs parking, gate, pet, or access notes.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"We will see you tomorrow","preview_text":"Your team and arrival window are ready.","header_title":"We Are Looking Forward To Seeing You Tomorrow","body_text":"Hi {{customer_name}}, tomorrow is your {{service_type}} with {{company_name}}.\n\nArrival Window: {{arrival_window}}\nAssigned Team: {{cleaners}}\nAddress: {{property_address}}\n\nReply to {{company_phone}} or {{company_email}} if the office needs parking, gate, pet, or access notes.","button_overrides":{}},"es":{"subject":"We will see you tomorrow","preview_text":"Your team and arrival window are ready.","header_title":"We Are Looking Forward To Seeing You Tomorrow","body_text":"Hi {{customer_name}}, tomorrow is your {{service_type}} with {{company_name}}.\n\nArrival Window: {{arrival_window}}\nAssigned Team: {{cleaners}}\nAddress: {{property_address}}\n\nReply to {{company_phone}} or {{company_email}} if the office needs parking, gate, pet, or access notes.","button_overrides":{}}},"ctas":[{"key":"confirm_booking","label":"Confirm Booking","required":true,"style":"primary","url_variable":"confirm_booking_url"},{"key":"reschedule","label":"Reschedule Appointment","required":true,"style":"secondary","url_variable":"reschedule_url"},{"key":"portal","label":"View Customer Portal","required":false,"style":"ghost","url_variable":"portal_url"}],"required_ctas":["confirm_booking","reschedule"],"required_variables":["customer_name","company_name","company_phone","company_email","service_type","service_date","arrival_window","property_address","confirm_booking_url","reschedule_url"],"reminder_timing":"Tomorrow at 8:00 AM","blocks":[{"content":"Tomorrow reminder hero.","id":"we_are_looking_forward_to_seeing_you_tomorrow_554f91","locked":false,"title":"We Are Looking Forward To Seeing You Tomorrow","type":"hero"},{"content":["Tomorrow","{{arrival_window}}","Assigned Team: {{cleaners}}","Parking: {{parking_instructions}}","Pets: {{pets}}","Gate Code: {{gate_code}}"],"id":"tomorrow_timeline_fcd1cc","locked":false,"title":"Tomorrow Timeline","type":"timeline"},{"content":[["Service","{{service_type}}"],["Date","{{service_date}}"],["Arrival Window","{{arrival_window}}"],["Address","{{property_address}}"],["Team","{{cleaners}}"],["Price","{{price}}"]],"id":"tomorrow_service_details_361130","locked":true,"title":"Tomorrow Service Details","type":"summary_card"},{"content":"Confirm, Message Office, Reschedule","id":"tomorrow_actions_f75964","locked":true,"title":"Tomorrow Actions","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.755700+00:00","published_at":"2026-06-25T20:11:59.755700+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","company_phone","company_email","service_type","service_date","arrival_window","property_address","confirm_booking_url","reschedule_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"team_on_the_way","name":"Team On The Way","category":"live","hero_badge":"Live Update","status_icon":"route","automation_event":"Team status changed to On The Way","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Your cleaning team is on the way","preview_text":"Estimated arrival details are inside.","header_title":"Your Cleaning Team Is On The Way","body_text":"Hi {{customer_name}}, your {{company_name}} team is on the way for {{service_type}}.\n\nEstimated Arrival: {{arrival_window}}\nTeam: {{cleaners}}\nService Address: {{property_address}}","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Your cleaning team is on the way","preview_text":"Estimated arrival details are inside.","header_title":"Your Cleaning Team Is On The Way","body_text":"Hi {{customer_name}}, your {{company_name}} team is on the way for {{service_type}}.\n\nEstimated Arrival: {{arrival_window}}\nTeam: {{cleaners}}\nService Address: {{property_address}}","button_overrides":{}},"es":{"subject":"Your cleaning team is on the way","preview_text":"Estimated arrival details are inside.","header_title":"Your Cleaning Team Is On The Way","body_text":"Hi {{customer_name}}, your {{company_name}} team is on the way for {{service_type}}.\n\nEstimated Arrival: {{arrival_window}}\nTeam: {{cleaners}}\nService Address: {{property_address}}","button_overrides":{}}},"ctas":[{"key":"portal","label":"Track Team","required":false,"style":"primary","url_variable":"portal_url"},{"key":"office","label":"Message Office","required":false,"style":"secondary","url_variable":"portal_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","arrival_window","cleaners","property_address","portal_url","driver_name","vehicle"],"reminder_timing":"When team status changes to on the way","blocks":[{"content":"Live arrival notification.","id":"your_cleaning_team_is_on_the_way_442ab2","locked":false,"title":"Your Cleaning Team Is On The Way","type":"hero"},{"content":[["Driver","{{driver_name}}"],["Photo","{{driver_photo}}"],["Vehicle","{{vehicle}}"],["ETA","{{arrival_window}}"]],"id":"driver_2453cb","locked":false,"title":"Driver","type":"profile_card"},{"content":[["Service","{{service_type}}"],["Address","{{property_address}}"],["Team","{{cleaners}}"]],"id":"service_stop_1a8948","locked":true,"title":"Service Stop","type":"summary_card"},{"content":"Track Team and Message Office","id":"live_actions_f23914","locked":false,"title":"Live Actions","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.755700+00:00","published_at":"2026-06-25T20:11:59.755700+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","arrival_window","cleaners","property_address","portal_url","driver_name","vehicle"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"arrival","name":"Arrival Email","category":"live","hero_badge":"Arrived","status_icon":"pin","automation_event":"Cleaner checked in","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"We have arrived","preview_text":"Your cleaner checked in.","header_title":"We Have Arrived","body_text":"Hi {{customer_name}}, your {{company_name}} team has arrived at {{property_address}} for {{service_type}}.\n\nUse the portal if you need to leave instructions or message the office.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"We have arrived","preview_text":"Your cleaner checked in.","header_title":"We Have Arrived","body_text":"Hi {{customer_name}}, your {{company_name}} team has arrived at {{property_address}} for {{service_type}}.\n\nUse the portal if you need to leave instructions or message the office.","button_overrides":{}},"es":{"subject":"We have arrived","preview_text":"Your cleaner checked in.","header_title":"We Have Arrived","body_text":"Hi {{customer_name}}, your {{company_name}} team has arrived at {{property_address}} for {{service_type}}.\n\nUse the portal if you need to leave instructions or message the office.","button_overrides":{}}},"ctas":[{"key":"portal","label":"Open Portal","required":false,"style":"primary","url_variable":"portal_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","property_address","service_type","portal_url"],"reminder_timing":"When cleaner checks in","blocks":[{"content":"Cleaner checked in.","id":"we_have_arrived_10bd57","locked":false,"title":"We Have Arrived","type":"hero"},{"content":[["Service","{{service_type}}"],["Address","{{property_address}}"],["Team","{{cleaners}}"]],"id":"arrival_details_09120c","locked":true,"title":"Arrival Details","type":"summary_card"},{"content":["Open Door","Leave Instructions","Chat With Office"],"id":"customer_can_fe199f","locked":false,"title":"Customer Can","type":"action_list"},{"content":"Open Portal","id":"arrival_action_e895b7","locked":false,"title":"Arrival Action","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.755700+00:00","published_at":"2026-06-25T20:11:59.755700+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","property_address","service_type","portal_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"cleaning_completed","name":"Cleaning Completed","category":"completion","hero_badge":"Completed","status_icon":"spark","automation_event":"Booking completed","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Thank you from {{company_name}}","preview_text":"Your cleaning is complete.","header_title":"Cleaning Completed","body_text":"Hi {{customer_name}}, thank you for choosing {{company_name}}. Your {{service_type}} at {{property_address}} is complete.\n\nInvoice: {{invoice_number}}\nBalance Due: {{balance_due}}\n\nYou can view your receipt, rate the service, or book again below.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Thank you from {{company_name}}","preview_text":"Your cleaning is complete.","header_title":"Cleaning Completed","body_text":"Hi {{customer_name}}, thank you for choosing {{company_name}}. Your {{service_type}} at {{property_address}} is complete.\n\nInvoice: {{invoice_number}}\nBalance Due: {{balance_due}}\n\nYou can view your receipt, rate the service, or book again below.","button_overrides":{}},"es":{"subject":"Thank you from {{company_name}}","preview_text":"Your cleaning is complete.","header_title":"Cleaning Completed","body_text":"Hi {{customer_name}}, thank you for choosing {{company_name}}. Your {{service_type}} at {{property_address}} is complete.\n\nInvoice: {{invoice_number}}\nBalance Due: {{balance_due}}\n\nYou can view your receipt, rate the service, or book again below.","button_overrides":{}}},"ctas":[{"key":"invoice","label":"View Invoice","required":false,"style":"primary","url_variable":"invoice_url"},{"key":"review","label":"Rate Service","required":false,"style":"secondary","url_variable":"review_url"},{"key":"portal","label":"Book Again","required":false,"style":"ghost","url_variable":"portal_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","service_type","property_address","invoice_number","balance_due","invoice_url","review_url"],"reminder_timing":"When job is completed","blocks":[{"content":"Cleaning completed thank-you.","id":"luxury_thank_you_92137e","locked":false,"title":"Luxury Thank You","type":"hero"},{"content":[["Before","before_photo_url"],["After","after_photo_url"]],"id":"before_and_after_83c585","locked":false,"title":"Before And After","type":"image_pair"},{"content":[["Service","{{service_type}}"],["Address","{{property_address}}"],["Invoice","{{invoice_number}}"],["Balance Due","{{balance_due}}"]],"id":"completed_service_c9f4ac","locked":true,"title":"Completed Service","type":"summary_card"},{"content":["View Invoice","View Receipt","Rate Service","Tip Cleaner","Book Again"],"id":"customer_can_fa88f1","locked":false,"title":"Customer Can","type":"action_list"},{"content":"Invoice, Rate Service, Book Again","id":"completion_actions_05f773","locked":false,"title":"Completion Actions","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.755700+00:00","published_at":"2026-06-25T20:11:59.755700+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","service_type","property_address","invoice_number","balance_due","invoice_url","review_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"review_request","name":"Review Request","category":"review","hero_badge":"Review Request","status_icon":"star","automation_event":"Post-service review sequence","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"How did {{company_name}} do?","preview_text":"Share your service experience.","header_title":"How Did We Do?","body_text":"Hi {{customer_name}}, thank you for trusting {{company_name}} with your {{service_type}}. Your feedback helps the team keep delivering premium service.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"How did {{company_name}} do?","preview_text":"Share your service experience.","header_title":"How Did We Do?","body_text":"Hi {{customer_name}}, thank you for trusting {{company_name}} with your {{service_type}}. Your feedback helps the team keep delivering premium service.","button_overrides":{}},"es":{"subject":"How did {{company_name}} do?","preview_text":"Share your service experience.","header_title":"How Did We Do?","body_text":"Hi {{customer_name}}, thank you for trusting {{company_name}} with your {{service_type}}. Your feedback helps the team keep delivering premium service.","button_overrides":{}}},"ctas":[{"key":"review","label":"Leave Review","required":false,"style":"primary","url_variable":"review_url"},{"key":"portal","label":"Open Portal","required":false,"style":"secondary","url_variable":"portal_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","service_type","review_url"],"reminder_timing":"2 hours after completion","blocks":[{"content":"5 Stars","id":"five_star_review_prompt_bdc758","locked":false,"title":"Five Star Review Prompt","type":"rating_stars"},{"content":"Review request hero.","id":"how_did_we_do_bd799f","locked":false,"title":"How Did We Do?","type":"hero"},{"content":[["Google","{{review_url}}"],["Facebook","{{portal_url}}"],["Yelp","{{portal_url}}"]],"id":"review_channels_bd80c8","locked":false,"title":"Review Channels","type":"review_links"},{"content":"Leave Review","id":"review_action_3a29f7","locked":false,"title":"Review Action","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.755700+00:00","published_at":"2026-06-25T20:11:59.755700+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","service_type","review_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"payment_receipt","name":"Payment Receipt","category":"billing","hero_badge":"Paid","status_icon":"receipt","automation_event":"Payment succeeded","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Receipt from {{company_name}}","preview_text":"Your payment receipt is ready.","header_title":"Payment Receipt","body_text":"Hi {{customer_name}}, your payment for invoice {{invoice_number}} has been received.\n\nPayment Method: {{payment_method}}\nAmount Paid: {{price}}\nBalance Due: {{balance_due}}","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Receipt from {{company_name}}","preview_text":"Your payment receipt is ready.","header_title":"Payment Receipt","body_text":"Hi {{customer_name}}, your payment for invoice {{invoice_number}} has been received.\n\nPayment Method: {{payment_method}}\nAmount Paid: {{price}}\nBalance Due: {{balance_due}}","button_overrides":{}},"es":{"subject":"Receipt from {{company_name}}","preview_text":"Your payment receipt is ready.","header_title":"Payment Receipt","body_text":"Hi {{customer_name}}, your payment for invoice {{invoice_number}} has been received.\n\nPayment Method: {{payment_method}}\nAmount Paid: {{price}}\nBalance Due: {{balance_due}}","button_overrides":{}}},"ctas":[{"key":"invoice","label":"View Invoice","required":false,"style":"primary","url_variable":"invoice_url"},{"key":"portal","label":"Customer Portal","required":false,"style":"secondary","url_variable":"portal_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","invoice_number","payment_method","price","balance_due","invoice_url"],"reminder_timing":"Immediately after payment","blocks":[{"content":"Payment receipt hero.","id":"beautiful_receipt_74ec8f","locked":false,"title":"Beautiful Receipt","type":"hero"},{"content":[["Invoice","{{invoice_number}}"],["Payment Method","{{payment_method}}"],["Paid","{{price}}"],["Balance Due","{{balance_due}}"]],"id":"receipt_eac6ff","locked":true,"title":"Receipt","type":"invoice_summary"},{"content":"Invoice PDF and Customer Portal","id":"receipt_actions_f7fd4b","locked":false,"title":"Receipt Actions","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.755700+00:00","published_at":"2026-06-25T20:11:59.755700+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","invoice_number","payment_method","price","balance_due","invoice_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"failed_payment","name":"Failed Payment","category":"billing","hero_badge":"Payment Attention","status_icon":"warning","automation_event":"Payment failed","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Payment did not go through","preview_text":"Please update your payment method.","header_title":"Payment Did Not Go Through","body_text":"Hi {{customer_name}}, we could not process payment for invoice {{invoice_number}}.\n\nBalance Due: {{balance_due}}\nPayment Method: {{payment_method}}\n\nPlease retry payment or contact {{company_name}} at {{company_phone}}.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Payment did not go through","preview_text":"Please update your payment method.","header_title":"Payment Did Not Go Through","body_text":"Hi {{customer_name}}, we could not process payment for invoice {{invoice_number}}.\n\nBalance Due: {{balance_due}}\nPayment Method: {{payment_method}}\n\nPlease retry payment or contact {{company_name}} at {{company_phone}}.","button_overrides":{}},"es":{"subject":"Payment did not go through","preview_text":"Please update your payment method.","header_title":"Payment Did Not Go Through","body_text":"Hi {{customer_name}}, we could not process payment for invoice {{invoice_number}}.\n\nBalance Due: {{balance_due}}\nPayment Method: {{payment_method}}\n\nPlease retry payment or contact {{company_name}} at {{company_phone}}.","button_overrides":{}}},"ctas":[{"key":"invoice","label":"Retry Payment","required":false,"style":"primary","url_variable":"invoice_url"},{"key":"portal","label":"Update Card","required":false,"style":"secondary","url_variable":"portal_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","company_phone","invoice_number","balance_due","payment_method","invoice_url"],"reminder_timing":"Immediately after failed payment","blocks":[{"content":"Failed payment hero.","id":"payment_did_not_go_through_59d1a8","locked":false,"title":"Payment Did Not Go Through","type":"hero"},{"content":[["Invoice","{{invoice_number}}"],["Balance Due","{{balance_due}}"],["Payment Method","{{payment_method}}"],["Office","{{company_phone}}"]],"id":"payment_issue_eb7624","locked":true,"title":"Payment Issue","type":"invoice_summary"},{"content":["Retry Payment","Update Card","Call Office"],"id":"customer_can_794b9d","locked":false,"title":"Customer Can","type":"action_list"},{"content":"Retry Payment and Update Card","id":"payment_recovery_ea51cc","locked":false,"title":"Payment Recovery","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.755700+00:00","published_at":"2026-06-25T20:11:59.755700+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","company_phone","invoice_number","balance_due","payment_method","invoice_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"reschedule_confirmation","name":"Reschedule Confirmation","category":"booking","hero_badge":"Updated","status_icon":"refresh","automation_event":"Booking rescheduled","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Your appointment has been updated","preview_text":"Your new cleaning time is confirmed.","header_title":"Your Appointment Has Been Updated","body_text":"Hi {{customer_name}}, your {{service_type}} appointment has been updated.\n\nNew Date: {{service_date}}\nArrival Window: {{arrival_window}}\nAddress: {{property_address}}\n\nYou can add the new appointment to your calendar or view your portal below.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Your appointment has been updated","preview_text":"Your new cleaning time is confirmed.","header_title":"Your Appointment Has Been Updated","body_text":"Hi {{customer_name}}, your {{service_type}} appointment has been updated.\n\nNew Date: {{service_date}}\nArrival Window: {{arrival_window}}\nAddress: {{property_address}}\n\nYou can add the new appointment to your calendar or view your portal below.","button_overrides":{}},"es":{"subject":"Your appointment has been updated","preview_text":"Your new cleaning time is confirmed.","header_title":"Your Appointment Has Been Updated","body_text":"Hi {{customer_name}}, your {{service_type}} appointment has been updated.\n\nNew Date: {{service_date}}\nArrival Window: {{arrival_window}}\nAddress: {{property_address}}\n\nYou can add the new appointment to your calendar or view your portal below.","button_overrides":{}}},"ctas":[{"key":"calendar","label":"Add To Calendar","required":false,"style":"primary","url_variable":"calendar_url"},{"key":"portal","label":"View Portal","required":false,"style":"secondary","url_variable":"portal_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","service_type","service_date","arrival_window","property_address","calendar_url","old_service_date","new_service_date"],"reminder_timing":"Immediately after reschedule","blocks":[{"content":"Reschedule confirmation hero.","id":"your_appointment_has_been_updated_95f13e","locked":false,"title":"Your Appointment Has Been Updated","type":"hero"},{"content":[["Old Date","{{old_service_date}}"],["Old Window","{{old_arrival_window}}"],["New Date","{{new_service_date}}"],["New Window","{{new_arrival_window}}"]],"id":"old_to_new_3df817","locked":true,"title":"Old To New","type":"change_card"},{"content":[["Service","{{service_type}}"],["Date","{{service_date}}"],["Arrival Window","{{arrival_window}}"],["Address","{{property_address}}"],["Team","{{cleaners}}"],["Price","{{price}}"]],"id":"updated_appointment_763aec","locked":true,"title":"Updated Appointment","type":"summary_card"},{"content":"Add To Calendar and View Portal","id":"calendar_actions_f83129","locked":false,"title":"Calendar Actions","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.755700+00:00","published_at":"2026-06-25T20:11:59.755700+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","service_type","service_date","arrival_window","property_address","calendar_url","old_service_date","new_service_date"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"cancellation_confirmation","name":"Cancellation Confirmation","category":"booking","hero_badge":"Cancelled","status_icon":"cancel","automation_event":"Booking cancelled","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Appointment cancelled","preview_text":"Your cancellation confirmation is inside.","header_title":"Appointment Cancelled","body_text":"Hi {{customer_name}}, your {{service_type}} appointment for {{service_date}} has been cancelled.\n\nIf a refund or credit applies, {{company_name}} will process it according to your policy settings.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Appointment cancelled","preview_text":"Your cancellation confirmation is inside.","header_title":"Appointment Cancelled","body_text":"Hi {{customer_name}}, your {{service_type}} appointment for {{service_date}} has been cancelled.\n\nIf a refund or credit applies, {{company_name}} will process it according to your policy settings.","button_overrides":{}},"es":{"subject":"Appointment cancelled","preview_text":"Your cancellation confirmation is inside.","header_title":"Appointment Cancelled","body_text":"Hi {{customer_name}}, your {{service_type}} appointment for {{service_date}} has been cancelled.\n\nIf a refund or credit applies, {{company_name}} will process it according to your policy settings.","button_overrides":{}}},"ctas":[{"key":"portal","label":"Rebook","required":false,"style":"primary","url_variable":"portal_url"},{"key":"office","label":"Contact Office","required":false,"style":"secondary","url_variable":"portal_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","service_type","service_date","portal_url"],"reminder_timing":"Immediately after cancellation","blocks":[{"content":"Cancellation confirmation hero.","id":"appointment_cancelled_dccb34","locked":false,"title":"Appointment Cancelled","type":"hero"},{"content":"If a refund or credit applies, {{company_name}} will process it according to the tenant policy.","id":"refund_or_credit_e0b847","locked":true,"title":"Refund Or Credit","type":"policy_card"},{"content":[["Service","{{service_type}}"],["Date","{{service_date}}"],["Address","{{property_address}}"]],"id":"cancelled_appointment_05c4f2","locked":true,"title":"Cancelled Appointment","type":"summary_card"},{"content":"Rebook and Contact Office","id":"cancellation_actions_5d11a8","locked":false,"title":"Cancellation Actions","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.755700+00:00","published_at":"2026-06-25T20:11:59.755700+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","service_type","service_date","portal_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"account_created","name":"Account Created","category":"portal","hero_badge":"Account Created","status_icon":"portal","automation_event":"Customer portal account created","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Welcome to {{company_name}}","preview_text":"Your customer portal is ready.","header_title":"Welcome To {{company_name}}","body_text":"Hi {{customer_name}}, your customer portal is ready. Use it to manage appointments, invoices, messages, referrals, gift cards, rewards, and service history.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Welcome to {{company_name}}","preview_text":"Your customer portal is ready.","header_title":"Welcome To {{company_name}}","body_text":"Hi {{customer_name}}, your customer portal is ready. Use it to manage appointments, invoices, messages, referrals, gift cards, rewards, and service history.","button_overrides":{}},"es":{"subject":"Welcome to {{company_name}}","preview_text":"Your customer portal is ready.","header_title":"Welcome To {{company_name}}","body_text":"Hi {{customer_name}}, your customer portal is ready. Use it to manage appointments, invoices, messages, referrals, gift cards, rewards, and service history.","button_overrides":{}}},"ctas":[{"key":"portal","label":"Go To Portal","required":false,"style":"primary","url_variable":"portal_login_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","portal_login_url","temporary_password"],"reminder_timing":"When portal account is created","blocks":[{"content":"Account created hero.","id":"welcome_to_company_name_ea7bea","locked":false,"title":"Welcome To {{company_name}}","type":"hero"},{"content":[["Login","{{portal_login_url}}"],["Temporary Password","{{temporary_password}}"]],"id":"temporary_password_45b907","locked":true,"title":"Temporary Password","type":"credential_card"},{"content":["Set Password","Go To Portal","Review Account"],"id":"portal_access_5ccd99","locked":false,"title":"Portal Access","type":"action_list"},{"content":"Go To Portal","id":"portal_cta_41e0a2","locked":false,"title":"Portal CTA","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.755700+00:00","published_at":"2026-06-25T20:11:59.755700+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","portal_login_url","temporary_password"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"password_reset","name":"Password Reset","category":"portal","hero_badge":"Secure Link","status_icon":"lock","automation_event":"Password reset requested","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Reset your {{company_name}} portal password","preview_text":"Use the secure link to reset your password.","header_title":"Password Reset","body_text":"Hi {{customer_name}}, use the secure customer portal link below to reset your password. This link protects your account and does not expose customer IDs.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Reset your {{company_name}} portal password","preview_text":"Use the secure link to reset your password.","header_title":"Password Reset","body_text":"Hi {{customer_name}}, use the secure customer portal link below to reset your password. This link protects your account and does not expose customer IDs.","button_overrides":{}},"es":{"subject":"Reset your {{company_name}} portal password","preview_text":"Use the secure link to reset your password.","header_title":"Password Reset","body_text":"Hi {{customer_name}}, use the secure customer portal link below to reset your password. This link protects your account and does not expose customer IDs.","button_overrides":{}}},"ctas":[{"key":"password_reset","label":"Set Password","required":false,"style":"primary","url_variable":"password_reset_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","password_reset_url"],"reminder_timing":"When reset is requested","blocks":[{"content":"Secure reset hero.","id":"password_reset_cfa1b1","locked":false,"title":"Password Reset","type":"hero"},{"content":"This secure link protects account access and does not expose customer IDs.","id":"security_bd0474","locked":true,"title":"Security","type":"security_note"},{"content":"Set Password","id":"reset_action_68b409","locked":false,"title":"Reset Action","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","password_reset_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"email_verification","name":"Email Verification","category":"portal","hero_badge":"Verify","status_icon":"shield","automation_event":"Email verification requested","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Verify your {{company_name}} portal email","preview_text":"Confirm your email address.","header_title":"Email Verification","body_text":"Hi {{customer_name}}, please verify your email address so {{company_name}} can keep your portal, invoices, reminders, and service updates secure.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Verify your {{company_name}} portal email","preview_text":"Confirm your email address.","header_title":"Email Verification","body_text":"Hi {{customer_name}}, please verify your email address so {{company_name}} can keep your portal, invoices, reminders, and service updates secure.","button_overrides":{}},"es":{"subject":"Verify your {{company_name}} portal email","preview_text":"Confirm your email address.","header_title":"Email Verification","body_text":"Hi {{customer_name}}, please verify your email address so {{company_name}} can keep your portal, invoices, reminders, and service updates secure.","button_overrides":{}}},"ctas":[{"key":"verify_email","label":"Verify Email","required":false,"style":"primary","url_variable":"verification_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","verification_url"],"reminder_timing":"When verification is required","blocks":[{"content":"Verification hero.","id":"verify_your_email_6f8f2f","locked":false,"title":"Verify Your Email","type":"hero"},{"content":"Verification protects appointment links, invoices, account messages, and portal access.","id":"why_this_matters_d9509d","locked":true,"title":"Why This Matters","type":"security_note"},{"content":"Verify Email","id":"verification_action_810a6b","locked":false,"title":"Verification Action","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","verification_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"invoice_ready","name":"Invoice Ready","category":"billing","hero_badge":"Invoice","status_icon":"invoice","automation_event":"Invoice created","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Invoice {{invoice_number}} is ready","preview_text":"Your invoice is ready to review.","header_title":"Invoice Ready","body_text":"Hi {{customer_name}}, invoice {{invoice_number}} from {{company_name}} is ready.\n\nAmount: {{price}}\nBalance Due: {{balance_due}}\nPayment Method: {{payment_method}}","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Invoice {{invoice_number}} is ready","preview_text":"Your invoice is ready to review.","header_title":"Invoice Ready","body_text":"Hi {{customer_name}}, invoice {{invoice_number}} from {{company_name}} is ready.\n\nAmount: {{price}}\nBalance Due: {{balance_due}}\nPayment Method: {{payment_method}}","button_overrides":{}},"es":{"subject":"Invoice {{invoice_number}} is ready","preview_text":"Your invoice is ready to review.","header_title":"Invoice Ready","body_text":"Hi {{customer_name}}, invoice {{invoice_number}} from {{company_name}} is ready.\n\nAmount: {{price}}\nBalance Due: {{balance_due}}\nPayment Method: {{payment_method}}","button_overrides":{}}},"ctas":[{"key":"invoice","label":"View Invoice","required":false,"style":"primary","url_variable":"invoice_url"},{"key":"portal","label":"Customer Portal","required":false,"style":"secondary","url_variable":"portal_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","invoice_number","price","balance_due","invoice_url"],"reminder_timing":"When invoice is created","blocks":[{"content":"Invoice hero.","id":"invoice_ready_a75c29","locked":false,"title":"Invoice Ready","type":"hero"},{"content":[["Invoice","{{invoice_number}}"],["Amount","{{price}}"],["Balance Due","{{balance_due}}"],["Payment Method","{{payment_method}}"]],"id":"invoice_71a1f0","locked":true,"title":"Invoice","type":"invoice_summary"},{"content":"View Invoice and Customer Portal","id":"invoice_actions_83c264","locked":false,"title":"Invoice Actions","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","invoice_number","price","balance_due","invoice_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"gift_card_purchased","name":"Gift Card Purchased","category":"portal","hero_badge":"Gift Card","status_icon":"gift","automation_event":"Gift card purchased","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Gift card from {{company_name}}","preview_text":"Your gift card purchase is ready.","header_title":"Gift Card Purchased","body_text":"Hi {{customer_name}}, your {{gift_card_amount}} gift card for {{gift_card_recipient}} has been created by {{company_name}}.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Gift card from {{company_name}}","preview_text":"Your gift card purchase is ready.","header_title":"Gift Card Purchased","body_text":"Hi {{customer_name}}, your {{gift_card_amount}} gift card for {{gift_card_recipient}} has been created by {{company_name}}.","button_overrides":{}},"es":{"subject":"Gift card from {{company_name}}","preview_text":"Your gift card purchase is ready.","header_title":"Gift Card Purchased","body_text":"Hi {{customer_name}}, your {{gift_card_amount}} gift card for {{gift_card_recipient}} has been created by {{company_name}}.","button_overrides":{}}},"ctas":[{"key":"portal","label":"View Gift Card","required":false,"style":"primary","url_variable":"portal_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","gift_card_amount","gift_card_recipient","portal_url"],"reminder_timing":"When gift card is purchased","blocks":[{"content":"Gift card hero.","id":"gift_card_purchased_7de896","locked":false,"title":"Gift Card Purchased","type":"hero"},{"content":[["Amount","{{gift_card_amount}}"],["Recipient","{{gift_card_recipient}}"],["From","{{customer_name}}"]],"id":"gift_card_0395dd","locked":false,"title":"Gift Card","type":"gift_card"},{"content":"View Gift Card","id":"gift_card_action_6af3ba","locked":false,"title":"Gift Card Action","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","gift_card_amount","gift_card_recipient","portal_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"referral_earned","name":"Referral Earned","category":"portal","hero_badge":"Referral","status_icon":"reward","automation_event":"Referral earned","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"You earned a referral reward","preview_text":"Your referral credit is available.","header_title":"Referral Earned","body_text":"Hi {{customer_name}}, thank you for referring {{company_name}}. You earned {{referral_credit}} in referral credit.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"You earned a referral reward","preview_text":"Your referral credit is available.","header_title":"Referral Earned","body_text":"Hi {{customer_name}}, thank you for referring {{company_name}}. You earned {{referral_credit}} in referral credit.","button_overrides":{}},"es":{"subject":"You earned a referral reward","preview_text":"Your referral credit is available.","header_title":"Referral Earned","body_text":"Hi {{customer_name}}, thank you for referring {{company_name}}. You earned {{referral_credit}} in referral credit.","button_overrides":{}}},"ctas":[{"key":"portal","label":"View Referral Reward","required":false,"style":"primary","url_variable":"portal_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","referral_credit","portal_url"],"reminder_timing":"When referral reward is earned","blocks":[{"content":"Referral reward hero.","id":"referral_earned_f75b3d","locked":false,"title":"Referral Earned","type":"hero"},{"content":"{{referral_credit}}","id":"referral_credit_9e314b","locked":false,"title":"Referral Credit","type":"reward_card"},{"content":"View Referral Reward","id":"referral_action_62fb96","locked":false,"title":"Referral Action","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","referral_credit","portal_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"reward_available","name":"Reward Available","category":"portal","hero_badge":"Reward","status_icon":"reward","automation_event":"Reward available","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Your {{company_name}} reward is available","preview_text":"A customer reward is ready.","header_title":"Reward Available","body_text":"Hi {{customer_name}}, you have {{reward_amount}} available with {{company_name}}. Use your customer portal to apply it toward an eligible service.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Your {{company_name}} reward is available","preview_text":"A customer reward is ready.","header_title":"Reward Available","body_text":"Hi {{customer_name}}, you have {{reward_amount}} available with {{company_name}}. Use your customer portal to apply it toward an eligible service.","button_overrides":{}},"es":{"subject":"Your {{company_name}} reward is available","preview_text":"A customer reward is ready.","header_title":"Reward Available","body_text":"Hi {{customer_name}}, you have {{reward_amount}} available with {{company_name}}. Use your customer portal to apply it toward an eligible service.","button_overrides":{}}},"ctas":[{"key":"portal","label":"Use Reward","required":false,"style":"primary","url_variable":"portal_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","reward_amount","portal_url"],"reminder_timing":"When reward becomes available","blocks":[{"content":"Reward hero.","id":"reward_available_a05dd2","locked":false,"title":"Reward Available","type":"hero"},{"content":"{{reward_amount}}","id":"available_reward_913a4d","locked":false,"title":"Available Reward","type":"reward_card"},{"content":"Use Reward","id":"reward_action_4cdbdb","locked":false,"title":"Reward Action","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","reward_amount","portal_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"membership_renewed","name":"Membership Renewed","category":"portal","hero_badge":"Membership","status_icon":"renew","automation_event":"Membership renewed","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Your {{company_name}} membership renewed","preview_text":"Membership renewal confirmation.","header_title":"Membership Renewed","body_text":"Hi {{customer_name}}, your {{membership_plan}} with {{company_name}} has renewed. Your next service details and receipts are available in the customer portal.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Your {{company_name}} membership renewed","preview_text":"Membership renewal confirmation.","header_title":"Membership Renewed","body_text":"Hi {{customer_name}}, your {{membership_plan}} with {{company_name}} has renewed. Your next service details and receipts are available in the customer portal.","button_overrides":{}},"es":{"subject":"Your {{company_name}} membership renewed","preview_text":"Membership renewal confirmation.","header_title":"Membership Renewed","body_text":"Hi {{customer_name}}, your {{membership_plan}} with {{company_name}} has renewed. Your next service details and receipts are available in the customer portal.","button_overrides":{}}},"ctas":[{"key":"portal","label":"Go To Portal","required":false,"style":"primary","url_variable":"portal_login_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","membership_plan","portal_login_url"],"reminder_timing":"When membership renews","blocks":[{"content":"Membership hero.","id":"membership_renewed_e64f2d","locked":false,"title":"Membership Renewed","type":"hero"},{"content":[["Plan","{{membership_plan}}"],["Amount","{{subscription_amount}}"],["Portal","{{portal_login_url}}"]],"id":"membership_2ee7b6","locked":false,"title":"Membership","type":"membership_card"},{"content":"Go To Portal","id":"membership_action_80d5df","locked":false,"title":"Membership Action","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","membership_plan","portal_login_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"subscription_receipt","name":"Subscription Receipt","category":"billing","hero_badge":"Receipt","status_icon":"receipt","automation_event":"Subscription receipt","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Subscription receipt from {{company_name}}","preview_text":"Your subscription receipt is ready.","header_title":"Subscription Receipt","body_text":"Hi {{customer_name}}, your {{membership_plan}} subscription payment of {{subscription_amount}} has been processed.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Subscription receipt from {{company_name}}","preview_text":"Your subscription receipt is ready.","header_title":"Subscription Receipt","body_text":"Hi {{customer_name}}, your {{membership_plan}} subscription payment of {{subscription_amount}} has been processed.","button_overrides":{}},"es":{"subject":"Subscription receipt from {{company_name}}","preview_text":"Your subscription receipt is ready.","header_title":"Subscription Receipt","body_text":"Hi {{customer_name}}, your {{membership_plan}} subscription payment of {{subscription_amount}} has been processed.","button_overrides":{}}},"ctas":[{"key":"invoice","label":"View Invoice","required":false,"style":"primary","url_variable":"invoice_url"},{"key":"portal","label":"Customer Portal","required":false,"style":"secondary","url_variable":"portal_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","membership_plan","subscription_amount","invoice_url"],"reminder_timing":"When subscription payment succeeds","blocks":[{"content":"Subscription receipt hero.","id":"subscription_receipt_6aa76b","locked":false,"title":"Subscription Receipt","type":"hero"},{"content":[["Plan","{{membership_plan}}"],["Amount","{{subscription_amount}}"],["Invoice","{{invoice_number}}"]],"id":"subscription_a66ec0","locked":true,"title":"Subscription","type":"invoice_summary"},{"content":"View Invoice and Customer Portal","id":"receipt_actions_a4d417","locked":false,"title":"Receipt Actions","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","membership_plan","subscription_amount","invoice_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"estimate_ready","name":"Estimate Ready","category":"sales","hero_badge":"Estimate","status_icon":"document","automation_event":"Estimate created","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Your {{company_name}} estimate is ready","preview_text":"Review and approve your estimate.","header_title":"Estimate Ready","body_text":"Hi {{customer_name}}, your {{service_type}} estimate from {{company_name}} is ready. Review the service details, price, and available times in your portal.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Your {{company_name}} estimate is ready","preview_text":"Review and approve your estimate.","header_title":"Estimate Ready","body_text":"Hi {{customer_name}}, your {{service_type}} estimate from {{company_name}} is ready. Review the service details, price, and available times in your portal.","button_overrides":{}},"es":{"subject":"Your {{company_name}} estimate is ready","preview_text":"Review and approve your estimate.","header_title":"Estimate Ready","body_text":"Hi {{customer_name}}, your {{service_type}} estimate from {{company_name}} is ready. Review the service details, price, and available times in your portal.","button_overrides":{}}},"ctas":[{"key":"approve_estimate","label":"Approve Estimate","required":false,"style":"primary","url_variable":"estimate_url"},{"key":"reject_estimate","label":"Reject Estimate","required":false,"style":"secondary","url_variable":"estimate_url"},{"key":"office","label":"Ask A Question","required":false,"style":"ghost","url_variable":"portal_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","service_type","estimate_number","estimate_url"],"reminder_timing":"When estimate is created","blocks":[{"content":"Estimate hero.","id":"estimate_ready_e2b7ca","locked":false,"title":"Estimate Ready","type":"hero"},{"content":[["Estimate","{{estimate_number}}"],["Service","{{service_type}}"],["Price","{{price}}"],["Address","{{property_address}}"]],"id":"estimate_5579ca","locked":true,"title":"Estimate","type":"estimate_card"},{"content":"Approve Estimate, Reject Estimate, Ask A Question","id":"estimate_actions_27f852","locked":false,"title":"Estimate Actions","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","service_type","estimate_number","estimate_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"commercial_proposal","name":"Commercial Proposal","category":"sales","hero_badge":"Commercial","status_icon":"briefcase","automation_event":"Commercial proposal created","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Commercial proposal from {{company_name}}","preview_text":"Review your proposal and next steps.","header_title":"Commercial Proposal","body_text":"Hi {{customer_name}}, your commercial cleaning proposal from {{company_name}} is ready. You can accept the proposal or schedule a walkthrough.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Commercial proposal from {{company_name}}","preview_text":"Review your proposal and next steps.","header_title":"Commercial Proposal","body_text":"Hi {{customer_name}}, your commercial cleaning proposal from {{company_name}} is ready. You can accept the proposal or schedule a walkthrough.","button_overrides":{}},"es":{"subject":"Commercial proposal from {{company_name}}","preview_text":"Review your proposal and next steps.","header_title":"Commercial Proposal","body_text":"Hi {{customer_name}}, your commercial cleaning proposal from {{company_name}} is ready. You can accept the proposal or schedule a walkthrough.","button_overrides":{}}},"ctas":[{"key":"accept_proposal","label":"Accept Proposal","required":false,"style":"primary","url_variable":"proposal_url"},{"key":"walkthrough","label":"Schedule Walkthrough","required":false,"style":"secondary","url_variable":"walkthrough_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","proposal_number","proposal_url","walkthrough_url"],"reminder_timing":"When proposal is created","blocks":[{"content":"Commercial proposal hero.","id":"commercial_proposal_b7b2c6","locked":false,"title":"Commercial Proposal","type":"hero"},{"content":[["Proposal","{{proposal_number}}"],["Service","{{service_type}}"],["Address","{{property_address}}"],["Price","{{price}}"]],"id":"proposal_26a9e4","locked":true,"title":"Proposal","type":"proposal_card"},{"content":"Accept Proposal and Schedule Walkthrough","id":"proposal_actions_76ac69","locked":false,"title":"Proposal Actions","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","proposal_number","proposal_url","walkthrough_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"complaint_received","name":"Complaint Received","category":"quality","hero_badge":"Quality Care","status_icon":"support","automation_event":"Complaint received","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"{{company_name}} received your concern","preview_text":"Your complaint has been received.","header_title":"Complaint Received","body_text":"Hi {{customer_name}}, {{company_name}} received your concern and created ticket {{ticket_number}}. Our team will review the details and follow up.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"{{company_name}} received your concern","preview_text":"Your complaint has been received.","header_title":"Complaint Received","body_text":"Hi {{customer_name}}, {{company_name}} received your concern and created ticket {{ticket_number}}. Our team will review the details and follow up.","button_overrides":{}},"es":{"subject":"{{company_name}} received your concern","preview_text":"Your complaint has been received.","header_title":"Complaint Received","body_text":"Hi {{customer_name}}, {{company_name}} received your concern and created ticket {{ticket_number}}. Our team will review the details and follow up.","button_overrides":{}}},"ctas":[{"key":"portal","label":"Track Ticket","required":false,"style":"primary","url_variable":"portal_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","ticket_number","portal_url"],"reminder_timing":"When complaint is submitted","blocks":[{"content":"Complaint acknowledgement hero.","id":"complaint_received_ad926c","locked":false,"title":"Complaint Received","type":"hero"},{"content":[["Ticket","{{ticket_number}}"],["Status","{{complaint_status}}"],["Portal","{{portal_url}}"]],"id":"ticket_6fbb81","locked":true,"title":"Ticket","type":"ticket_card"},{"content":"Track Ticket","id":"complaint_action_bd178b","locked":false,"title":"Complaint Action","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","ticket_number","portal_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"complaint_follow_up","name":"Complaint Follow-Up","category":"quality","hero_badge":"Follow-Up","status_icon":"support","automation_event":"Complaint follow-up","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Follow-up from {{company_name}}","preview_text":"Your service concern update is ready.","header_title":"Complaint Follow-Up","body_text":"Hi {{customer_name}}, we have an update on ticket {{ticket_number}}. {{company_name}} is committed to making the service experience right.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Follow-up from {{company_name}}","preview_text":"Your service concern update is ready.","header_title":"Complaint Follow-Up","body_text":"Hi {{customer_name}}, we have an update on ticket {{ticket_number}}. {{company_name}} is committed to making the service experience right.","button_overrides":{}},"es":{"subject":"Follow-up from {{company_name}}","preview_text":"Your service concern update is ready.","header_title":"Complaint Follow-Up","body_text":"Hi {{customer_name}}, we have an update on ticket {{ticket_number}}. {{company_name}} is committed to making the service experience right.","button_overrides":{}}},"ctas":[{"key":"portal","label":"Track Ticket","required":false,"style":"primary","url_variable":"portal_url"},{"key":"office","label":"Message Office","required":false,"style":"secondary","url_variable":"portal_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","ticket_number","portal_url"],"reminder_timing":"When complaint status changes","blocks":[{"content":"Complaint follow-up hero.","id":"complaint_follow_up_7b79a8","locked":false,"title":"Complaint Follow-Up","type":"hero"},{"content":[["Ticket","{{ticket_number}}"],["Status","{{complaint_status}}"]],"id":"ticket_update_b7ceab","locked":true,"title":"Ticket Update","type":"ticket_card"},{"content":"Track Ticket and Message Office","id":"follow_up_actions_f547a8","locked":false,"title":"Follow-Up Actions","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","ticket_number","portal_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},{"template_key":"quality_inspection_complete","name":"Quality Inspection Complete","category":"quality","hero_badge":"Quality","status_icon":"quality","automation_event":"Quality inspection completed","editable_fields":["subject","preview_text","header_title","body_text","button_text","footer_message","signature","logo","brand_color","cta_wording","language_versions"],"enabled":true,"status":"published","subject":"Quality inspection complete","preview_text":"Your quality inspection is complete.","header_title":"Quality Inspection Complete","body_text":"Hi {{customer_name}}, {{company_name}} completed the quality inspection for {{service_type}} at {{property_address}}. Quality Score: {{quality_score}}.","footer_message":"{{company_name}} | {{company_phone}} | {{company_email}} | {{company_website}} | {{company_address}}\nManage preferences: {{unsubscribe_url}}","signature":"With appreciation,\n{{company_name}}","reply_to":"{{company_email}}","sender_name":"{{company_name}}","brand":{"logo":"{{company_logo}}","primary_color":"{{company_primary_color}}","secondary_color":"{{company_secondary_color}}"},"language_versions":{"en":{"subject":"Quality inspection complete","preview_text":"Your quality inspection is complete.","header_title":"Quality Inspection Complete","body_text":"Hi {{customer_name}}, {{company_name}} completed the quality inspection for {{service_type}} at {{property_address}}. Quality Score: {{quality_score}}.","button_overrides":{}},"es":{"subject":"Quality inspection complete","preview_text":"Your quality inspection is complete.","header_title":"Quality Inspection Complete","body_text":"Hi {{customer_name}}, {{company_name}} completed the quality inspection for {{service_type}} at {{property_address}}. Quality Score: {{quality_score}}.","button_overrides":{}}},"ctas":[{"key":"portal","label":"View Quality Notes","required":false,"style":"primary","url_variable":"portal_url"},{"key":"review","label":"Rate Service","required":false,"style":"secondary","url_variable":"review_url"}],"required_ctas":[],"required_variables":["customer_name","company_name","service_type","property_address","quality_score","portal_url"],"reminder_timing":"When quality inspection is completed","blocks":[{"content":"Quality inspection hero.","id":"quality_inspection_complete_46e121","locked":false,"title":"Quality Inspection Complete","type":"hero"},{"content":[["Service","{{service_type}}"],["Address","{{property_address}}"],["Score","{{quality_score}}"],["Ticket","{{ticket_number}}"]],"id":"inspection_8d24e4","locked":true,"title":"Inspection","type":"quality_card"},{"content":"View Quality Notes and Rate Service","id":"quality_actions_35f104","locked":false,"title":"Quality Actions","type":"cta_buttons"}],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","service_type","property_address","quality_score","portal_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}}],"sms_templates":[{"sms_template_key":"sms_booking_confirmation_request","name":"Booking Confirmation Request","category":"booking","trigger":"New booking created","enabled":true,"status":"published","message":"Hi {{customer_name}}! Thanks for choosing {{company_name}}.\n\nBooking: {{booking_number}}\n{{service_name}}\n{{booking_date}}\n{{arrival_window}}\n{{service_address}}\n\nPlease confirm your appointment:\nConfirm: {{confirmation_url}}\n\nNeed a different time?\nReschedule: {{reschedule_url}}\n\nQuestions? Call {{company_phone}}","sender_name":"{{company_name}}","cta_text":"Open secure link","required_actions":["confirm","reschedule","contact_office"],"required_variables":["customer_name","company_name","company_phone","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","booking_number"],"protected_links":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"],"reminder_timing":"Immediately","editable_fields":["enabled","message","cta_text","sender_name","reminder_timing","service_type_overrides","language_versions"],"language_versions":{"en":{"message":"Hi {{customer_name}}! Thanks for choosing {{company_name}}.\n\nBooking: {{booking_number}}\n{{service_name}}\n{{booking_date}}\n{{arrival_window}}\n{{service_address}}\n\nPlease confirm your appointment:\nConfirm: {{confirmation_url}}\n\nNeed a different time?\nReschedule: {{reschedule_url}}\n\nQuestions? Call {{company_phone}}"},"es":{"message":"Hola {{customer_name}}! Gracias por elegir {{company_name}}.\n\nReserva: {{booking_number}}\n{{service_name}}\n{{booking_date}}\n{{arrival_window}}\n{{service_address}}\n\nConfirme su cita:\nConfirmar: {{confirmation_url}}\n\nNecesita otro horario?\nReprogramar: {{reschedule_url}}\n\nPreguntas? Llame a {{company_phone}}"}},"service_type_overrides":[],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["customer_name","company_name","company_phone","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","booking_number"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]}},{"sms_template_key":"sms_booking_confirmed","name":"Booking Confirmed","category":"booking","trigger":"Customer confirms appointment","enabled":true,"status":"published","message":"Thank you, {{customer_name}}!\n\nYour appointment has been confirmed.\n\nWe look forward to seeing you on {{booking_date}} during {{arrival_window}}.\n\nView your appointment:\n{{portal_url}}\n\nOffice: {{company_phone}}","sender_name":"{{company_name}}","cta_text":"Open secure link","required_actions":["portal","contact_office"],"required_variables":["customer_name","booking_date","arrival_window","portal_url","company_phone"],"protected_links":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"],"reminder_timing":"After confirmation","editable_fields":["enabled","message","cta_text","sender_name","reminder_timing","service_type_overrides","language_versions"],"language_versions":{"en":{"message":"Thank you, {{customer_name}}!\n\nYour appointment has been confirmed.\n\nWe look forward to seeing you on {{booking_date}} during {{arrival_window}}.\n\nView your appointment:\n{{portal_url}}\n\nOffice: {{company_phone}}"},"es":{"message":"Thank you, {{customer_name}}!\n\nYour appointment has been confirmed.\n\nWe look forward to seeing you on {{booking_date}} during {{arrival_window}}.\n\nView your appointment:\n{{portal_url}}\n\nOffice: {{company_phone}}"}},"service_type_overrides":[],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["customer_name","booking_date","arrival_window","portal_url","company_phone"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]}},{"sms_template_key":"sms_reminder_72h","name":"72 Hour Reminder","category":"reminder","trigger":"72 hours before service","enabled":true,"status":"published","message":"Hi {{customer_name}}, friendly reminder from {{company_name}}.\n\nBooking: {{booking_number}}\nYour {{service_name}} is scheduled for {{booking_date}} during {{arrival_window}}.\n\nAddress: {{service_address}}\n\nConfirm:\n{{confirmation_url}}\n\nReschedule:\n{{reschedule_url}}\n\nQuestions? {{company_phone}}","sender_name":"{{company_name}}","cta_text":"Open secure link","required_actions":["confirm","reschedule","contact_office"],"required_variables":["customer_name","company_name","company_phone","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","booking_number"],"protected_links":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"],"reminder_timing":"72 hours before service","editable_fields":["enabled","message","cta_text","sender_name","reminder_timing","service_type_overrides","language_versions"],"language_versions":{"en":{"message":"Hi {{customer_name}}, friendly reminder from {{company_name}}.\n\nBooking: {{booking_number}}\nYour {{service_name}} is scheduled for {{booking_date}} during {{arrival_window}}.\n\nAddress: {{service_address}}\n\nConfirm:\n{{confirmation_url}}\n\nReschedule:\n{{reschedule_url}}\n\nQuestions? {{company_phone}}"},"es":{"message":"Hi {{customer_name}}, friendly reminder from {{company_name}}.\n\nBooking: {{booking_number}}\nYour {{service_name}} is scheduled for {{booking_date}} during {{arrival_window}}.\n\nAddress: {{service_address}}\n\nConfirm:\n{{confirmation_url}}\n\nReschedule:\n{{reschedule_url}}\n\nQuestions? {{company_phone}}"}},"service_type_overrides":[],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["customer_name","company_name","company_phone","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","booking_number"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]}},{"sms_template_key":"sms_reminder_24h","name":"24 Hour Reminder","category":"reminder","trigger":"24 hours before service","enabled":true,"status":"published","message":"Hi {{customer_name}}, your {{service_name}} is scheduled for {{booking_date}}.\n\nBooking: {{booking_number}}\nAddress: {{service_address}}\nArrival: {{arrival_window}}\n\nConfirm:\n{{confirmation_url}}\n\nNeed another time?\n{{reschedule_url}}\n\nOffice: {{company_phone}}","sender_name":"{{company_name}}","cta_text":"Open secure link","required_actions":["confirm","reschedule","contact_office"],"required_variables":["customer_name","company_name","company_phone","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","booking_number"],"protected_links":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"],"reminder_timing":"24 hours before service","editable_fields":["enabled","message","cta_text","sender_name","reminder_timing","service_type_overrides","language_versions"],"language_versions":{"en":{"message":"Hi {{customer_name}}, your {{service_name}} is scheduled for {{booking_date}}.\n\nBooking: {{booking_number}}\nAddress: {{service_address}}\nArrival: {{arrival_window}}\n\nConfirm:\n{{confirmation_url}}\n\nNeed another time?\n{{reschedule_url}}\n\nOffice: {{company_phone}}"},"es":{"message":"Hi {{customer_name}}, your {{service_name}} is scheduled for {{booking_date}}.\n\nBooking: {{booking_number}}\nAddress: {{service_address}}\nArrival: {{arrival_window}}\n\nConfirm:\n{{confirmation_url}}\n\nNeed another time?\n{{reschedule_url}}\n\nOffice: {{company_phone}}"}},"service_type_overrides":[],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["customer_name","company_name","company_phone","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","booking_number"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]}},{"sms_template_key":"sms_team_on_the_way","name":"Team On The Way","category":"dispatch","trigger":"Team status changes to on the way","enabled":true,"status":"published","message":"Your cleaning team is on the way.\n\nTeam: {{team_name}}\nETA: {{eta_minutes}}\n\nTrack arrival:\n{{tracking_url}}\n\nNeed help? {{company_phone}}","sender_name":"{{company_name}}","cta_text":"Open secure link","required_actions":["track","contact_office"],"required_variables":["team_name","eta_minutes","tracking_url","company_phone"],"protected_links":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"],"reminder_timing":"When team status changes to on the way","editable_fields":["enabled","message","cta_text","sender_name","reminder_timing","service_type_overrides","language_versions"],"language_versions":{"en":{"message":"Your cleaning team is on the way.\n\nTeam: {{team_name}}\nETA: {{eta_minutes}}\n\nTrack arrival:\n{{tracking_url}}\n\nNeed help? {{company_phone}}"},"es":{"message":"Your cleaning team is on the way.\n\nTeam: {{team_name}}\nETA: {{eta_minutes}}\n\nTrack arrival:\n{{tracking_url}}\n\nNeed help? {{company_phone}}"}},"service_type_overrides":[],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["team_name","eta_minutes","tracking_url","company_phone"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]}},{"sms_template_key":"sms_cleaner_arrived","name":"Cleaner Arrived","category":"dispatch","trigger":"Cleaner checks in at service address","enabled":true,"status":"published","message":"Your cleaning professionals have arrived.\n\nTechnician: {{technician_name}}\nAddress: {{service_address}}\n\nIf you need to contact the office:\n{{company_phone}}","sender_name":"{{company_name}}","cta_text":"Open secure link","required_actions":["contact_office"],"required_variables":["technician_name","service_address","company_phone"],"protected_links":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"],"reminder_timing":"When cleaner checks in","editable_fields":["enabled","message","cta_text","sender_name","reminder_timing","service_type_overrides","language_versions"],"language_versions":{"en":{"message":"Your cleaning professionals have arrived.\n\nTechnician: {{technician_name}}\nAddress: {{service_address}}\n\nIf you need to contact the office:\n{{company_phone}}"},"es":{"message":"Your cleaning professionals have arrived.\n\nTechnician: {{technician_name}}\nAddress: {{service_address}}\n\nIf you need to contact the office:\n{{company_phone}}"}},"service_type_overrides":[],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["technician_name","service_address","company_phone"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]}},{"sms_template_key":"sms_cleaning_completed","name":"Cleaning Completed","category":"completion","trigger":"Job completed","enabled":true,"status":"published","message":"Thank you for choosing {{company_name}}!\n\nYour {{service_name}} has been completed.\n\nView your invoice:\n{{invoice_url}}\n\nLeave a review:\n{{review_url}}\n\nOffice: {{company_phone}}","sender_name":"{{company_name}}","cta_text":"Open secure link","required_actions":["invoice","review","contact_office"],"required_variables":["company_name","service_name","invoice_url","review_url","company_phone"],"protected_links":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"],"reminder_timing":"When job is completed","editable_fields":["enabled","message","cta_text","sender_name","reminder_timing","service_type_overrides","language_versions"],"language_versions":{"en":{"message":"Thank you for choosing {{company_name}}!\n\nYour {{service_name}} has been completed.\n\nView your invoice:\n{{invoice_url}}\n\nLeave a review:\n{{review_url}}\n\nOffice: {{company_phone}}"},"es":{"message":"Thank you for choosing {{company_name}}!\n\nYour {{service_name}} has been completed.\n\nView your invoice:\n{{invoice_url}}\n\nLeave a review:\n{{review_url}}\n\nOffice: {{company_phone}}"}},"service_type_overrides":[],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["company_name","service_name","invoice_url","review_url","company_phone"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]}},{"sms_template_key":"sms_payment_receipt","name":"Payment Receipt","category":"billing","trigger":"Payment captured","enabled":true,"status":"published","message":"Payment received from {{company_name}}.\n\nAmount: {{amount}}\nMethod: {{payment_method}}\n\nReceipt:\n{{invoice_url}}","sender_name":"{{company_name}}","cta_text":"Open secure link","required_actions":["receipt"],"required_variables":["company_name","amount","payment_method","invoice_url"],"protected_links":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"],"reminder_timing":"After successful payment","editable_fields":["enabled","message","cta_text","sender_name","reminder_timing","service_type_overrides","language_versions"],"language_versions":{"en":{"message":"Payment received from {{company_name}}.\n\nAmount: {{amount}}\nMethod: {{payment_method}}\n\nReceipt:\n{{invoice_url}}"},"es":{"message":"Payment received from {{company_name}}.\n\nAmount: {{amount}}\nMethod: {{payment_method}}\n\nReceipt:\n{{invoice_url}}"}},"service_type_overrides":[],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["company_name","amount","payment_method","invoice_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]}},{"sms_template_key":"sms_failed_payment","name":"Failed Payment","category":"billing","trigger":"Payment fails","enabled":true,"status":"published","message":"We were unable to process your payment for {{company_name}}.\n\nBalance due: {{balance_due}}\n\nUpdate your payment method:\n{{payment_url}}\n\nQuestions? {{company_phone}}","sender_name":"{{company_name}}","cta_text":"Open secure link","required_actions":["payment","contact_office"],"required_variables":["company_name","balance_due","payment_url","company_phone"],"protected_links":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"],"reminder_timing":"After failed payment","editable_fields":["enabled","message","cta_text","sender_name","reminder_timing","service_type_overrides","language_versions"],"language_versions":{"en":{"message":"We were unable to process your payment for {{company_name}}.\n\nBalance due: {{balance_due}}\n\nUpdate your payment method:\n{{payment_url}}\n\nQuestions? {{company_phone}}"},"es":{"message":"We were unable to process your payment for {{company_name}}.\n\nBalance due: {{balance_due}}\n\nUpdate your payment method:\n{{payment_url}}\n\nQuestions? {{company_phone}}"}},"service_type_overrides":[],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["company_name","balance_due","payment_url","company_phone"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]}},{"sms_template_key":"sms_review_request","name":"Review Request","category":"review","trigger":"After service completion","enabled":true,"status":"published","message":"Thank you for allowing {{company_name}} to clean your home!\n\nWe would love your feedback.\n\nLeave a Review:\n{{review_url}}\n\nNeed help? {{company_phone}}","sender_name":"{{company_name}}","cta_text":"Open secure link","required_actions":["review","contact_office"],"required_variables":["company_name","review_url","company_phone"],"protected_links":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"],"reminder_timing":"2 hours after completion","editable_fields":["enabled","message","cta_text","sender_name","reminder_timing","service_type_overrides","language_versions"],"language_versions":{"en":{"message":"Thank you for allowing {{company_name}} to clean your home!\n\nWe would love your feedback.\n\nLeave a Review:\n{{review_url}}\n\nNeed help? {{company_phone}}"},"es":{"message":"Thank you for allowing {{company_name}} to clean your home!\n\nWe would love your feedback.\n\nLeave a Review:\n{{review_url}}\n\nNeed help? {{company_phone}}"}},"service_type_overrides":[],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["company_name","review_url","company_phone"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]}},{"sms_template_key":"sms_reschedule_confirmation","name":"Reschedule Confirmation","category":"booking","trigger":"Booking rescheduled","enabled":true,"status":"published","message":"Your appointment has been successfully rescheduled.\n\nNew Date:\n{{booking_date}}\n\nArrival:\n{{arrival_window}}\n\nView appointment:\n{{portal_url}}\n\nOffice: {{company_phone}}","sender_name":"{{company_name}}","cta_text":"Open secure link","required_actions":["portal","contact_office"],"required_variables":["booking_date","arrival_window","portal_url","company_phone"],"protected_links":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"],"reminder_timing":"After reschedule","editable_fields":["enabled","message","cta_text","sender_name","reminder_timing","service_type_overrides","language_versions"],"language_versions":{"en":{"message":"Your appointment has been successfully rescheduled.\n\nNew Date:\n{{booking_date}}\n\nArrival:\n{{arrival_window}}\n\nView appointment:\n{{portal_url}}\n\nOffice: {{company_phone}}"},"es":{"message":"Your appointment has been successfully rescheduled.\n\nNew Date:\n{{booking_date}}\n\nArrival:\n{{arrival_window}}\n\nView appointment:\n{{portal_url}}\n\nOffice: {{company_phone}}"}},"service_type_overrides":[],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["booking_date","arrival_window","portal_url","company_phone"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]}},{"sms_template_key":"sms_cancellation_confirmation","name":"Cancellation Confirmation","category":"booking","trigger":"Booking cancelled","enabled":true,"status":"published","message":"Your appointment with {{company_name}} has been cancelled.\n\nIf this was a mistake or you would like to rebook:\n{{booking_url}}\n\nOffice: {{company_phone}}","sender_name":"{{company_name}}","cta_text":"Open secure link","required_actions":["rebook","contact_office"],"required_variables":["company_name","booking_url","company_phone"],"protected_links":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"],"reminder_timing":"After cancellation","editable_fields":["enabled","message","cta_text","sender_name","reminder_timing","service_type_overrides","language_versions"],"language_versions":{"en":{"message":"Your appointment with {{company_name}} has been cancelled.\n\nIf this was a mistake or you would like to rebook:\n{{booking_url}}\n\nOffice: {{company_phone}}"},"es":{"message":"Your appointment with {{company_name}} has been cancelled.\n\nIf this was a mistake or you would like to rebook:\n{{booking_url}}\n\nOffice: {{company_phone}}"}},"service_type_overrides":[],"version_history":[],"updated_at":"2026-06-25T20:11:59.756698+00:00","published_at":"2026-06-25T20:11:59.756698+00:00","validation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["company_name","booking_url","company_phone"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]}}],"delivery_events":[{"bounces":0,"clicks":31,"confirmations":27,"opens":42,"reschedules":3,"status":"sent","template_key":"booking_confirmation"},{"bounces":0,"clicks":21,"confirmations":14,"opens":38,"reschedules":2,"status":"sent","template_key":"booking_reminder_48h"},{"bounces":1,"clicks":12,"confirmations":0,"opens":26,"reschedules":0,"status":"sent","template_key":"review_request"}],"sms_delivery_events":[{"clicks":28,"confirmations":24,"delivered":36,"failures":0,"reschedules":2,"sms_template_key":"sms_booking_confirmation_request","status":"sent"},{"clicks":19,"confirmations":13,"delivered":31,"failures":0,"reschedules":1,"sms_template_key":"sms_reminder_72h","status":"sent"},{"clicks":5,"confirmations":0,"delivered":8,"failures":1,"reschedules":0,"sms_template_key":"sms_failed_payment","status":"sent"}],"used_action_tokens":{},"action_log":[],"updated_at":"2026-06-25T20:11:59.760211+00:00","analytics":{"ok":true,"version":"99.73-premium-email-and-sms-notification-center","summary":{"templates":26,"enabled":26,"tracked_events":3,"opens":106,"clicks":64,"confirmations":41,"reschedules":5,"bounces":1,"sms_templates":12,"sms_enabled":12},"rows":[{"bounces":0,"clicks":31,"confirmations":27,"opens":42,"reschedules":3,"status":"sent","template_key":"booking_confirmation"},{"bounces":0,"clicks":21,"confirmations":14,"opens":38,"reschedules":2,"status":"sent","template_key":"booking_reminder_48h"},{"bounces":1,"clicks":12,"confirmations":0,"opens":26,"reschedules":0,"status":"sent","template_key":"review_request"}]},"sms_analytics":{"ok":true,"version":"99.73-premium-email-and-sms-notification-center","summary":{"sms_templates":12,"sms_enabled":12,"tracked_events":3,"delivered":75,"clicks":52,"confirmations":37,"reschedules":3,"failures":1},"rows":[{"clicks":28,"confirmations":24,"delivered":36,"failures":0,"reschedules":2,"sms_template_key":"sms_booking_confirmation_request","status":"sent"},{"clicks":19,"confirmations":13,"delivered":31,"failures":0,"reschedules":1,"sms_template_key":"sms_reminder_72h","status":"sent"},{"clicks":5,"confirmations":0,"delivered":8,"failures":1,"reschedules":0,"sms_template_key":"sms_failed_payment","status":"sent"}]},"validations":{"booking_confirmation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","company_phone","company_email","service_type","service_date","arrival_window","property_address","confirm_booking_url","reschedule_url","booking_number","price"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"pending_confirmation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","company_phone","company_email","service_type","service_date","arrival_window","property_address","confirm_booking_url","reschedule_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"booking_reminder_48h":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","company_phone","company_email","service_type","service_date","arrival_window","property_address","confirm_booking_url","reschedule_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"tomorrow_reminder":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","company_phone","company_email","service_type","service_date","arrival_window","property_address","confirm_booking_url","reschedule_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"team_on_the_way":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","arrival_window","cleaners","property_address","portal_url","driver_name","vehicle"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"arrival":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","property_address","service_type","portal_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"cleaning_completed":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","service_type","property_address","invoice_number","balance_due","invoice_url","review_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"review_request":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","service_type","review_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"payment_receipt":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","invoice_number","payment_method","price","balance_due","invoice_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"failed_payment":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","company_phone","invoice_number","balance_due","payment_method","invoice_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"reschedule_confirmation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","service_type","service_date","arrival_window","property_address","calendar_url","old_service_date","new_service_date"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"cancellation_confirmation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","service_type","service_date","portal_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"account_created":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","portal_login_url","temporary_password"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"password_reset":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","password_reset_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"email_verification":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","verification_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"invoice_ready":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","invoice_number","price","balance_due","invoice_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"gift_card_purchased":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","gift_card_amount","gift_card_recipient","portal_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"referral_earned":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","referral_credit","portal_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"reward_available":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","reward_amount","portal_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"membership_renewed":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","membership_plan","portal_login_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"subscription_receipt":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","membership_plan","subscription_amount","invoice_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"estimate_ready":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","service_type","estimate_number","estimate_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"commercial_proposal":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","proposal_number","proposal_url","walkthrough_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"complaint_received":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","ticket_number","portal_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"complaint_follow_up":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","ticket_number","portal_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]},"quality_inspection_complete":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"missing_required_ctas":[],"required_variables":["customer_name","company_name","service_type","property_address","quality_score","portal_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_date","service_date","arrival_window","service_address","property_address","confirm_booking_url","reschedule_url","portal_login_url","portal_url","invoice_url","unsubscribe_url"]}},"sms_validations":{"sms_booking_confirmation_request":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["customer_name","company_name","company_phone","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","booking_number"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]},"sms_booking_confirmed":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["customer_name","booking_date","arrival_window","portal_url","company_phone"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]},"sms_reminder_72h":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["customer_name","company_name","company_phone","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","booking_number"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]},"sms_reminder_24h":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["customer_name","company_name","company_phone","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","booking_number"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]},"sms_team_on_the_way":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["team_name","eta_minutes","tracking_url","company_phone"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]},"sms_cleaner_arrived":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["technician_name","service_address","company_phone"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]},"sms_cleaning_completed":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["company_name","service_name","invoice_url","review_url","company_phone"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]},"sms_payment_receipt":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["company_name","amount","payment_method","invoice_url"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]},"sms_failed_payment":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["company_name","balance_due","payment_url","company_phone"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]},"sms_review_request":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["company_name","review_url","company_phone"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]},"sms_reschedule_confirmation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["booking_date","arrival_window","portal_url","company_phone"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]},"sms_cancellation_confirmation":{"valid":true,"errors":[],"warnings":[],"missing_required_variables":[],"required_variables":["company_name","booking_url","company_phone"],"protected_variables":["customer_name","company_name","company_phone","company_email","booking_number","service_name","booking_date","arrival_window","service_address","confirmation_url","reschedule_url","portal_url","invoice_url","payment_url","review_url","tracking_url"]}}}