Smart Data: Challenge Works’ prizes are already delivering, so what’s next?
Across the UK, millions of data points are generated every day from energy meters, financial transactions, transport use, online interactions, loyalty schemes and digital services. Currently, much of this value is held by individual organisations. Consumers generate the data, but don’t necessarily benefit from it.
Smart Data changes that. It gives individuals the right to access their own data and to share it securely with trusted third parties who can use it to deliver better, cheaper, more responsive services.
For nearly a decade, Challenge Works has supported government and regulators to turn Smart Data from an abstract ambition into a practical tool for competition, innovation and consumer benefit.
From Open Banking to cross-sector Smart Data, our challenge prizes have repeatedly shown what becomes possible when innovators are incentivised to solve a clearly defined challenge, with structured access to data, freedom to experiment and iterate, and the promise of reward for success.
Working with partners including the CMA, OBIE (now Open Banking Limited) and the Department for Business and Trade, we have:
- Realised the potential of Open Banking through the Open Up 2018 and Open Up 2020 challenge prizes, accelerating some of the UK’s most successful fintechs.
- Built multi-sector Smart Data capability, including the Smart Data Discovery Challenge and the Smart Data Challenge Prize delivering 10 prototypes at TRL 6.
- Created a pipeline of UK innovators ready to test new schemes across energy, home buying, financial services, the gig economy and more.
As the government explores next-generation Smart Data schemes, we want to work with departments, regulators and industry stakeholders to scope, design and deliver structured challenge prizes that de-risk policy implementation and accelerate benefits for consumers and businesses.
Why Smart Data matters now
As more of the services we use daily capture and use our data, the opportunity for consumers grows. It is increasingly important to understand the value of our data, its capacity to improve our lives.
Smart Data creates the conditions for competition and innovation in markets where incumbents have historically had a significant information advantage.
Potential applications are broad:
- Finance: Easier management of household finances through unified dashboards that combine current accounts, savings, credit, insurance, mortgages, pensions and utilities.
- Home buying: Shorter home buying transaction times through combined property, land registry and financial data.
- Transport and environment: Cheaper and lower-emission transport choices through integrated travel, payment and carbon data.
- Retail: Clearer shopping choices, for example healthier or cheaper food options through combined loyalty data.
- Energy: Reduced bills, or increased access to finance for green technologies such as solar panels or heat pumps through increased access to energy smart meter data along with property and banking data.
- Small business operations: Secure best prices at all times by regular switching between gas, electricity and water tariffs.
- Gig economy: Improved financial planning and fairer access to products through consolidated earnings data across multiple employers.
Unlocking this opportunity requires structured, evidence-driven programmes that test ideas before regulation is enacted. That is where challenge prizes consistently add value.
"From Open Banking to cross-sector Smart Data, our challenge prizes have repeatedly shown what becomes possible when innovators are incentivised to solve a clearly defined challenge, with structured access to data, freedom to experiment and iterate, and the promise of reward for success."
Open Banking: the first leap towards a Smart Data economy
Open Banking emerged from the 2008 financial crisis, when a concentrated banking sector was failing to meet the needs of UK consumers and SMEs. Mandated data sharing created the conditions for competition, but it was not immediately clear how third-party innovators would use this new access.
Challenge Works designed and delivered the Open Up 2018 and Open Up 2020 challenge prizes to bridge that gap.
Across the two prizes, dozens of fintechs received early funding to develop products using anonymised transaction data, before winners received further funding and support.
They included Coconut, Fluidly, Funding Options, Swoop, Moneybox, Plum, Mojo Mortgages and Stream – innovative fintechs that are now widely used by consumers and businesses.
80% of participants reported that taking part accelerated their time-to-market. Within two years of Open Up 2020, participating teams secured nearly £1 billion in investment.
These prizes built the practical evidence base, turned ideas into innovation, vision into tangible solutions that the public understood and uses to this day. They supported a pipeline of innovative startups that helped Open Banking succeed, showing precisely how incentivized funding and data access could translate into public benefit.
Moving beyond banking
Smart Data’s potential extends far beyond financial services, bringing together data from multiple sectors and making it interoperable. Interoperability is key to finding the synergies in the data that unlock benefits for consumers and businesses, as identified in the Smart Data Challenge Prize report.
To test the appetite and surface practical use cases across new sectors, the UK government partnered again with Challenge Works to deploy challenge prizes to achieve their objectives.
The Smart Data Discovery Challenge – a smaller-scale, exploratory prize – identified strong appetite among the UK innovator community to develop Smart Data solutions, bridging multiple sectors of the economy.
The larger-scale Smart Data Challenge Prize followed swiftly, giving 10 teams access to synthetic, sector-specific datasets via a bespoke sandbox. These teams developed high-quality prototypes, demonstrating credible pathways to real-world deployment once live Smart Data becomes available.
This work has established a growing network of UK innovators ready to work on the next wave of Smart Data schemes, demonstrating what is possible, and what is needed to make them a success.
"Smart Data’s potential extends far beyond financial services, bringing together data from multiple sectors and making it interoperable. "
Challenge Prizes: Practical progress for policymakers and regulators
Challenge prizes consistently support Smart Data policy development by:
- Testing concepts early and demonstrating innovator appetite before costly implementation decisions are made.
- Providing proof points that build confidence in new schemes and help inform effective anticipatory regulation.
- Building a pipeline of ready-to-scale solutions that can quickly translate policy intent into real-world outcomes.
- Engaging innovators, industry and consumers in a structured, collaborative environment.
- Reducing risk for regulators by surfacing practical considerations before new schemes go live and supporting multiple untested innovations to develop before awarding the prize.
The UK has already demonstrated global leadership in Open Banking. With the right support, Smart Data can do the same across energy, transport, home buying, financial services and more. Wan to stay updated on our Smart Data work? Join our Technology Frontiers newsletter using the form below.
#mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
/* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
Sign up now
* indicates required
Email Address *First Name *Last Name *
(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';fnames[3]='ADDRESS';ftypes[3]='address';fnames[4]='PHONE';ftypes[4]='phone';fnames[5]='BIRTHDAY';ftypes[5]='birthday';fnames[6]='COMPANY';ftypes[6]='text';fnames[7]='MMERGE7';ftypes[7]='text';fnames[8]='MMERGE8';ftypes[8]='number';}(jQuery));var $mcj = jQuery.noConflict(true);
// SMS Phone Multi-Country Functionality
if(!window.MC) {
window.MC = {};
}
window.MC.smsPhoneData = {
defaultCountryCode: 'GB',
programs: [],
smsProgramDataCountryNames: []
};
function getCountryUnicodeFlag(countryCode) {
return countryCode.toUpperCase().replace(/./g, (char) => String.fromCodePoint(char.charCodeAt(0) + 127397))
};
// HTML sanitization function to prevent XSS
function sanitizeHtml(str) {
if (typeof str!== 'string') return '';
return str
.replace(/&/g, '&')
.replace(//g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(///g, '/');
}
// URL sanitization function to prevent javascript: and data: URLs
function sanitizeUrl(url) {
if (typeof url!== 'string') return '';
const trimmedUrl = url.trim().toLowerCase();
if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
return '#';
}
return url;
}
const getBrowserLanguage = () => {
if (!window?.navigator?.language?.split('-')[1]) {
return window?.navigator?.language?.toUpperCase();
}
return window?.navigator?.language?.split('-')[1];
};
function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
if (!smsProgramData || smsProgramData.length === 0) {
return null;
}
const browserLanguage = getBrowserLanguage();
if (browserLanguage) {
const foundProgram = smsProgramData.find(
(program) => program?.countryCode === browserLanguage,
);
if (foundProgram) {
return foundProgram;
}
}
if (defaultCountryCode) {
const foundProgram = smsProgramData.find(
(program) => program?.countryCode === defaultCountryCode,
);
if (foundProgram) {
return foundProgram;
}
}
return smsProgramData[0];
}
function updateSmsLegalText(countryCode, fieldName) {
if (!countryCode ||!fieldName) {
return;
}
const programs = window?.MC?.smsPhoneData?.programs;
if (!programs ||!Array.isArray(programs)) {
return;
}
const program = programs.find(program => program?.countryCode === countryCode);
if (!program ||!program.requiredTemplate) {
return;
}
const legalTextElement = document.querySelector('#legal-text-' + fieldName);
if (!legalTextElement) {
return;
}
// Remove HTML tags and clean up the text
const divRegex = new RegExp(']*>', 'gi');
const fullAnchorRegex = new RegExp('<a.*?', 'g');
const anchorRegex = new RegExp('(.*?)');
const template = program.requiredTemplate.replace(divRegex, '');
legalTextElement.textContent = '';
const parts = template.split(/(.*?)/g);
parts.forEach(function(part) {
if (!part) {
return;
}
const anchorMatch = part.match(/(.*?)/);
if (anchorMatch) {
const linkElement = document.createElement('a');
linkElement.href = sanitizeUrl(anchorMatch[1]);
linkElement.target = sanitizeHtml(anchorMatch[2]);
linkElement.textContent = sanitizeHtml(anchorMatch[3]);
legalTextElement.appendChild(linkElement);
} else {
legalTextElement.appendChild(document.createTextNode(part));
}
});
}
function generateDropdownOptions(smsProgramData) {
if (!smsProgramData || smsProgramData.length === 0) {
return '';
}
return smsProgramData.map(program => {
const flag = getCountryUnicodeFlag(program.countryCode);
const countryName = getCountryName(program.countryCode);
const callingCode = program.countryCallingCode || '';
// Sanitize all values to prevent XSS
const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
const sanitizedCountryName = sanitizeHtml(countryName || '');
const sanitizedCallingCode = sanitizeHtml(callingCode || '');
return '' + sanitizedCountryName + ' ' + sanitizedCallingCode + '';
}).join('');
}
function getCountryName(countryCode) {
if (window.MC?.smsPhoneData?.smsProgramDataCountryNames && Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
for (let i = 0; i < window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
}
}
}
return countryCode;
}
function getDefaultPlaceholder(countryCode) {
if (!countryCode || typeof countryCode!== 'string') {
return '+1 000 000 0000'; // Default US placeholder
}
var mockPlaceholders = [
{
countryCode: 'US',
placeholder: '+1 000 000 0000',
helpText: 'Include the US country code +1 before the phone number',
},
{
countryCode: 'GB',
placeholder: '+44 0000 000000',
helpText: 'Include the GB country code +44 before the phone number',
},
{
countryCode: 'CA',
placeholder: '+1 000 000 0000',
helpText: 'Include the CA country code +1 before the phone number',
},
{
countryCode: 'AU',
placeholder: '+61 000 000 000',
helpText: 'Include the AU country code +61 before the phone number',
},
{
countryCode: 'DE',
placeholder: '+49 000 0000000',
helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
},
{
countryCode: 'FR',
placeholder: '+33 0 00 00 00 00',
helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
},
{
countryCode: 'ES',
placeholder: '+34 000 000 000',
helpText: 'Incluya el código de paÃs ES +34 antes del número de teléfono',
},
{
countryCode: 'NL',
placeholder: '+31 0 00000000',
helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
},
{
countryCode: 'BE',
placeholder: '+32 000 00 00 00',
helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
},
{
countryCode: 'CH',
placeholder: '+41 00 000 00 00',
helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
},
{
countryCode: 'AT',
placeholder: '+43 000 000 0000',
helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
},
{
countryCode: 'IE',
placeholder: '+353 00 000 0000',
helpText: 'Include the IE country code +353 before the phone number',
},
{
countryCode: 'IT',
placeholder: '+39 000 000 0000',
helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
},
];
const selectedPlaceholder = mockPlaceholders.find(function(item) {
return item && item.countryCode === countryCode;
});
return selectedPlaceholder? selectedPlaceholder.placeholder: mockPlaceholders[0].placeholder;
}
function updatePlaceholder(countryCode, fieldName) {
if (!countryCode ||!fieldName) {
return;
}
const phoneInput = document.querySelector('#mce-' + fieldName);
if (!phoneInput) {
return;
}
const placeholder = getDefaultPlaceholder(countryCode);
if (placeholder) {
phoneInput.placeholder = placeholder;
}
}
function updateCountryCodeInstruction(countryCode, fieldName) {
updatePlaceholder(countryCode, fieldName);
}
function getDefaultHelpText(countryCode) {
var mockPlaceholders = [
{
countryCode: 'US',
placeholder: '+1 000 000 0000',
helpText: 'Include the US country code +1 before the phone number',
},
{
countryCode: 'GB',
placeholder: '+44 0000 000000',
helpText: 'Include the GB country code +44 before the phone number',
},
{
countryCode: 'CA',
placeholder: '+1 000 000 0000',
helpText: 'Include the CA country code +1 before the phone number',
},
{
countryCode: 'AU',
placeholder: '+61 000 000 000',
helpText: 'Include the AU country code +61 before the phone number',
},
{
countryCode: 'DE',
placeholder: '+49 000 0000000',
helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
},
{
countryCode: 'FR',
placeholder: '+33 0 00 00 00 00',
helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
},
{
countryCode: 'ES',
placeholder: '+34 000 000 000',
helpText: 'Incluya el código de paÃs ES +34 antes del número de teléfono',
},
{
countryCode: 'NL',
placeholder: '+31 0 00000000',
helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
},
{
countryCode: 'BE',
placeholder: '+32 000 00 00 00',
helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
},
{
countryCode: 'CH',
placeholder: '+41 00 000 00 00',
helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
},
{
countryCode: 'AT',
placeholder: '+43 000 000 0000',
helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
},
{
countryCode: 'IE',
placeholder: '+353 00 000 0000',
helpText: 'Include the IE country code +353 before the phone number',
},
{
countryCode: 'IT',
placeholder: '+39 000 000 0000',
helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
},
];
if (!countryCode || typeof countryCode!== 'string') {
return mockPlaceholders[0].helpText;
}
const selectedHelpText = mockPlaceholders.find(function(item) {
return item && item.countryCode === countryCode;
});
return selectedHelpText? selectedHelpText.helpText: mockPlaceholders[0].helpText;
}
function setDefaultHelpText(countryCode) {
const helpTextSpan = document.querySelector('#help-text');
if (!helpTextSpan) {
return;
}
}
function updateHelpTextCountryCode(countryCode, fieldName) {
if (!countryCode ||!fieldName) {
return;
}
setDefaultHelpText(countryCode);
}
function initializeSmsPhoneDropdown(fieldName) {
if (!fieldName || typeof fieldName!== 'string') {
return;
}
const dropdown = document.querySelector('#country-select-' + fieldName);
const displayFlag = document.querySelector('#flag-display-' + fieldName);
if (!dropdown ||!displayFlag) {
return;
}
const smsPhoneData = window.MC?.smsPhoneData;
if (smsPhoneData && smsPhoneData.programs && Array.isArray(smsPhoneData.programs)) {
dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
}
const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
if (defaultProgram && defaultProgram.countryCode) {
dropdown.value = defaultProgram.countryCode;
const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
if (flagSpan) {
flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
}
updateSmsLegalText(defaultProgram.countryCode, fieldName);
updatePlaceholder(defaultProgram.countryCode, fieldName);
updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
}
var smsNotRequiredRemoveCountryCodeEnabled = true;
var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","merge_id":0,"type":"email","required":true,"audience_field_name":"Email Address","field_type":"merge","enabled":true,"order":0},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":true,"audience_field_name":"First Name","enabled":true,"order":1,"field_type":"merge","merge_id":1},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":true,"audience_field_name":"Last Name","enabled":true,"order":2,"field_type":"merge","merge_id":2},"ADDRESS":{"name":"ADDRESS","label":"Address","helper_text":"","type":"address","required":false,"audience_field_name":"Address","enabled":false,"order":null,"field_type":"merge","merge_id":3,"countries":{"2":"Albania","3":"Algeria","4":"Andorra","5":"Angola","6":"Argentina","7":"Armenia","8":"Australia","9":"Austria","10":"Azerbaijan","11":"Bahamas","12":"Bahrain","13":"Bangladesh","14":"Barbados","15":"Belarus","16":"Belgium","17":"Belize","18":"Benin","19":"Bermuda","20":"Bhutan","21":"Bolivia","22":"Bosnia and Herzegovina","23":"Botswana","24":"Brazil","25":"Bulgaria","26":"Burkina Faso","27":"Burundi","28":"Cambodia","29":"Cameroon","30":"Canada","31":"Cape Verde","32":"Cayman Islands","33":"Central African Republic","34":"Chad","35":"Chile","36":"China","37":"Colombia","38":"Congo","40":"Croatia","41":"Cyprus","42":"Czech Republic","43":"Denmark","44":"Djibouti","45":"Ecuador","46":"Egypt","47":"El Salvador","48":"Equatorial Guinea","49":"Eritrea","50":"Estonia","51":"Ethiopia","52":"Fiji","53":"Finland","54":"France","56":"Gabon","57":"Gambia","58":"Georgia","59":"Germany","60":"Ghana","61":"Greece","62":"Guam","63":"Guinea","64":"Guinea-Bissau","65":"Guyana","66":"Honduras","67":"Hong Kong","68":"Hungary","69":"Iceland","70":"India","71":"Indonesia","74":"Ireland","75":"Israel","76":"Italy","78":"Japan","79":"Jordan","80":"Kazakhstan","81":"Kenya","82":"Kuwait","83":"Kyrgyzstan","84":"Lao People's Democratic Republic","85":"Latvia","86":"Lebanon","87":"Lesotho","88":"Liberia","90":"Liechtenstein","91":"Lithuania","92":"Luxembourg","93":"Macedonia","94":"Madagascar","95":"Malawi","96":"Malaysia","97":"Maldives","98":"Mali","99":"Malta","100":"Mauritania","101":"Mexico","102":"Moldova","103":"Monaco","104":"Mongolia","105":"Morocco","106":"Mozambique","107":"Namibia","108":"Nepal","109":"Netherlands","110":"Netherlands Antilles","111":"New Zealand","112":"Nicaragua","113":"Niger","114":"Nigeria","116":"Norway","117":"Oman","118":"Pakistan","119":"Panama","120":"Paraguay","121":"Peru","122":"Philippines","123":"Poland","124":"Portugal","126":"Qatar","127":"Reunion","128":"Romania","129":"Russia","130":"Rwanda","132":"Samoa (Independent)","133":"Saudi Arabia","134":"Senegal","135":"Seychelles","136":"Sierra Leone","137":"Singapore","138":"Slovakia","139":"Slovenia","140":"Somalia","141":"South Africa","142":"South Korea","143":"Spain","144":"Sri Lanka","146":"Suriname","147":"Swaziland","148":"Sweden","149":"Switzerland","152":"Taiwan","153":"Tanzania","154":"Thailand","155":"Togo","156":"Tunisia","157":"Turkiye","158":"Turkmenistan","159":"Uganda","161":"Ukraine","162":"United Arab Emirates","163":"Uruguay","164":"USA","165":"Uzbekistan","166":"Vatican City State (Holy See)","167":"Venezuela","168":"Vietnam","169":"Virgin Islands (British)","170":"Yemen","173":"Zambia","174":"Zimbabwe","175":"Antigua And Barbuda","176":"Anguilla","178":"American Samoa","179":"Aruba","180":"Brunei Darussalam","181":"Bouvet Island","183":"Cook Islands","185":"Christmas Island","187":"Dominican Republic","188":"Western Sahara","189":"Falkland Islands","191":"Faroe Islands","192":"Grenada","193":"French Guiana","194":"Gibraltar","195":"Greenland","196":"Guadeloupe","198":"Guatemala","200":"Haiti","202":"Jamaica","203":"Kiribati","204":"Comoros","205":"Saint Kitts and Nevis","206":"Saint Lucia","207":"Marshall Islands","208":"Macau","210":"Martinique","212":"Mauritius","213":"New Caledonia","214":"Norfolk Island","215":"Nauru","217":"Niue","219":"Papua New Guinea","221":"Pitcairn","222":"Palau","223":"Solomon Islands","225":"Svalbard and Jan Mayen Islands","227":"San Marino","232":"Tonga","233":"Timor-Leste","234":"Trinidad and Tobago","235":"Tuvalu","237":"Saint Vincent and the Grenadines","238":"Virgin Islands (U.S.)","239":"Vanuatu","241":"Mayotte","242":"Myanmar","255":"Sao Tome and Principe","257":"South Georgia and the South Sandwich Islands","260":"Tajikistan","262":"United Kingdom","268":"Costa Rica","270":"Guernsey","272":"North Korea","274":"Afghanistan","275":"Cote D'Ivoire","276":"Cuba","277":"French Polynesia","278":"Iran","279":"Iraq","281":"Libya","282":"Palestine","285":"Syria","286":"Aaland Islands","287":"Turks & Caicos Islands","288":"Jersey (Channel Islands)","289":"Dominica","290":"Montenegro","293":"Sudan","294":"Montserrat","298":"Curacao","302":"Sint Maarten","311":"South Sudan","315":"Republic of Kosovo","318":"Congo, Democratic Republic of the","323":"Isle of Man","324":"Saint Martin","325":"Bonaire, Saint Eustatius and Saba","326":"Serbia"},"defaultcountry":164},"PHONE":{"name":"PHONE","label":"Phone Number","helper_text":"","type":"phone","required":false,"audience_field_name":"Phone Number","phoneformat":"","enabled":false,"order":null,"field_type":"merge","merge_id":4},"BIRTHDAY":{"name":"BIRTHDAY","label":"Birthday","helper_text":"","type":"birthday","required":false,"audience_field_name":"Birthday","dateformat":"MM/DD","enabled":false,"order":null,"field_type":"merge","merge_id":5},"COMPANY":{"name":"COMPANY","label":"Company","helper_text":"","type":"text","required":false,"audience_field_name":"Company","enabled":false,"order":null,"field_type":"merge","merge_id":6},"MMERGE7":{"name":"MMERGE7","label":"City","helper_text":"","type":"text","required":false,"audience_field_name":"City","enabled":false,"order":null,"field_type":"merge","merge_id":7},"MMERGE8":{"name":"MMERGE8","label":"Account Type","helper_text":"","type":"number","required":false,"audience_field_name":"Account Type","enabled":false,"order":null,"field_type":"merge","merge_id":8},"interests_7":{"name":"interests_7","label":"Priority areas","helper_text":"","type":"checkbox","required":false,"choices":[{"value":"1","label":"Global health"},{"value":"2","label":"Climate resilience"},{"value":"4","label":"Cities & Societies"},{"value":"8","label":"Technology Frontiers"}],"audience_field_name":"Priority areas","enabled":false,"order":null,"field_type":"group","group_id":7}}).find(function(f) { return f.name === fieldName && f.type === 'smsphone'; });
var isRequired = smsField? smsField.required: false;
var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled? isRequired: true;
var phoneInput = document.querySelector('#mce-' + fieldName);
if (phoneInput && defaultProgram.countryCallingCode && shouldAppendCountryCode) {
phoneInput.value = defaultProgram.countryCallingCode;
}
displayFlag?.addEventListener('click', function(e) {
dropdown.focus();
});
dropdown?.addEventListener('change', function() {
const selectedCountry = this.value;
if (!selectedCountry || typeof selectedCountry!== 'string') {
return;
}
const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
if (flagSpan) {
flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
}
const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
return program && program.countryCode === selectedCountry;
});
var smsNotRequiredRemoveCountryCodeEnabled = true;
var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","merge_id":0,"type":"email","required":true,"audience_field_name":"Email Address","field_type":"merge","enabled":true,"order":0},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":true,"audience_field_name":"First Name","enabled":true,"order":1,"field_type":"merge","merge_id":1},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":true,"audience_field_name":"Last Name","enabled":true,"order":2,"field_type":"merge","merge_id":2},"ADDRESS":{"name":"ADDRESS","label":"Address","helper_text":"","type":"address","required":false,"audience_field_name":"Address","enabled":false,"order":null,"field_type":"merge","merge_id":3,"countries":{"2":"Albania","3":"Algeria","4":"Andorra","5":"Angola","6":"Argentina","7":"Armenia","8":"Australia","9":"Austria","10":"Azerbaijan","11":"Bahamas","12":"Bahrain","13":"Bangladesh","14":"Barbados","15":"Belarus","16":"Belgium","17":"Belize","18":"Benin","19":"Bermuda","20":"Bhutan","21":"Bolivia","22":"Bosnia and Herzegovina","23":"Botswana","24":"Brazil","25":"Bulgaria","26":"Burkina Faso","27":"Burundi","28":"Cambodia","29":"Cameroon","30":"Canada","31":"Cape Verde","32":"Cayman Islands","33":"Central African Republic","34":"Chad","35":"Chile","36":"China","37":"Colombia","38":"Congo","40":"Croatia","41":"Cyprus","42":"Czech Republic","43":"Denmark","44":"Djibouti","45":"Ecuador","46":"Egypt","47":"El Salvador","48":"Equatorial Guinea","49":"Eritrea","50":"Estonia","51":"Ethiopia","52":"Fiji","53":"Finland","54":"France","56":"Gabon","57":"Gambia","58":"Georgia","59":"Germany","60":"Ghana","61":"Greece","62":"Guam","63":"Guinea","64":"Guinea-Bissau","65":"Guyana","66":"Honduras","67":"Hong Kong","68":"Hungary","69":"Iceland","70":"India","71":"Indonesia","74":"Ireland","75":"Israel","76":"Italy","78":"Japan","79":"Jordan","80":"Kazakhstan","81":"Kenya","82":"Kuwait","83":"Kyrgyzstan","84":"Lao People's Democratic Republic","85":"Latvia","86":"Lebanon","87":"Lesotho","88":"Liberia","90":"Liechtenstein","91":"Lithuania","92":"Luxembourg","93":"Macedonia","94":"Madagascar","95":"Malawi","96":"Malaysia","97":"Maldives","98":"Mali","99":"Malta","100":"Mauritania","101":"Mexico","102":"Moldova","103":"Monaco","104":"Mongolia","105":"Morocco","106":"Mozambique","107":"Namibia","108":"Nepal","109":"Netherlands","110":"Netherlands Antilles","111":"New Zealand","112":"Nicaragua","113":"Niger","114":"Nigeria","116":"Norway","117":"Oman","118":"Pakistan","119":"Panama","120":"Paraguay","121":"Peru","122":"Philippines","123":"Poland","124":"Portugal","126":"Qatar","127":"Reunion","128":"Romania","129":"Russia","130":"Rwanda","132":"Samoa (Independent)","133":"Saudi Arabia","134":"Senegal","135":"Seychelles","136":"Sierra Leone","137":"Singapore","138":"Slovakia","139":"Slovenia","140":"Somalia","141":"South Africa","142":"South Korea","143":"Spain","144":"Sri Lanka","146":"Suriname","147":"Swaziland","148":"Sweden","149":"Switzerland","152":"Taiwan","153":"Tanzania","154":"Thailand","155":"Togo","156":"Tunisia","157":"Turkiye","158":"Turkmenistan","159":"Uganda","161":"Ukraine","162":"United Arab Emirates","163":"Uruguay","164":"USA","165":"Uzbekistan","166":"Vatican City State (Holy See)","167":"Venezuela","168":"Vietnam","169":"Virgin Islands (British)","170":"Yemen","173":"Zambia","174":"Zimbabwe","175":"Antigua And Barbuda","176":"Anguilla","178":"American Samoa","179":"Aruba","180":"Brunei Darussalam","181":"Bouvet Island","183":"Cook Islands","185":"Christmas Island","187":"Dominican Republic","188":"Western Sahara","189":"Falkland Islands","191":"Faroe Islands","192":"Grenada","193":"French Guiana","194":"Gibraltar","195":"Greenland","196":"Guadeloupe","198":"Guatemala","200":"Haiti","202":"Jamaica","203":"Kiribati","204":"Comoros","205":"Saint Kitts and Nevis","206":"Saint Lucia","207":"Marshall Islands","208":"Macau","210":"Martinique","212":"Mauritius","213":"New Caledonia","214":"Norfolk Island","215":"Nauru","217":"Niue","219":"Papua New Guinea","221":"Pitcairn","222":"Palau","223":"Solomon Islands","225":"Svalbard and Jan Mayen Islands","227":"San Marino","232":"Tonga","233":"Timor-Leste","234":"Trinidad and Tobago","235":"Tuvalu","237":"Saint Vincent and the Grenadines","238":"Virgin Islands (U.S.)","239":"Vanuatu","241":"Mayotte","242":"Myanmar","255":"Sao Tome and Principe","257":"South Georgia and the South Sandwich Islands","260":"Tajikistan","262":"United Kingdom","268":"Costa Rica","270":"Guernsey","272":"North Korea","274":"Afghanistan","275":"Cote D'Ivoire","276":"Cuba","277":"French Polynesia","278":"Iran","279":"Iraq","281":"Libya","282":"Palestine","285":"Syria","286":"Aaland Islands","287":"Turks & Caicos Islands","288":"Jersey (Channel Islands)","289":"Dominica","290":"Montenegro","293":"Sudan","294":"Montserrat","298":"Curacao","302":"Sint Maarten","311":"South Sudan","315":"Republic of Kosovo","318":"Congo, Democratic Republic of the","323":"Isle of Man","324":"Saint Martin","325":"Bonaire, Saint Eustatius and Saba","326":"Serbia"},"defaultcountry":164},"PHONE":{"name":"PHONE","label":"Phone Number","helper_text":"","type":"phone","required":false,"audience_field_name":"Phone Number","phoneformat":"","enabled":false,"order":null,"field_type":"merge","merge_id":4},"BIRTHDAY":{"name":"BIRTHDAY","label":"Birthday","helper_text":"","type":"birthday","required":false,"audience_field_name":"Birthday","dateformat":"MM/DD","enabled":false,"order":null,"field_type":"merge","merge_id":5},"COMPANY":{"name":"COMPANY","label":"Company","helper_text":"","type":"text","required":false,"audience_field_name":"Company","enabled":false,"order":null,"field_type":"merge","merge_id":6},"MMERGE7":{"name":"MMERGE7","label":"City","helper_text":"","type":"text","required":false,"audience_field_name":"City","enabled":false,"order":null,"field_type":"merge","merge_id":7},"MMERGE8":{"name":"MMERGE8","label":"Account Type","helper_text":"","type":"number","required":false,"audience_field_name":"Account Type","enabled":false,"order":null,"field_type":"merge","merge_id":8},"interests_7":{"name":"interests_7","label":"Priority areas","helper_text":"","type":"checkbox","required":false,"choices":[{"value":"1","label":"Global health"},{"value":"2","label":"Climate resilience"},{"value":"4","label":"Cities & Societies"},{"value":"8","label":"Technology Frontiers"}],"audience_field_name":"Priority areas","enabled":false,"order":null,"field_type":"group","group_id":7}}).find(function(f) { return f.name === fieldName && f.type === 'smsphone'; });
var isRequired = smsField? smsField.required: false;
var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled? isRequired: true;
var phoneInput = document.querySelector('#mce-' + fieldName);
if (phoneInput && selectedProgram.countryCallingCode && shouldAppendCountryCode) {
phoneInput.value = selectedProgram.countryCallingCode;
}
updateSmsLegalText(selectedCountry, fieldName);
updatePlaceholder(selectedCountry, fieldName);
updateCountryCodeInstruction(selectedCountry, fieldName);
});
}
document.addEventListener('DOMContentLoaded', function() {
const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
smsPhoneFields.forEach(function(dropdown) {
const fieldName = dropdown?.id.replace('country-select-', '');
initializeSmsPhoneDropdown(fieldName);
});
});



