Advanced Dropdown Builder
From 200+ option chaos to intelligent progressive disclosure
Preventing costly messaging errors through accurate counting and multi-language support


Our enterprise CRM's SMS channel served partners across the globe, but shipped with a basic character counter that couldn't handle modern messaging requirements. The system failed with emojis, non-Latin scripts, and dynamic text fields, causing incorrect message counts and unexpected campaign costs. Partners were blindsided by inflated SMS charges when diacritics or Unicode characters silently pushed messages from one segment to three. Critical billing disputes forced urgent action, while Arabic and Hebrew partners composed messages externally because our RTL text rendered unreadably.
Decision: Leveraged billing disputes to secure resources for comprehensive solution rather than band-aid fixes
Rationale: Senior management initially viewed this as a minor technical issue until billing disputes revealed enterprise-level financial risk and market expansion barriers. Financial impact created undeniable urgency where user complaints had not. I continued development during regular sprints and kept working on a comprehensive solution, so when crisis struck, we were ready.
Result: Secured full team allocation for three-month sprint instead of incremental patches that would have created new vulnerabilities.
Decision: Used support tickets and billing disputes as primary research data instead of traditional user research
Rationale: With no time or resources for extensive user research, we leveraged support tickets and billing dispute details as our primary data source. Each dispute included screenshots, message content, and extra-cost calculations. We essentially crowdsourced our usability testing data from real-world failures.
Result: Rapid problem identification without research timeline, with evidence directly tied to business impact.
Decision: Live encoding detection during typing rather than validation after message completion
Rationale: Cost awareness must occur during composition, not after mental commitment to the message content. Once someone has written their message, asking them to rewrite feels punitive. Catching issues as they type lets them make informed trade-offs naturally.
Result: Partners actively modified content to optimise costs during composition rather than discovering problems after the fact.
Decision: Eliminated financial risk before adding enhancement features
Rationale: A risk elimination attitude ensured financial exposure was removed first. This prevented partial or patchy fixes that could create new vulnerabilities. Comprehensive solution over band-aids meant we would not be back here in six months.
Result: No cascading issues from partial implementations, complete problem resolution in single release.


Real-time encoding detection that handles the full complexity of modern messaging. Emoji sequence handling correctly counts compound emojis (family emoji = 8 characters, not 1). Dynamic variable estimation uses defensive defaults: names at 25 characters, offers at 50, URLs at 100. Nested variables calculated recursively. Undefined variables display as placeholder text (8 chars) to prevent underestimation that would cause billing surprises.
Different indicators for known versus uncertain costs because they require different mental models. Yellow warnings for uncertain costs (variables that might expand) align with conventions for intermediate alerts encouraging timely adjustments. Blue info indicators for known impacts (special characters with calculable cost) provide reliable context without false urgency. Toggle-controlled character highlighting aids debugging but can be disabled to show accurate final message appearance.

Toggle-controlled highlighting: debugging mode vs. accurate final preview
Comprehensive tooltips explain how specific elements affect SMS encoding and segment count. Each tooltip type addresses a specific pain point: emoji impact on character limits, variable expansion estimates, special character encoding switches, hyperlink handling, and footer defaults. Partners can make informed decisions during composition rather than discovering impacts after sending.
Full device mockup with real-time updates showing exactly how SMS will appear to recipients. Multi-segment pagination display shows message breaks. Variable field preview with sample data lets partners see realistic message rendering. This became the highest-valued feature per partner feedback because SMS is consumed on mobile, and preview builds send confidence.

Real-time mobile preview: highest-valued feature per partner feedback
Bidirectional text implementation with proper cursor behaviour for Arabic and Hebrew composition. Mixed-direction content handling for messages combining RTL and LTR elements (like URLs in Arabic text). Integrated Arabic and Hebrew fonts. Partners who previously composed externally could now work entirely within the platform.

Global language support: proper rendering across Latin, Devanagari, Chinese, and RTL scripts
Mandatory acknowledgment system prevents accidental cost overruns. Partners must explicitly confirm understanding of variable text impact before sending campaigns with dynamic content or special characters. Once acknowledged, financial responsibility transfers to partner. The system warns but cannot prevent high-cost sends if explicitly approved, which is the right balance for enterprise autonomy.


Discovery: Second major billing dispute hit and created crisis-driven urgency. I had been developing a comprehensive solution during regular sprints, so we were ready when senior management finally allocated resources.
Research: Used support tickets and billing dispute details as primary data source. Each dispute included screenshots, message content, and exact cost calculations. This gave us real failure modes with business impact already quantified.
Strategy: Adopted risk elimination attitude to ensure financial exposure was removed before adding enhancement features. Chose comprehensive fix over band-aids to prevent cascading issues from partial implementations.
Development: Three-month sprint with phased delivery. Weeks 1-4 focused on risk elimination (mandatory warnings, basic preview). Weeks 5-8 built core features (intelligent counting, visual feedback). Weeks 9-12 enabled market expansion (RTL support, QA safeguards).
Validation: Partner beta testing in each target market provided feedback that synthetic testing could never match. They caught terminology issues, workflow gaps, and edge cases that would have caused problems at scale.
Launch: June 2024 deployment with immediate monitoring. Success manifested through what did not happen: no disputes, no escalations, no partner churn. The best validation for preventive design is when nothing goes wrong.


Strategic Insight:
Prevention economics matter more than most teams realise. Reactive fixes cost multiples of proactive solutions, and early investment prevents compound costs. Simple surface features can hide significant technical depth affecting enterprise relationships. Constraints also focus innovation; limited resources forced us to build only essential features, and that comprehensive approach prevented the partial-fix problems that plague incremental work. The foundation now enables future expansion: MMS with media preview, WhatsApp Business API, template libraries with pre-validated content, eventually AI-powered message optimisation.