<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SymSoft Solutions</title>
	<atom:link href="https://www.symsoftsolutions.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.symsoftsolutions.com</link>
	<description>High Performance Websites for Enterprises</description>
	<lastBuildDate>Fri, 05 Dec 2025 20:21:30 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://www.symsoftsolutions.com/wp-content/uploads/2020/07/cropped-logo-square-32x32.png</url>
	<title>SymSoft Solutions</title>
	<link>https://www.symsoftsolutions.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>3 Key Takeaways from Sitecore Symposium 2025: What Public Sector Organizations Need to Know</title>
		<link>https://www.symsoftsolutions.com/sitecore/key-takeaways-from-sitecore-symposium-2025/</link>
		
		<dc:creator><![CDATA[Daniel Calzada]]></dc:creator>
		<pubDate>Fri, 05 Dec 2025 20:19:59 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Sitecore]]></category>
		<guid isPermaLink="false">https://www.symsoftsolutions.com/?p=13670</guid>

					<description><![CDATA[SymSoft Solutions had the privilege of presenting at Sitecore Symposium 2025 in Orlando, where we shared our transformative work with CAL FIRE in front of marketing leaders, technologists, and digital innovators. Our session, "No playing with fire: How CAL FIRE transformed emergency communication with Sitecore" showcased how California's Department of Forestry and Fire Protection upgraded its digital presence to meet the demands of emergency response in an increasingly challenging wildfire season.]]></description>
										<content:encoded><![CDATA[<p>SymSoft Solutions had the privilege of presenting at Sitecore Symposium 2025 in Orlando, where we shared our transformative work with CAL FIRE in front of marketing leaders, technologists, and digital innovators. Our session, &#8220;<em>No playing with fire: How CAL FIRE transformed emergency communication with Sitecore</em>&#8221; showcased how California&#8217;s <a href="https://www.fire.ca.gov/" target="_blank" rel="noopener">Department of Forestry and Fire Protection</a> upgraded its digital presence to meet the demands of emergency response in an increasingly challenging wildfire season.</p>
<p>Beyond sharing our success story, the symposium unveiled groundbreaking innovations with significant implications for California&#8217;s public sector. Here are three key takeaways that every digital leader in government would benefit from understanding.</p>
<h2>1. The Launch of SitecoreAI: Agentic Intelligence for the Public Sector</h2>
<p>Sitecore unveiled <a href="https://www.sitecore.com/company/newsroom/press-releases/2025/10/sitecore-unveils-sitecoreai-ushering-in-the-ai-first-era-of-digital-experience" target="_blank" rel="noopener">SitecoreAI</a>, a next-generation digital experience platform that positions artificial intelligence at the center of digital marketing and content delivery. Built on the foundation of Sitecore XM Cloud, this composable SaaS platform introduces the <a href="https://www.sitecore.com/company/newsroom/press-releases/2025/10/sitecore-launches-sitecore-studio-revolutionizing-customization-extensibility-and-co-innovation" target="_blank" rel="noopener">Agentic Studio</a>, a collaborative workspace where marketers and AI work together through 20 AI-powered agents that automate workflows from campaign planning to content migration, production, and testing.</p>
<h3>Why the California Public Sector Should Care</h3>
<p>While the private sector focuses on &#8220;marketing,&#8221; government agencies confront parallel challenges in constituent communication, public information management, and service delivery. California is already leading the nation in the responsible deployment of AI for government services, as evidenced by <a href="https://www.gov.ca.gov/2025/04/29/governor-newsom-deploys-first-in-the-nation-genai-technologies-to-improve-efficiency-in-state-government/" target="_blank" rel="noopener">Governor Newsom&#8217;s GenAI initiatives</a>. SitecoreAI&#8217;s agentic intelligence addresses the actual operational needs of government agencies:</p>
<h3>Content Operations &amp; Public Information:</h3>
<ul>
<li><strong>Legislative and policy updates</strong>: When regulations change, AI agents can help identify all affected pages across your site, draft updates based on official documents, and flag content requiring human review, transforming a weeks-long manual process into days.</li>
<li><strong>Emergency content deployment</strong>: During wildfires, public health emergencies, or natural disasters, AI agents can rapidly deploy pre-approved content templates, update incident information across multiple pages, and ensure consistent messaging.</li>
<li><strong>Multilingual content at scale</strong>: California serves constituents in dozens of languages. AI agents can accelerate translation workflows while ensuring culturally appropriate terminology, though human review remains essential for accuracy and nuance.</li>
<li><strong>Content migration</strong>: Moving from legacy systems to modern platforms  typically requires months of manual work. AI agents can automate much of this heavy lifting.</li>
<li><strong>Routine updates</strong>: AI can handle repetitive tasks like updating contact information, office hours, or program deadlines across multiple pages.</li>
<li><strong>Improved search results</strong>: AI-powered search that understands intent (e.g., &#8220;apply for assistance&#8221; vs &#8220;eligibility requirements&#8221;)</li>
</ul>
<h2>2. Moving Beyond the Website: Content Discovery in the Age of AI Summaries</h2>
<p>CEO Eric Stine emphasized a fundamental shift: <em>&#8220;We&#8217;re living in the world beyond the website. Discovery is no longer driven by search; it&#8217;s powered by attention. Brands earn that attention in social media feeds and AI-generated summaries when they show up in the right moment with the right message.&#8221;</em></p>
<p>Californians are increasingly finding government information through AI-powered search summaries, voice assistants, and social media rather than directly navigating to agency websites. This shift has massive implications for how public sector organizations deliver critical information.</p>
<p>At SymSoft, we&#8217;re already helping California agencies prepare for this multi-channel reality by building a platform-agnostic, API-first content infrastructure that&#8217;s optimized for AI discoverability, while maintaining the accuracy and accountability that government requires.</p>
<h2>3. The &#8220;Fans First&#8221; Philosophy: Eliminating Friction in Government Services</h2>
<p>Keynote speaker Jesse Cole of the Savannah Bananas brought his &#8220;Fans First&#8221; philosophy to the symposium, emphasizing that every moment of friction, from sign-up to service, is an opportunity for your audience to walk away. Sitecore&#8217;s product vision centers on eliminating these friction points to build trust and loyalty.</p>
<p>Government services have historically been synonymous with frustration: confusing forms, broken links during emergencies, information buried in PDFs, and websites that don&#8217;t work on mobile devices. But it doesn&#8217;t have to be this way.</p>
<p>The &#8220;Fans First&#8221; philosophy translates directly to &#8220;Constituents First&#8221; for government:</p>
<ul>
<li>Every additional click to find wildfire evacuation information is a potential life-safety issue.</li>
<li>Every confusing form reduces participation in critical benefit programs.</li>
<li>Every broken link during an emergency erodes trust in government.</li>
<li>Every accessibility barrier excludes vulnerable Californians who need services most.</li>
</ul>
<p>Our recent work with Cal FIRE and other state agencies exemplifies this principle. We unify fragmented information across multiple sites, enhance search functionality, incorporate engaging visuals, and optimize an interactive map relied upon by millions of users during critical events to eliminate friction in delivering government services.</p>
<h2>The SymSoft&#8217;s take</h2>
<p>The innovations unveiled at Sitecore Symposium 2025 extend far beyond marketing automation and content management. They represent a fundamental shift in how governments can engage and serve their constituents in a GenAI-first world.</p>
<p>At SymSoft, we’ve spent nearly two decades helping California’s public sector stay ahead of emerging technologies and evolving citizen needs. Today, we’re partnering with agencies such as <a href="https://www.symsoftsolutions.com/news-press-release/symsoft-solutions-powers-californias-genai-revolution-with-axyom-assist-at-cdtfa/">CDTFA</a>, <a href="https://www.symsoftsolutions.com/case-studies/california-department-of-forestry-and-fire-protection-website/">CAL FIRE,</a> and <a href="https://www.symsoftsolutions.com/case-studies/ai-assistant-dwr-intranet/">DWR</a> to deliver essential information through AI-powered summaries and voice assistants, extending service delivery far beyond the traditional website homepage.</p>
<p>Whether your agency is navigating a legacy CMS, planning a major digital modernization, or seeking to understand how Sitecore’s latest innovations can advance your mission, our team is ready to help.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SymSoft Solutions Powers California&#8217;s GenAI Revolution with Axyom Assist at CDTFA</title>
		<link>https://www.symsoftsolutions.com/news-press-release/symsoft-solutions-powers-californias-genai-revolution-with-axyom-assist-at-cdtfa/</link>
		
		<dc:creator><![CDATA[Bhavik Patel]]></dc:creator>
		<pubDate>Wed, 14 May 2025 20:12:57 +0000</pubDate>
				<category><![CDATA[News / Press Release]]></category>
		<category><![CDATA[Artificial Intelligence]]></category>
		<guid isPermaLink="false">https://www.symsoftsolutions.com/?p=13414</guid>

					<description><![CDATA[SACRAMENTO, CA &#8211; May 14, 2025 Recently, Governor Newsom announced California’s first-in-nation deployment of Generative AI (GenAI) technologies to improve government efficiency. As part of this effort, SymSoft Solutions is proud to highlight our successful initial implementation of Axyom Assist – our AI-powered assistant for customer service representatives at the California Department of Tax and [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><strong>SACRAMENTO, CA &#8211; May 14, 2025</strong></p>
<p>Recently, <a href="https://www.gov.ca.gov/2025/04/29/governor-newsom-deploys-first-in-the-nation-genai-technologies-to-improve-efficiency-in-state-government/" target="_blank" rel="noopener">Governor Newsom</a> announced California’s first-in-nation deployment of Generative AI (GenAI) technologies to improve government efficiency. As part of this effort, SymSoft Solutions is proud to highlight our successful initial implementation of Axyom Assist – our AI-powered assistant for customer service representatives at the California Department of Tax and Fee Administration (CDTFA).</p>
<p>Aligned with the state’s ambitious GenAI initiative, SymSoft is helping California agencies harness generative AI to improve citizen services, support state staff, and enhance operational efficiency.</p>
<p><strong>Transforming Taxpayer Services at CDTFA</strong></p>
<p>In collaboration with CDTFA, SymSoft Solutions has successfully implemented its Axyom Agent Assist solution to empower contact center staff with AI-augmented capabilities. This implementation supports CDTFA&#8217;s mission of administering more than 40 tax and fee programs and handling over 800,000 taxpayer inquiries annually.</p>
<p>Axyom Assist works alongside the Customer Service Agents like a knowledgeable teammate. It listens to calls and transcribes conversations in real-time, automatically detecting taxpayer needs while providing relevant information at agents&#8217; fingertips – right when they need it. Beyond this automatic assistance, agents can also proactively ask their own questions during calls to receive instant answers drawn from trusted sources. After calls, the system creates quick conversation summaries so agents can focus on people, not paperwork.</p>
<p>Powered by AWS Bedrock and Anthropic’s Claude large language models, Axyom Assist demonstrates how generative AI is enhancing public sector services—improving accessibility, empowering staff, and streamlining operations.</p>
<p>“As California continues to lead the nation in the responsible implementation of generative AI technologies, SymSoft Solutions is committed to delivering AI solutions that combine powerful capabilities with appropriate safeguards,” said Savita Farooqui, Emerging Technologies Lead and Founder of SymSoft Solutions. “With Axyom Assist, we’re helping government agencies transform operations, empower their teams, and serve citizens with greater efficiency and care.”</p>
<p>“This implementation reflects SymSoft’s broader vision for AI-powered transformation in the public sector,” added Bhavik Patel, CEO of SymSoft Solutions. “We’re proud to work with CDTFA to modernize service delivery while maintaining the highest standards of security, accuracy, and accountability.”</p>
<p><strong>A Broader Vision: Axyom Assist</strong>, <strong>A Comprehensive GenAI Solution Suite</strong></p>
<p>SymSoft Solutions has expanded its generative AI vision with Axyom Assist — a powerful, flexible product suite designed to help government agencies and regulated industries transform the way they serve the public. More than just an agent support tool, Axyom Assist leverages the power of generative AI and emerging Agentic AI capabilities, to achieve three critical goals: improving the citizen experience, empowering government staff, and streamlining operations.</p>
<p>With Axyom Assist, agencies can create conversational user interfaces that understand context, remember past interactions, and provide accurate, personalized information in real time. By integrating Agentic AI, these systems go a step further — autonomously retrieving and synthesizing information, generating compliant responses, and proactively guiding staff in various scenarios, and through complex regulations. Behind the scenes, Axyom Assist uses generative and Agentic AI to analyze structured and unstructured data, surface insights, automate routine tasks, and help agencies anticipate service needs before they arise.</p>
<p><strong>About SymSoft Solutions and Axyom</strong></p>
<p>SymSoft Solutions is a Sacramento-based firm specializing in digital transformation and user-centric solutions for government agencies. With a focus on innovation, security, and compliance, SymSoft delivers cutting-edge technologies that enhance public sector operations and citizen engagement.</p>
<p>In 2023, SymSoft launched Axyom, a specialized division focused on emerging technologies such as Artificial Intelligence and Distributed Digital Trust.</p>
<p>Axyom Assist, our flagship GenAI product suite, is designed to transform customer service with innovative AI technologies that improve citizen services, support staff, and enhance operational efficiencies across government agencies and regulated industries.</p>
<p>For more information about SymSoft Solutions and our Axyom Assist product suite, visit <a href="https://www.symsoftsolutions.com/">www.symsoftsolutions.com</a> and <a href="https://axyomassist.com/" target="_blank" rel="noopener">axyomassist.com</a>.</p>
<p><strong>Contact Information:</strong></p>
<p><strong>Media Contact:</strong> Savita Farooqui<br />
<strong>Email:</strong> <a href="mailto:info@symsoftsolutions.com">info@symsoftsolutions.com</a><br />
<strong>Phone:</strong> (916) 567-1740</p>
<p><em>SymSoft Solutions is a California Department of General Services (DGS) certified CMAS, TDDC MSA Tier 3, and Small Business (SB) vendor.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>An Update on Real Use Cases for Generative AI in The State of California</title>
		<link>https://www.symsoftsolutions.com/artificial-intelligence/an-update-on-real-use-cases-for-generative-ai-in-the-state-of-california/</link>
		
		<dc:creator><![CDATA[Daniel Calzada]]></dc:creator>
		<pubDate>Mon, 14 Apr 2025 19:36:20 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<guid isPermaLink="false">https://www.symsoftsolutions.com/?p=13329</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section et_pb_section_0 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_0">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_0  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_0  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>The past few months have been an exciting time for us at SymSoft as we explore various use cases for Generative Artificial Intelligence in California. During this period, we&#8217;ve observed that many decision-makers often compare Generative AI to intelligent assistants like Siri or Alexa, or they think of Artificial Intelligence in non-generative terms.</p>
<p>However, the capabilities of Generative AI go far beyond simply answering basic questions or assisting with routine tasks. To illustrate this, here are three examples of real use cases currently being implemented for the State of California.</p>
<h2>Gen-AI-powered assistants can assist individuals in completing applications or forms by guiding them through natural conversational language.</h2>
<p>Instead of simply directing users to a fillable web or PDF form, <a href="https://axyomassist.com/solutions/self-service-automation/" target="_blank" rel="noopener">our intelligent forms automation solution</a> engages users in a natural conversation by asking questions and understanding their responses in a call or chat. It&#8217;s like having an expert sitting beside you to help complete, review, and submit the application, expanding your service capabilities.</p>
<h2>Innovative solutions that can understand customer support calls and chats in real-time, enabling support agents to provide faster and more accurate responses.</h2>
<p>Envision a scenario where each customer support agent is equipped with an <a href="https://axyomassist.com/solutions/agent-assist/" target="_blank" rel="noopener">AI-powered assistant</a> that can listen to or read every customer inquiry<strong> in real time</strong>. This assistant generates real-time responses based on specific sources, such as regulatory codes, standards, employee manuals, and knowledge bases. By providing additional sources of information, the AI assistant enables agents to deliver more accurate responses in a fraction of the time. This solution enhances both the customer experience and the productivity of the agents.</p>
<h2>Search engines can now understand user queries in natural language and respond similarly, citing sources or providing additional resources.</h2>
<p>You may have noticed that Google now provides direct answers to search queries instead of simply listing relevant websites that may contain the information you&#8217;re looking for. This capability is now available on your website through an AI-powered search engine. <a href="https://axyomassist.com/solutions/ai-discovery/" target="_blank" rel="noopener">Our Generative AI search</a> can understand user queries in natural language and generate specific, accurate responses based on curated content sources. Additionally, it cites those sources and offers access to further resources.</p>
<p>For example, if you are navigating a recruitment website for a California state agency and you ask how to apply for the open CIO position, instead of receiving a list of pages on the website, you would get a detailed response that outlines the necessary steps to take.</p>
<p>We are excited to be at <a href="https://www.symsoftsolutions.com/cio-academy-2025/">CIO Academy 2025</a> to showcase some of the exciting possibilities that are becoming part of real solutions today. Please stop by our booth and let us demonstrate the real possibilities!</p></div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>A look behind Large Language Models (LLM) benchmarks</title>
		<link>https://www.symsoftsolutions.com/artificial-intelligence/a-look-behind-large-language-models-llm-benchmarks/</link>
		
		<dc:creator><![CDATA[Pushkal Shetty]]></dc:creator>
		<pubDate>Fri, 21 Mar 2025 17:32:41 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<guid isPermaLink="false">https://www.symsoftsolutions.com/?p=13315</guid>

					<description><![CDATA[A problem which we are commonly faced with at Axyom regards which LLM to use for various downstream tasks. While there are a range of evaluations, it’s not always clear which ones to look at and which will be relevant for your task. In this blog post, I will cover a range of methods by [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>A problem which we are commonly faced with at Axyom regards which LLM to use for various downstream tasks. While there are a range of evaluations, it’s not always clear which ones to look at and which will be relevant for your task.</p>
<p>In this blog post, I will cover a range of methods by which LLMs and downstream applications can be evaluated. The goal is not to cover specific benchmarks or metrics but to discuss common underlying methods undergirding the benchmarks. Our goal is not so much to draw conclusions as to provide the information needed to make an informed decision.</p>
<h2>Human Evaluation</h2>
<p>Human evaluation is the method of evaluation where language model output is passed to human evaluators to rate. Essentially, they take a small survey and decide how much they like the output. Sometimes this is based on common sense, such as when rating fluency or determining if text is offensive. Other times a reference answer is passed to the evaluators as well, especially if the evaluator may not know the correct answer.</p>
<p>Human evaluation is often done through crowdsourcing microwork platforms like Amazon’s Mechanical Turk. No special input is required for the machine. When we are measuring we often use Likert-like scales, ask binary questions or ask humans to identify parts of a response.</p>
<p><strong>Pros:</strong></p>
<ul>
<li><strong>Highest accuracy:</strong> Humans are adept at understanding context and nuances, ensuring alignment with desired objectives.</li>
<li><strong>Diverse metrics:</strong> Human evaluation allows for a wide range of qualitative and quantitative metrics.</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li><strong>Subjectivity:</strong> Different evaluators may have varying preferences and opinions, which can affect consistency, particularly in assessing potentially offensive content.</li>
<li><strong>Cost:</strong> Paying human evaluators is significantly more expensive than using automated methods.</li>
<li><strong>Speed:</strong> Manual reviews are slower compared to machine-based evaluations.</li>
</ul>
<h2>Programmatic Evaluation/Unit Testing (HumanEval Benchmark)</h2>
<p>For evaluating code, programmatic methods like unit testing check whether the generated program correctly performs specified tasks. The popular HumanEval benchmark runs LLM-generated code within a sandbox with a specified set of unit tests and/or expected correct answers. If the LLM-generated code is correct, we can count this as a win for the LLM. If not, that indicates that more work needs to be done. Usually, for LLM-generated code, code is generated multiple times and the highest scoring code is ultimately chosen.</p>
<p>More broadly, similar approaches can be applied to test AI’s ability to interface with tools or systems. We can create small automated programs that the LLM can interface with and check whether it is able to complete specific tasks.</p>
<p><strong>Pros:</strong></p>
<ul>
<li><strong>Naturalistic Setting:</strong> Provides a realistic evaluation environment where the AI must perform tasks similar to real-world applications.</li>
<li><strong>Automation:</strong> Allows for fully automated testing, reducing the need for human intervention.</li>
<li><strong>Task-Specific Efficiency:</strong> Works exceptionally well for evaluating specific tasks where outcomes are clear-cut and measurable.</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li><strong>Task Dependency:</strong> This method is highly dependent on the type of task and works best for well-defined, specific tasks such as coding.</li>
<li><strong>Specialized Requirements:</strong> Non-coding evaluations may require specialized programs or tools, adding complexity to the evaluation setup.</li>
<li><strong>Scope Limitations:</strong> May not be suitable for more general or open-ended tasks where outputs are not easily validated through unit tests.</li>
</ul>
<h2>ELO System (Chatbot Arena)</h2>
<p>Regardless of the testing program, some common flaws remain. Any fixed dataset we choose can be gamed, perhaps not deliberately but implicitly. To account for this, a separate evaluation dataset is ideally held secret and not used until we are ready to ship the product. This is also a problem when it comes to public leaderboards. In addition to explicit training on the test set, public leaderboards allow LLM authors to pick models that seem to perform well on the test set setting up an unfortunate regression to the mean in practice.</p>
<p>Due to the overall weaknesses of each of these evaluation methods, ChatbotArena was created to formalize side-by-side comparison of various chat-based language models. Users of this site pose a question to two anonymized LLMs and then vote on which LLM answered better. This allows for the creation of an ELO score from head-to-head rankings which can then be used to evaluate chatbots in a variety of contexts.</p>
<p><strong>Pros:</strong></p>
<ul>
<li><strong>Impossible to Game:</strong> People creating LLMs have no idea what users of ChatbotArena will ask and will not be able to game the system.</li>
<li><strong>Captures subtleties:</strong> Subtleties of what make a chatbot “good” may not be accurately captured by any given test but can still be felt. A number of chatbots do well on benchmarks but nevertheless lack creativity or basic appeal in responses.</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li><strong>Lack of Task Specificity:</strong> Chatbot Arena users are not evaluating on any specific task. While this can be mitigated with an inhouse system, the default system allows users to pose just about any question which may make it hard to distinguish between LLMs that are each good at one specific task.</li>
<li><strong>Volunteer Labor / Cost: </strong>To evaluate an LLM system, you can rely on the volunteers on ChatbotArena or try to set up your own. In the former case, you will be selecting for a very specialized group of people and in the latter case you will likely need to spend a fair bit of money to overcome network effects.</li>
<li><strong>Subjectivity:</strong> Ultimately, ChatbotArena scores are subjective. While we can hope for a wisdom of crowds, it is important to note that ELO systems exacerbate the subjectivity found in Likert-type scales by diluting the number of participants and allowing for free reign by users. How much this matters is ultimately unknown.</li>
</ul>
<h2>Multiple Choice Questions (MMLU, various)</h2>
<p>Another way that LLM based models can be evaluated is by giving them multiple choice tests. The multiple-choice nature of tests makes them easy to grade. Examples of this type of test can be found in a number of BigBench benchmarks and the popular MMLU.</p>
<p><strong><img decoding="async" class="alignnone wp-image-13322 size-full" src="https://www.symsoftsolutions.com/wp-content/uploads/2025/03/MMLU.png" alt="" width="397" height="486" srcset="https://www.symsoftsolutions.com/wp-content/uploads/2025/03/MMLU.png 397w, https://www.symsoftsolutions.com/wp-content/uploads/2025/03/MMLU-184x225.png 184w" sizes="(max-width: 397px) 100vw, 397px" /></strong></p>
<p>These sorts of questions are easy to grade and allow for automated testing whenever new model builds are created. The realm of automated testing doesn’t just allow for multiple choice questions – other questions with similar definite answers also work well in this regard. The answer can just be evaluated by simple comparison of sampled answers but in the case of multiple-choice questions, the generated next-token vector gives an effective probability of each of the multiple-choice answers. The cross entropy of this probability vector can be compared to the one-shot encoded multiple-choice answer.</p>
<p><strong>Pros:</strong></p>
<ul>
<li><strong>Accuracy and speed:</strong> Combines the precision of human evaluation with the speed of machine processing.</li>
<li><strong>Automation:</strong> Can be quickly executed with each new model release.</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li><strong>Limited scope:</strong> Questions must have definite answers, which may not fully test a model’s general capabilities.</li>
<li><strong>Non-naturalistic problems:</strong> Many questions may not reflect real-world usage scenarios.</li>
<li><strong>Memorization issues:</strong> Models might recognize and reproduce answers from their training data.</li>
</ul>
<h2>NLP similarity metrics</h2>
<p>In terms of questions with definite answers that are more complex than multiple choice, n-gram similarity metrics such as BLEU can be employed to tell whether a generated answer has the same words or pairs of adjacent words or triples of adjacent words as a sample answer. While this is sensitive to phrasing, use of n-gram metrics can distinguish between wrong word orders while still giving partial credit. These sorts of similarity metrics – ROUGE and BLEU – are present in a number of BigBench metrics and are often used to evaluate machine translations.</p>
<p><strong>Pros:</strong></p>
<ul>
<li><strong>Speed:</strong> Allows rapid machine-based testing.</li>
<li><strong>Natural language compatibility:</strong> Suitable for evaluating natural language question/answer pairs.</li>
<li><strong>Interpretable and deterministic:</strong> Produces clear, repeatable results.</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li><strong>Sensitivity to phrasing:</strong> Lacks semantic understanding and may penalize correct answers due to synonym usage.</li>
<li><strong>Potential for rejecting valid answers:</strong> May overlook correct responses that are phrased differently from the reference.</li>
</ul>
<h2>Neural Machine Models</h2>
<p>BLEURT is a neural model trained to replicate human ratings of text quality. It leverages transfer learning to evaluate outputs on novel datasets, providing a balance between human evaluation and traditional n-gram metrics. Other similar metrics can be created for a number of datasets and have been tried. These models increase complexity compared to n-grams but hopefully can leverage semantic understanding for higher accuracy.</p>
<p><strong>Pros:</strong></p>
<ul>
<li><strong>Speed:</strong> Faster than human evaluation, allowing for quicker assessments.</li>
<li><strong>Efficiency:</strong> Converts a small amount of human evaluation data into a more robust model that can generalize to new datasets.</li>
<li><strong>Accuracy:</strong> Can potentially achieve high correlation with human judgments by learning from human-rated examples.</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li><strong>Interpretability:</strong> The model&#8217;s decisions can be opaque, making it hard to understand why a particular rating was given.</li>
<li><strong>Overfitting:</strong> There is a risk that the model might overfit to the training data, reducing its effectiveness on new, unseen data.</li>
<li><strong>Technical Complexity:</strong> Implementing and fine-tuning neural models like BLEURT can be technically challenging and resource-intensive.</li>
</ul>
<h2>LLM Machine Grading (GPT-4/Claude 3)</h2>
<p>This approach involves using general-purpose language models like GPT-4 or Claude 3 to evaluate answers against a reference answer through a prompt-based system. Models like GPT4 and Claude 3 have been tested and found to have good agreement with human graders which makes these an appealing option for many use cases. However, if you are using GPT4 or Claude for your task, both are known to prefer their own outputs over others. While this may not be a huge issue, it is likely just the tip of the iceberg of subtle biases given the closed-source and uninterpretable nature of these tools. There is a lot we just don’t know about this method and</p>
<p><strong>Pros:</strong></p>
<ul>
<li><strong>Ease of Implementation:</strong> APIs for GPT-4 and Claude 3 make it straightforward to set up and use.</li>
<li><strong>Accuracy:</strong> In some test cases, these models have shown superior grading accuracy compared to human evaluators. (For full transparency, this is somewhat speculative and other studies suggest there may not be as close of an alignment with human graders as was previously thought.)</li>
<li><strong>Speed:</strong> Automated grading is much faster than manual human evaluation, enabling quicker turnaround times.</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li><strong>Compounding Errors:</strong> Problems where GPT-4 and Claude 3 cannot provide a satisfactory answer can give misleadingly rosy outlooks.</li>
<li><strong>Lack of Interpretability:</strong> The reasoning behind the model’s grading decisions can be unclear.</li>
<li><strong>Cost:</strong> Using advanced models like GPT-4 or Claude 3 can be expensive, particularly at scale.</li>
<li><strong>Inconsistent Score Ranges: </strong>Likert type scores output by GPT-4 do not correlate well with actual performance in terms of measurable metrics (found by looking at texts with spelling mistakes)</li>
<li><strong>Bias Toward Own Outputs:</strong> These models may show a preference for responses similar to their own generated text, which can introduce bias.</li>
<li><strong>Novelty:</strong> These methods are relatively new and may still have undiscovered limitations or require further validation.</li>
</ul>
<h2>Baseline Metrics</h2>
<p>This section is intended as a brief catch-all. LLMs applications can also be tested with a number of internal metrics such as perplexity or consistency. These metrics are largely applicable to base models and have some correlation with accuracy as can be seen through decreasing perplexity graphs.</p>
<p><strong>Pros:</strong></p>
<ul>
<li><strong>Unlabelled Data: </strong>No labelled data is required to determine metrics such as perplexity.</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li><strong>Lack of applicability</strong>: While perplexity is an important metric to judge various LLMs, the relationship between perplexity and downstream tasks is far from straightforward.</li>
</ul>
<h2>Conclusion</h2>
<p>We hope this blog post has given you some more insight into the world of LLM benchmarking. Each of the methods covered can give some insight into the performance of an LLM or downstream LLM applications. Ideally, by experimenting with different models and datasets using these methodologies, you can draw your own well-informed conclusions.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Browser (Web) based Notifications using Azure Notification Hub</title>
		<link>https://www.symsoftsolutions.com/ux-design/browser-web-based-notifications-using-azure-notification-hub/</link>
		
		<dc:creator><![CDATA[Pushkal Shetty]]></dc:creator>
		<pubDate>Fri, 14 Mar 2025 19:54:03 +0000</pubDate>
				<category><![CDATA[User Experience Design]]></category>
		<category><![CDATA[Digital Experience]]></category>
		<guid isPermaLink="false">https://www.symsoftsolutions.com/?p=13223</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section et_pb_section_1 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_1">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_1  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_1  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p><span data-contrast="auto">Azure Notification Hub is a scalable push notification service that allows sending messages to multiple platforms, including Web Push (VAPID), Apple Push Notification Service (APNs), and Firebase Cloud Messaging (FCM)<b>. </b>Recently, we integrated web browser based push notifications into our web application using </span>this service<span data-contrast="auto">. The journey involved overcoming multiple challenges, from .NET SDK issues to REST API implementation, service worker interactions, and platform-specific limitations, particularly on iOS. This post summarizes our approach, the issues we faced, and the solutions we implemented.</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<h2><span data-contrast="none">Registering a Web Push Subscription</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}"> </span></h2>
<p><span data-contrast="auto">We implemented a browser service worker to handle push notifications and used the </span>VAPID protocol<span data-contrast="auto"> to securely register subscriptions on the client. More information on service workers can be found </span><a href="https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration" target="_blank" rel="noopener"><span data-contrast="none">here</span></a><span data-contrast="auto">.</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<pre><span data-contrast="auto">navigator.serviceWorker.register("/sw.js").then(async (registration) =&gt; {</span> 
<span data-contrast="auto">    const subscription = await registration.pushManager.subscribe({</span> 
<span data-contrast="auto">        userVisibleOnly: true,</span> 
<span data-contrast="auto">        applicationServerKey: "YOUR_PUBLIC_VAPID_KEY"</span> 
<span data-contrast="auto">    });</span> 
<span data-contrast="auto">    console.log("Push Subscription:", subscription);</span> 
<span data-contrast="auto">});</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:&#091;916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656&#093;,&quot;469777927&quot;:&#091;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0&#093;,&quot;469777928&quot;:&#091;1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1&#093;}"> </span></pre>
<p><span data-contrast="auto">We then sent the </span>subscription object<span data-contrast="auto"> to our backend, which registers our browser with Azure Notification Hub using the I</span>nstallation API<span data-contrast="auto">. This allows Azure Notification Hub to send notifications to our browser.</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<pre><span data-contrast="auto">var installation = new</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:&#091;916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656&#093;,&quot;469777927&quot;:&#091;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0&#093;,&quot;469777928&quot;:&#091;1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1&#093;}"> </span>
<span data-contrast="auto">{</span> 
<span data-contrast="auto">    installationId = "unique-user-id",</span> 
<span data-contrast="auto">    platform = "web",</span> 
<span data-contrast="auto">    pushChannel = subscription.endpoint,</span> 
<span data-contrast="auto">    tags = new[] { "user-123" }</span> 
<span data-contrast="auto">};</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:&#091;916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656&#093;,&quot;469777927&quot;:&#091;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0&#093;,&quot;469777928&quot;:&#091;1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1&#093;}"> </span>

<span data-contrast="auto">string apiUrl = $"https://{Namespace}.servicebus.windows.net/{HubName}/installations/{installationId}?api-version=2020-06";</span> 
<span data-contrast="auto">string sasToken = GenerateSasToken(apiUrl, SasKeyName, SasKey); -- SasKeyName, SasKey can be obtained from Azure Notification Hub. Code for GenerateSasToken not provided here. </span> 
<span data-contrast="auto">string jsonPayload = Newtonsoft.Json.JsonConvert.SerializeObject(installation);</span> 
<span data-contrast="auto">var request = new HttpRequestMessage(HttpMethod.Put, apiUrl)</span> 
<span data-contrast="auto">{</span> 
<span data-contrast="auto">    Headers = { { "Authorization", sasToken } },</span> 
<span data-contrast="auto">    Content = new StringContent(jsonPayload, Encoding.UTF8, "application/json")</span> 
<span data-contrast="auto">};</span> 
<span data-contrast="auto">HttpResponseMessage response = await _httpClient.SendAsync(request);</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:&#091;916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656&#093;,&quot;469777927&quot;:&#091;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0&#093;,&quot;469777928&quot;:&#091;1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1&#093;}"> </span></pre>
<h2><span data-contrast="none">Service Worker Interactions</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}"> </span></h2>
<p><span data-contrast="auto">The service worker plays a crucial role in receiving and handling push notifications.</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<pre><span data-contrast="auto">self.addEventListener("push", event =&gt; {</span> 
<span data-contrast="auto">    const data = event.data.json();</span> 
<span data-contrast="auto">    event.waitUntil(</span> 
<span data-contrast="auto">        self.registration.showNotification(data.title, {</span> 
<span data-contrast="auto">            body: data.message,</span> 
<span data-contrast="auto">            icon: "/icon.png",</span> 
<span data-contrast="auto">            data: { url: data.url }</span> 
<span data-contrast="auto">        })</span> 
<span data-contrast="auto">    );</span> 
<span data-contrast="auto">});</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:&#091;916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656&#093;,&quot;469777927&quot;:&#091;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0&#093;,&quot;469777928&quot;:&#091;1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1&#093;}"> </span></pre>
<p><span data-contrast="auto">We also implemented </span>click handling on the notification<span data-contrast="auto"> to open a custom URL when the notification is clicked.</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<pre><span data-contrast="auto">self.addEventListener("notificationclick", event =&gt; {</span> 
<span data-contrast="auto">    event.notification.close();</span> 
<span data-contrast="auto">    event.waitUntil(clients.openWindow(event.notification.data.url));</span> 
<span data-contrast="auto">});</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:&#091;916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656&#093;,&quot;469777927&quot;:&#091;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0&#093;,&quot;469777928&quot;:&#091;1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1&#093;}"> </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:&#091;916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656&#093;,&quot;469777927&quot;:&#091;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0&#093;,&quot;469777928&quot;:&#091;1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1&#093;}"> </span></pre>
<h2>Challenges</h2>
<p><span data-contrast="auto">Here are some of the issues we faced during the implementation:</span></p>
<h3><span data-contrast="none">Issue with the Azure SDK and switching to REST API</span><span data-ccp-props="{}"> </span></h3>
<p><span data-contrast="auto">The primary problem with the Azure SDK was that it </span>did not match the official documentation<span data-contrast="auto">, and the version we used was outdated, therefore making it unsuitable for our web push notification implementation.</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p><span data-contrast="auto">To gain full control over push subscriptions, we switched to using the </span>Azure Notification Hub REST API<span data-contrast="auto">. This allowed us to manually register, update, and manage push subscriptions.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:&#091;916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656&#093;,&quot;469777927&quot;:&#091;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0&#093;,&quot;469777928&quot;:&#091;1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1&#093;}"> </span></p>
<h3><span data-contrast="none">Issue with Subject Name in Azure Notification Hub</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}"> </span></h3>
<p><span data-contrast="auto">One major issue we faced was </span>incorrect subject names<span data-contrast="auto"> when configuring VAPID keys in Azure Notification Hub. This resulted in authentication failures. To resolve this, we ensured that the </span>subject name in the VAPID settings matched the expected format<span data-contrast="auto"> required by Azure. The correct format it’s looking for is </span><a href="mailto:&#091;emailaddress&#093;"><span data-contrast="none">mailto:[emailaddress]</span></a><span data-contrast="auto">, for example </span><a href="mailto:john@hotmail.com"><span data-contrast="none">mailto:john@hotmail.com</span></a><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}">.</span></p>
<h3><span data-contrast="none">Handling Push Notifications</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}"> on iOS</span></h3>
<p><span data-contrast="auto">We encountered an issue where push notifications worked on macOS but </span>not on iOS Safari<span data-contrast="auto">. Some of the solutions we had to implement on iOS were:</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<ul>
<li data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:&#091;8226&#093;,&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">We ensured that our site properly requested notification permissions. The permissions needs to be requested at the click of a button, rather than at page load, which was sufficient for other browser platforms.</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}"> </span></li>
</ul>
<ul>
<li data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:&#091;8226&#093;,&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Additionally, on iOS, the </span>permission prompt does not appear unless the website is installed as a PWA<span data-contrast="auto">. The only way around this is to provide the user of the application with a suitable message/banner for installing the app as a PWA.</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}"> </span></li>
</ul>
<h2><span data-contrast="none">Conclusion</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}"> </span></h2>
<p><span data-contrast="auto">Despite the hurdles, the final implementation using Azure Notification Hub works seamlessly across major browsers. The key takeaways were:</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<ol>
<li data-leveltext="%1." data-font="Times New Roman" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:&#091;65533,0&#093;,&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Switching from the Azure SDK to REST API</span></b><span data-contrast="auto"> provided more control over subscriptions and tags.</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}"> </span></li>
<li data-leveltext="%1." data-font="Times New Roman" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:&#091;65533,0&#093;,&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Service workers</span></b><span data-contrast="auto"> played a critical role in handling push events and opening URLs.</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}"> </span></li>
<li data-leveltext="%1." data-font="Times New Roman" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:&#091;65533,0&#093;,&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Subject name issues in VAPID</span></b><span data-contrast="auto"> caused authentication failures and required proper configuration.</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}"> </span></li>
<li data-leveltext="%1." data-font="Times New Roman" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:&#091;65533,0&#093;,&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">iOS requires PWA installation</span></b><span data-contrast="auto"> for push notifications, unlike macOS or Windows.</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}"> </span></li>
</ol>
<p><span data-contrast="auto">If you’re looking to implement Browser based notifications for your website, don’t hesitate to reach out to us.</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}"> </span></p></div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Leveraging Azure AD B2C as an Identity Access Manager </title>
		<link>https://www.symsoftsolutions.com/digital-experience/leveraging-azure-ad-b2c-as-an-identity-access-manager/</link>
		
		<dc:creator><![CDATA[Kaushik Punyamurthula]]></dc:creator>
		<pubDate>Fri, 14 Mar 2025 19:45:29 +0000</pubDate>
				<category><![CDATA[Digital Experience]]></category>
		<guid isPermaLink="false">https://www.symsoftsolutions.com/?p=13230</guid>

					<description><![CDATA[Azure Active Directory B2C (Business-to-Consumer) is a custom identity management solution provided by Microsoft Azure as part of Microsoft Entra. It is designed to handle authentication for millions of users with auto-scaling capabilities and built-in security features to mitigate various threats.  At SymSoft Solutions, we have successfully implemented Azure AD B2C across multiple projects, leveraging [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><span data-contrast="auto">Azure Active Directory B2C (Business-to-Consumer) is a custom identity management solution provided by Microsoft Azure as part of Microsoft Entra. It is designed to handle authentication </span><span data-contrast="auto">for millions of users with auto-scaling capabilities and built-in security features to mitigate various threats.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<p><span data-contrast="auto">At SymSoft Solutions, we have successfully implemented Azure AD B2C across multiple projects, leveraging both standard user flows and custom policies to enhance the identity user experience. Azure AD B2C enables seamless integration with external identity providers such as Microsoft, Google, GitHub, and more via Single Sign-On (SSO). Additionally, it serves as a cloud-based user directory, securely storing local user information within the b2c-extension-application.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<h2><span data-contrast="none">Integration with Applications</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:360,&quot;335559739&quot;:80,&quot;335559740&quot;:276}"> </span></h2>
<p><span data-contrast="auto">Azure AD B2C is easy to integrate with JavaScript-based front-end frameworks using the MSAL (Microsoft Authentication Library). This allows applications to redirect users or present authentication forms in a popup for a smoother login experience.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<p><span data-contrast="auto">At the end of any user flow, Azure AD B2C issues a JWT (JSON Web Token), which serves as an identity token. Additionally, it can provide access tokens for API authentication. These tokens allow web applications to securely interact with backend APIs using MSAL or OpenID Connect (OIDC) authentication in .NET-based applications.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<h2><span data-contrast="none">User Flows and Custom Policies</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:360,&quot;335559739&quot;:80,&quot;335559740&quot;:276}"> </span></h2>
<p><span data-contrast="auto">Azure AD B2C offers two approaches to defining authentication experiences:</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<h3><span data-contrast="none">User Flows (Predefined Policies)</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:160,&quot;335559739&quot;:80,&quot;335559740&quot;:276}"> </span></h3>
<p><span data-contrast="auto">User flows are built-in, configurable policies that define common authentication scenarios. They allow developers to:</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<ul>
<li data-leveltext="" data-font="Symbol" data-listid="9" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Customize branding</span></b><span data-contrast="auto"> (company logos, themes, UI styling).</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="9" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Modify authentication attributes</span></b><span data-contrast="auto"> collected during sign-up or sign-in.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="9" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Configure claims</span></b><span data-contrast="auto"> returned in the JWT token.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}"> </span></li>
</ul>
<p><span data-contrast="auto">These predefined flows are ideal for applications that require quick setup and basic identity management without extensive customization.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<h3><span data-contrast="none">Custom Policies (Identity Experience Framework &#8211; IEF)</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:160,&quot;335559739&quot;:80,&quot;335559740&quot;:276}"> </span></h3>
<p><span data-contrast="auto">For more complex authentication requirements, custom policies offer greater control over every step of the identity journey. Unlike user flows, these policies are defined using XML files that refer to each other in a hierarchical structure.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<p><span data-contrast="auto">Custom policies allow:</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<ul>
<li data-leveltext="" data-font="Symbol" data-listid="10" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Fine-grained control over authentication logic</span></b><span data-contrast="auto"> and user interactions.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="10" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Integration with legacy identity providers (IDPs)</span></b><span data-contrast="auto"> via SAML, OAuth2, and REST APIs.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="10" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Implementation of advanced security measures</span></b><span data-contrast="auto">, such as risk-based authentication.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}"> </span></li>
</ul>
<p><span data-contrast="auto">While both user flows and custom policies support attribute customization, session management, and UI customization, custom policies provide significantly more flexibility at the cost of increased complexity.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<h2><span data-contrast="none">A Few Interesting Custom Flows</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:360,&quot;335559739&quot;:80,&quot;335559740&quot;:276}"> </span></h2>
<p><span data-contrast="auto">Here are a few unique</span> <span data-contrast="auto">custom flows</span> <span data-contrast="auto">we implemented in Azure AD B2C to solve specific business challenges:</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<h3><span data-contrast="none">Impersonation for Customer Support</span></h3>
<p><span data-contrast="auto">Some business scenarios require customer support agents to impersonate users for troubleshooting and better assistance. Since impersonation is not a built-in Azure AD B2C feature, we implemented a custom policy to enable this.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<h4><span data-contrast="none">Implementation</span><b><span data-contrast="auto">:</span></b><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></h4>
<ul>
<li data-leveltext="" data-font="Symbol" data-listid="11" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Customer support agents log in via an external IDP (Microsoft).</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="11" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">The system verifies their credentials and retrieves their role and permissions from the b2c-extension-app.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="11" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Agents enter the email address of the customer they want to impersonate.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="11" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">The system fetches customer information from the user directory and grants access via a modified JWT token.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}"> </span></li>
</ul>
<p><span data-contrast="auto">This solution ensures security, traceability, and compliance while maintaining a seamless support experience.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<h3><span data-contrast="none">Legacy IDP Authentication via REST API</span></h3>
<p><span data-contrast="auto">Organizations migrating from a legacy identity provider often need to validate users against the old system before transitioning to Azure AD B2C.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<h4><span data-contrast="none">Implementation</span><b><span data-contrast="auto">:</span></b><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></h4>
<ul>
<li data-leveltext="" data-font="Symbol" data-listid="12" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">We built a REST API integration with the legacy IDP.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="12" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">During login, Azure AD B2C calls the API to verify legacy user credentials before issuing a token.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="12" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Once validated, users are migrated to Azure AD B2C seamlessly.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="12" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Optionally, you can have the users forcefully reset their password after migration to Azure AD B2C to meet the standard password policies.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}"> </span></li>
</ul>
<p><span data-contrast="auto">This method enables a smooth and secure migration without disrupting user access.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<h3><span data-contrast="none">Custom Email Verification via SendGrid</span></h3>
<p><span data-contrast="auto">By default, Azure AD B2C uses Microsoft’s email verification for account sign-ups. However, some businesses prefer using third-party email providers like SendGrid for greater control over branding, analytics, and deliverability.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<h4><span data-contrast="none">Implementation</span><b><span data-contrast="auto">:</span></b><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></h4>
<ul>
<li data-leveltext="" data-font="Symbol" data-listid="13" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">We replaced the built-in email verification process with a custom SendGrid integration via a RESTful API call.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="13" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">It requires to have a SendGrid account setup in advance along with an API key stored in the Azure Policy Keys which is used to authenticate any HTTP requests made to it.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="13" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">This allowed personalized email templates with the help of dynamic templates and place holder variables.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="13" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">SendGrid supports multiple languages, improves tracking of email delivery and provide analytics regarding the engagement.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}"> </span></li>
</ul>
<p><span data-contrast="auto">This approach ensures better user engagement and customized user experience through email.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<h2><span data-contrast="none">Advantages and </span><span data-contrast="none">Limitations</span></h2>
<p><span data-contrast="none">Advantages</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:160,&quot;335559739&quot;:80,&quot;335559740&quot;:276}"> </span></p>
<ul>
<li data-leveltext="·" data-font="Symbol" data-listid="15" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;·&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Azure AD B2C is cloud-native solution which makes it highly scalable to handle millions of users while meeting the industry standards of compliance and security.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:540,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276,&quot;335559991&quot;:360}"> </span></li>
<li data-leveltext="·" data-font="Symbol" data-listid="15" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;·&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">User management and authentication is easier as Azure B2C handles most of it for you and provides you with the options of integrating with identity federations and enterprise providers.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:540,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276,&quot;335559991&quot;:360}"> </span></li>
<li data-leveltext="·" data-font="Symbol" data-listid="15" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;·&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Azure AD B2C requires no on-premises identity management solutions and requires minimal setup and development effort as it provides easy to configure authentication flows.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:540,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276,&quot;335559991&quot;:360}"> </span></li>
<li data-leveltext="·" data-font="Symbol" data-listid="15" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;·&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Azure AD B2C is cost efficient as you are charged based on Monthly Active Users (MAU) and is easy to integrate with applications developed using the modern technical stack.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:540,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276,&quot;335559991&quot;:360}"> </span></li>
</ul>
<p><span data-contrast="none">Limitations</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:160,&quot;335559739&quot;:80,&quot;335559740&quot;:276}"> </span></p>
<ul>
<li data-leveltext="·" data-font="Symbol" data-listid="14" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;·&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Azure B2C provides limited customizations within the user flows and restricts the developers to use at most one external API call.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:540,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276,&quot;335559991&quot;:360}"> </span></li>
<li data-leveltext="·" data-font="Symbol" data-listid="14" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;·&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Working with custom policies requires deeper understanding of XML configurations, orchestration steps, technical profiles and claim transformations.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:540,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276,&quot;335559991&quot;:360}"> </span></li>
<li data-leveltext="·" data-font="Symbol" data-listid="14" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;·&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Debugging any errors within XML or issues during the user journeys is very difficult due to limited and non-descriptive error messages and logging.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:540,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276,&quot;335559991&quot;:360}"> </span></li>
<li data-leveltext="·" data-font="Symbol" data-listid="14" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;·&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Documentation from Microsoft do not talk in detail about the advanced and more complex scenarios, making Azure B2C seem more like a black box.</span></li>
</ul>
<h2><span data-contrast="none">Conclusion</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:360,&quot;335559739&quot;:80,&quot;335559740&quot;:276}"> </span></h2>
<p><span data-contrast="auto">Azure AD B2C is a </span><span data-contrast="auto">powerful, scalable, and secure</span><span data-contrast="auto"> identity management solution for B2C applications, providing </span><span data-contrast="auto">SSO, API security, and seamless integrations with third-party providers</span><span data-contrast="auto">.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<p><span data-contrast="auto">For simple authentication needs, </span><span data-contrast="auto">user flows are quick and easy</span><span data-contrast="auto"> to implement. However, for businesses requiring advanced customization, </span><span data-contrast="auto">custom policies offer greater flexibility</span><span data-contrast="auto">—but at the cost of </span><span data-contrast="auto">higher complexity</span><span data-contrast="auto"> and </span><span data-contrast="auto">longer development time</span><span data-contrast="auto">.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
<p><span data-contrast="auto">By carefully choosing the right approach—</span><span data-contrast="auto">user flows for standard implementations and custom policies for unique identity experiences</span><span data-contrast="auto">—organizations can maximize the benefits of Azure AD B2C while mitigating its limitations.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}"> </span></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Happy Global Accessibility Awareness Day 2024!</title>
		<link>https://www.symsoftsolutions.com/digital-experience/happy-global-awareness-day-2024/</link>
		
		<dc:creator><![CDATA[Mark Aplet]]></dc:creator>
		<pubDate>Thu, 16 May 2024 19:42:48 +0000</pubDate>
				<category><![CDATA[Digital Experience]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[User Experience Design]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[ADA]]></category>
		<category><![CDATA[Color]]></category>
		<category><![CDATA[GAAD]]></category>
		<category><![CDATA[Web design]]></category>
		<guid isPermaLink="false">https://www.symsoftsolutions.com/?p=12696</guid>

					<description><![CDATA[Together, let's strive to build a digital landscape where everyone can access and engage with content without barriers.]]></description>
										<content:encoded><![CDATA[<h2>Understanding Color Contrast on Global Accessibility Awareness Day 2024</h2>
<p>Global Accessibility Awareness Day (GAAD) is an annual event celebrated on the third Thursday of May, dedicated to raising awareness about digital accessibility. It&#8217;s a day to reflect on the importance of creating inclusive digital experiences that cater to individuals of all abilities. As we mark GAAD, let&#8217;s delve into one of the fundamental aspects of accessibility:<strong> color contrast</strong>.</p>
<h2>Understanding Color Contrast</h2>
<p>Color contrast refers to the difference in luminance or color between two elements in a design. It plays a crucial role in ensuring readability and usability for everyone, especially for individuals with visual impairments, color vision deficiencies, or other disabilities. For these individuals, insufficient color contrast can make content difficult or even impossible to perceive.</p>
<h2>Impact of Color Contrast</h2>
<p>According to the <a href="https://webaim.org/projects/million/" target="_blank" rel="noopener">2024 WebAIM Million report</a>, lack of sufficient color contrast is one of the leading causes of accessibility barriers in digital content. Consider this: for someone with low vision, reading text with poor color contrast can be akin to trying to decipher blurred or indistinguishable characters. Similarly, individuals with color vision deficiencies (color blindeness) may struggle to differentiate between certain colors, further complicating their interaction with digital content.</p>
<h2>Tips for Ensuring Adequate Color Contrast</h2>
<p>Fortunately, there are simple yet effective measures we can take to address color contrast issues and enhance digital accessibility:</p>
<ul>
<li>Use Contrast Checking Tools: There are numerous online tools available that can help assess the color contrast of text and background combinations. Tools like <a href="https://webaim.org/resources/contrastchecker/" target="_blank" rel="noopener">WebAIM&#8217;s Contrast Checker</a> or the <a href="https://www.tpgi.com/color-contrast-checker/" target="_blank" rel="noopener">Color Contrast Analyzer</a> by The Paciello Group can quickly determine if your design meets accessibility standards.</li>
<li>Follow WCAG Guidelines: The Web Content Accessibility Guidelines (WCAG) provide specific criteria for color contrast ratios that ensure content is perceivable by all users. Aim for a minimum contrast ratio of 4.5:1 for normal text and 3:1 for large text to meet WCAG standards. Use color contrast tools such as those mentioned in this article to ensure text meets the requirement.</li>
<li>Choose Colors Wisely: Opt for color combinations that provide sufficient contrast. If you struggle in this area, tools like <a href="https://www.accessiblecolorpalette.com/" target="_blank" rel="noopener">Accessible Color Palette Generator</a> will generate an accessible color palette based on a starting color.</li>
</ul>
<h2>Need More Help?</h2>
<p>At SymSoft Solutions, we understand the importance of accessibility and are dedicated to helping businesses and organizations create more accessible digital experiences. Whether you&#8217;re seeking guidance on color contrast optimization or comprehensive accessibility audits, full accessibility solutions, or looking to establish an accessibility program in your organization, Symsoft is here to support you every step of the way.</p>
<p>Together, let&#8217;s strive to build a digital landscape where everyone can access and engage with content without barriers. <strong>Happy Global Accessibility Awareness Day!</strong></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>CA GovOps Press Release: California Signs Partnerships to Utilize GenAI</title>
		<link>https://www.symsoftsolutions.com/digital-experience/ca-govops-press-release-california-signs-partnerships-to-utilize-genai/</link>
		
		<dc:creator><![CDATA[Bhavik Patel]]></dc:creator>
		<pubDate>Fri, 10 May 2024 19:43:00 +0000</pubDate>
				<category><![CDATA[Digital Experience]]></category>
		<category><![CDATA[Employee Experience]]></category>
		<guid isPermaLink="false">https://www.symsoftsolutions.com/?p=12688</guid>

					<description><![CDATA[PRESS RELEASE: California Signs Partnerships to Utilize GenAI (Click here for Official GovOps Press Release) Date: May 9, 2024 WHAT YOU NEED TO KNOW: Leading companies will utilize cutting-edge technology for five specific challenges, working with state teams on how GenAI can enhance customer service, improve health care facility inspections for better care, reduce highway [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><strong>PRESS RELEASE: California Signs Partnerships to Utilize GenAI<br />
(<a href="https://www.govops.ca.gov/wp-content/uploads/sites/11/2024/05/GenAI-awards-press-release_Final_5.9.2024_.docx" target="_blank" rel="noopener">Click here for Official GovOps Press Release</a>)<br />
</strong></p>
<p><strong>Date: May 9, 2024</strong></p>
<p><strong>WHAT YOU NEED TO KNOW</strong>: Leading companies will utilize cutting-edge technology for five specific challenges, working with state teams on how GenAI can enhance customer service, improve health care facility inspections for better care, reduce highway congestion, improve safety for vulnerable roadway users, and improve language access.</p>
<p>SACRAMENTO – California is continuing to implement Governor Gavin Newsom’s <a href="https://www.gov.ca.gov/wp-content/uploads/2023/09/AI-EO-No.12-_-GGN-Signed.pdf" target="_blank" rel="noopener">Executive Order on Generative Artificial Intelligence</a> (GenAI), entering into agreements with five vendors to test, iterate and evaluate GenAI through proofs of concept (POCs). Vendors will utilize GenAI technologies developed by OpenAI, Anthropic, Google, Meta, and others to develop these solutions. The cloud environments used will be Amazon (AWS) Cloud, Google Cloud, Microsoft Azure and ServiceNow (SaaS).</p>
<p>The state will pay each proof-of-concept vendor $1 to test in the “sandbox”, a secure and isolated testing environment. This gives the state and the vendors time to see what works, what doesn’t, and make necessary adjustments during a 6-month window.</p>
<p>“We are now at a point where we can begin understanding if GenAI can provide us with viable solutions while supporting the state workforce,” said Amy Tong, Secretary of the California Government Operations Agency. “Our job is to learn by testing, and we’ll do this by having a human in the loop at every step so that we’re building confidence in this new technology.”</p>
<p><a href="https://www.govops.ca.gov/wp-content/uploads/sites/11/2024/05/GenAI-awards-press-release_Final_5.9.2024_.docx" target="_blank" rel="noopener">Download the complete GovOps press release for additional information</a>.</p>
<p>SymSoft is thrilled to have been selected for the GenAI POC for the California Department of Tax and Fee Administration (CDTFA). As quoted in the press release:</p>
<p>“SymSoft is enthusiastic about the potential of Generative AI to elevate Customer Service and Customer Engagement,” said Savita Farooqui, Director of Research, SymSoft Solutions. Our approach not only enhances operational efficiency but also enriches the customer experience. By implementing robust AI governance and effective safeguards, we are dedicated to delivering AI solutions that genuinely benefit our customers.”</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Why Government Website UX Matters?</title>
		<link>https://www.symsoftsolutions.com/ux-design/why-government-website-ux-matters/</link>
		
		<dc:creator><![CDATA[SymSoft Solutions]]></dc:creator>
		<pubDate>Thu, 22 Apr 2021 21:03:00 +0000</pubDate>
				<category><![CDATA[User Experience Design]]></category>
		<category><![CDATA[Digital Experience]]></category>
		<category><![CDATA[Web Design]]></category>
		<guid isPermaLink="false">https://www.symsoftsolutions.com/?p=8713</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<p><div class="et_pb_section et_pb_section_2 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_2">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_2  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_0  et_pb_text_align_center  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					
					<div class="et_pb_blurb_container">
						<h1 class="et_pb_module_header"><span>Why Government Website UX Matters?</span></h1>
						<div class="et_pb_blurb_description"><p><strong>Summary:</strong><span> Multiple case studies (provided below) demonstrate that better User Experience leads to better digital transaction completion rates. Great UX help constituents complete what they need fast and at their convenience.</span></p></div>
					</div>
				</div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div><div class="et_pb_section et_pb_section_3 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_3">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_3  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_image et_pb_image_0">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="2400" height="1200" src="https://www.symsoftsolutions.com/wp-content/uploads/2021/05/why-ux-matters-hero.jpg" alt="Illustration of brands included in UX case studies" title="" srcset="https://www.symsoftsolutions.com/wp-content/uploads/2021/05/why-ux-matters-hero.jpg 2400w, https://www.symsoftsolutions.com/wp-content/uploads/2021/05/why-ux-matters-hero-1280x640.jpg 1280w, https://www.symsoftsolutions.com/wp-content/uploads/2021/05/why-ux-matters-hero-980x490.jpg 980w, https://www.symsoftsolutions.com/wp-content/uploads/2021/05/why-ux-matters-hero-480x240.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 2400px, 100vw" class="wp-image-8844" /></span>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_4">
				<div class="et_pb_column et_pb_column_1_5 et_pb_column_4  et_pb_css_mix_blend_mode_passthrough et_pb_column_empty">
				
				
				
				
				
			</div><div class="et_pb_column et_pb_column_3_5 et_pb_column_5  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_1  et_pb_text_align_left  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					
					<div class="et_pb_blurb_container">
						
						<div class="et_pb_blurb_description"><p>User experience as a concept has been around since the 1990s, but only in the last decade has it entered mainstream conversations and crossed from the technology sector into the business world. <strong>The private sector pays attention to user experience because it directly affects customer and brand experience, which ultimately impacts consumer spending.</strong></p>
<p>Government websites can benefit from optimized user experience as well. As we shared before in our guide on <a href="https://www.symsoftsolutions.com/ux-design/government-websites-best-practices-performance/">government website performance best practices</a>, by approaching the <a href="https://www.computerweekly.com/news/252486191/Covid-19-accelerates-UK-digital-transformation-efforts-by-over-five-years" target="_blank" rel="noopener">digital transformation project</a> with the business mindset, the award-winning <a href="https://gds.blog.gov.uk/2015/10/23/how-digital-and-technology-transformation-saved-1-7bn-last-year/" target="_blank" rel="noopener">GOV.UK website saved £61.5 million ($85.9 million) in 2015</a>. The UK government focused on streamlining digital transactions in order to help users accomplish as many digital transactions as possible online, instead of visiting offices and filling out paper forms.</p>
<p>Replacing paper forms with web forms is the first step in digital transformation. The next step is providing access to content and services on a range of devices, form factors, and assistive technologies. But in order to improve digital service adoption in a country, state, county, or city, government websites must provide quick access to the information the user needs, open up the content to all levels of literacy, education and expertise, and make it easy to use, accomplish tasks, bookmark and share.</p>
<p>A few examples of digital services that benefit from improved user experience include:</p>
<ol>
<li>Power outage or wildfire reporting.</li>
<li>Discount or equity program application.</li>
<li>Application for school or college.</li>
<li>Public transportation ticket purchase.</li>
<li>Climate change incentive registration and renewal.</li>
</ol>
<p>Continue reading below to learn <a href="#how-to-convince-your-organization-to-improve-your-website-ux">how to convince your organization with examples of UX successes and failures</a>.</p></div>
					</div>
				</div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_5 et_pb_column_6  et_pb_css_mix_blend_mode_passthrough et-last-child et_pb_column_empty">
				
				
				
				
				
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_6 et_pb_equal_columns et_pb_gutters1">
				<div class="et_pb_column et_pb_column_1_3 et_pb_column_7  et_pb_css_mix_blend_mode_passthrough et_pb_column_empty">
				
				
				
				
				
			</div><div class="et_pb_column et_pb_column_2_3 et_pb_column_8  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_cta_0 et_pb_promo  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_promo_description"><h2 class="et_pb_module_header">Read more content like this.</h2><div><p>We write about <a href="https://www.symsoftsolutions.com/ux-design/government-websites-best-practices-performance/">page speed performance</a>, accessibility, usability, a variety of technology topics and more. Subscribe to our newsletter and <a href="https://www.linkedin.com/company/symsoft-solutions" target="_blank" rel="noopener">connect with us on LinkedIn</a> to receive future updates.</p></div></div>
				<div class="et_pb_button_wrapper"><a class="et_pb_button et_pb_promo_button" href="https://www.symsoftsolutions.com/newsletter/">Subscribe to our Newsletter</a></div>
			</div>
			</div>
				
				
				
				
			</div><div id="how-to-convince-your-organization-to-improve-your-website-ux" class="et_pb_row et_pb_row_7">
				<div class="et_pb_column et_pb_column_1_5 et_pb_column_9  et_pb_css_mix_blend_mode_passthrough et_pb_column_empty">
				
				
				
				
				
			</div><div class="et_pb_column et_pb_column_3_5 et_pb_column_10  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_2  et_pb_text_align_left  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					
					<div class="et_pb_blurb_container">
						<h2 class="et_pb_module_header"><span>How to convince your organization to improve your website UX?</span></h2>
						<div class="et_pb_blurb_description"><p>Here are a few examples of <strong>why user experience matters</strong> and how a good user interface, as well as concise, clear, and well-organized content, help audiences to complete tasks:</p>
<ol>
<li>User experience is a matter of survival for your business and can be the reason your competition puts you out of business.<a href="https://www.forbes.com/sites/forbestechcouncil/2015/11/19/good-ux-is-good-business-how-to-reap-its-benefits/?sh=62ef440b4e51" class="rank-math-link" target="_blank" rel="noopener"> Large companies such as Amazon, Intuit, and Airbnb have invested heavily into UX and credit their success to improved UX</a>. Research from <a href="https://www.forrester.com/report/The+Six+Steps+For+Justifying+Better+UX/-/E-RES117708" target="_blank" rel="noopener">Forrester</a> (paid report) shows that, on average, every dollar invested in UX brings 100 in return, which is an ROI of 9,900%.</li>
<li>In 2009, <a href="https://articles.uie.com/three_hund_million_button/" target="_blank" rel="noopener">UIE redesigned a major retailer site</a>, renaming the “register” button to “continue,” explaining that the registration was optional when completing the checkout process. Sales went up 45% / $15 million in the first month and $300 million in the first year.</li>
<li>In February 2021, <a href="https://arstechnica.com/tech-policy/2021/02/citibank-just-got-a-500-million-lesson-in-the-importance-of-ui-design/" target="_blank" rel="noopener">Citibank got a $500 million lesson on the importance of UI design</a>. Ambiguous user interface caused a transaction error, and instead of sending $7.8M in interest to creditors, they sent $900M of the principal.</li>
</ol></div>
					</div>
				</div>
			</div><div class="et_pb_module et_pb_image et_pb_image_1 et_pb_image_sticky">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="1200" height="675" src="https://www.symsoftsolutions.com/wp-content/uploads/2021/05/AdobeStock_295854200-1200x675-1.jpg" alt="Internal hands-on meeting with optimistic participants" title="AdobeStock_295854200_Preview" srcset="https://www.symsoftsolutions.com/wp-content/uploads/2021/05/AdobeStock_295854200-1200x675-1.jpg 1200w, https://www.symsoftsolutions.com/wp-content/uploads/2021/05/AdobeStock_295854200-1200x675-1-980x551.jpg 980w, https://www.symsoftsolutions.com/wp-content/uploads/2021/05/AdobeStock_295854200-1200x675-1-480x270.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1200px, 100vw" class="wp-image-8937" /></span>
			</div><div class="et_pb_module et_pb_blurb et_pb_blurb_3  et_pb_text_align_left  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					
					<div class="et_pb_blurb_container">
						
						<div class="et_pb_blurb_description"><ol start="4">
<li>In 2011, Netflix spurred outrage and 800,000 account cancellations when it unexpectedly announced it was <a href="https://customersincluded.com/chapter1.html#chap1" target="_blank" rel="noopener">increasing the subscription price by 60% without additional benefits</a>, and days later stated that it was spinning off its DVD rental services into another business, Qwikster. <a href="https://creativegood.com/mark-hurst/" target="_blank" rel="noopener">Mark Hurst</a>, the author of the book <em>Customers Included</em>, writes: “Customers’ emotional attachment came directly from the convenience and ease-of-use of the service. Netflix’s brand was (and still is) fully defined by the experience it creates for customers. Hastings’ mistake may be summed up in a simple rule of thumb: Harm the customer experience and you harm the company.” (At that time, the stock price fell from $298 to $54 within a year.)</li>
<li>“In a recent project, an airline approached IBM to improve its kiosks to speed up passenger gate check-ins. While the engineers started by improving the kiosk’s software, designers went straight to gate agents to ask why the check-in kiosks weren’t used more effectively. Designers found out that female gate agents struggled to keep kiosks charged because their constricting uniforms prevented them from reaching electrical plugs behind the machines. By finding the root of the problem, IBM delivered a mobile app that significantly eased the boarding process and reduced airline costs.”<em> – </em><a href="https://qz.com/755741/ibm-is-becoming-the-worlds-largest-design-company/" target="_blank" rel="noopener">Anne Quito</a></li>
<li>To write content that everyone can understand, use plain language. A <a href="https://nces.ed.gov/pubs93/93275.pdf" target="_blank" rel="noopener">2003 Department of Education literacy assessment conducted with 26,000 adults</a> (PDF) showed that 21–23% of adults—40 to 44 million people—in the US demonstrated literacy skills in the lowest level of prose, document, and quantitative proficiencies. “Many of the individuals in this level were born in other countries; had not attended school beyond the eighth grade; were elderly; or had a disability, illness, or impairment.”</li>
</ol>
<p>Take a moment to see how your website compares, or <a href="#more-case-studies">skip to the next case study</a></div>
					</div>
				</div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_5 et_pb_column_11  et_pb_css_mix_blend_mode_passthrough et-last-child et_pb_column_empty">
				
				
				
				
				
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_9 et_pb_equal_columns et_pb_gutters1">
				<div class="et_pb_column et_pb_column_1_3 et_pb_column_12  et_pb_css_mix_blend_mode_passthrough et_pb_column_empty">
				
				
				
				
				
			</div><div class="et_pb_column et_pb_column_2_3 et_pb_column_13 pa-inline-buttons  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_4  et_pb_text_align_left  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					
					<div class="et_pb_blurb_container">
						<h2 class="et_pb_module_header"><span>How does your website compare?</span></h2>
						<div class="et_pb_blurb_description"><p>Have your website evaluated by our experts and see how you compare to the industry leaders. We will review your website for free as a part of our initial consultation.</p></div>
					</div>
				</div>
			</div><div class="et_pb_button_module_wrapper et_pb_button_0_wrapper et_pb_button_alignment_phone_center et_pb_module ">
				<a class="et_pb_button et_pb_button_0 et_pb_bg_layout_dark" href="https://www.symsoftsolutions.com/contact/">Request a Free Review</a>
			</div>
			</div>
				
				
				
				
			</div><div id="more-case-studies" class="et_pb_row et_pb_row_10">
				<div class="et_pb_column et_pb_column_1_5 et_pb_column_14  et_pb_css_mix_blend_mode_passthrough et_pb_column_empty">
				
				
				
				
				
			</div><div class="et_pb_column et_pb_column_3_5 et_pb_column_15  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_5  et_pb_text_align_left  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					
					<div class="et_pb_blurb_container">
						
						<div class="et_pb_blurb_description"><ol start="7">
<li>“If the customer can’t find the product, the customer can’t buy it”. <a href="https://www.nngroup.com/articles/ia-task-failures-remain-costly/" target="_blank" rel="noopener">Usability studies conducted by Jakob Nielsen</a> show that poor information architecture and content design have a negative impact on users being able to complete tasks on websites. It can also leave users frustrated with the website, causing them to leave, and can even cost you money.</li>
<li>Extensive research by Baymard Institute showed that <a href="https://baymard.com/blog/ecommerce-over-categorization" target="_blank" rel="noopener">over-categorization can lead to website abandonment</a>. With over-categorization, users are siloed into overly narrow category scopes where they can overlook the bulk of a site’s options. <a href="https://www.nngroup.com/articles/navigation-cognitive-strain/" class="rank-math-link" target="_blank" rel="noopener">Certain other website navigation approaches</a> such as overly elaborate navigation menus challenge users’ motor skills, unfamiliar labels increase ambiguity, and duplicate links (for example in the navigation and on the page) increase the number of choices and move the user from the <a href="https://www.youtube.com/watch?v=PirFrDVRBo4" target="_blank" rel="noopener">cognitive ease of shopping or browsing, into the cognitively strained mode of thinking</a>.</li>
<li>Larking and Picard demonstrated that people perform better in cognitive tests — such as the<a href="https://en.wikipedia.org/wiki/Candle_problem" target="_blank" rel="noopener"> Candle problem</a> — after being exposed to a more appealing design. For example,<a href="https://affect.media.mit.edu/pdfs/05.larson-picard.pdf" target="_blank" rel="noopener"> the participants who received good typography afterward performed better on Isen’s cognitive tasks as well as on subjective duration assessment (PDF)</a>.</li>
<li>Microsoft’s Research on <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.5.6189&amp;rep=rep1&amp;type=pdf" target="_blank" rel="noopener">subjective duration assessment</a> demonstrated that people perceive successful task completion as faster, and unsuccessful tasks as slower. We know from research on website performance that <a href="https://www.symsoftsolutions.com/ux-design/government-websites-best-practices-performance/">webpage performance and the perception of speed are critical factors</a> that improve conversions.</li>
<li>Hitachi Design Center research found a <a href="https://lawsofux.com/aesthetic-usability-effect/" target="_blank" rel="noopener">stronger correlation between the participants’ ratings of aesthetic appeal and perceived ease of use than the correlation between their ratings of aesthetic appeal and <em>actual</em> ease of use</a>. This is called the aesthetic-usability effect. With an aesthetically pleasing design, users are more likely to tolerate usability issues, which can lead to unsolved usability problems.</li>
</ol>
<p>It is clear that government websites’ improved user experiences can empower constituents to more efficiently utilize government digital services, reduce operational and customer support costs, and increase the likelihood of users completing the goals around which the sites are built. Also, for millions of Californians, in addition to <a href="https://www.symsoftsolutions.com/ux-design/government-websites-best-practices-performance/">the fast loading pages</a>, simple and easy-to-use websites mean more equitable access to digital services.</p></div>
					</div>
				</div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_5 et_pb_column_16  et_pb_css_mix_blend_mode_passthrough et-last-child et_pb_column_empty">
				
				
				
				
				
			</div>
				
				
				
				
			</div><div class="et_pb_with_border et_pb_row et_pb_row_11">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_17  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_6  et_pb_text_align_center  et_pb_blurb_position_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					
					<div class="et_pb_blurb_container">
						
						<div class="et_pb_blurb_description"><p><strong>Read next:</strong> <a href="/ux-design/government-websites-best-practices-user-experience/">Government Websites Best Practices: User Experience</a> — or — <a href="/ux-design/7-government-websites-with-the-best-ux-design/">Government Websites with the Best UX Design</a></p></div>
					</div>
				</div>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_13 et_pb_equal_columns et_pb_gutters1">
				<div class="et_pb_column et_pb_column_1_3 et_pb_column_18  et_pb_css_mix_blend_mode_passthrough et_pb_column_empty">
				
				
				
				
				
			</div><div class="et_pb_column et_pb_column_2_3 et_pb_column_19  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_7  et_pb_text_align_left  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					
					<div class="et_pb_blurb_container">
						<h2 class="et_pb_module_header"><span>We can help.</span></h2>
						<div class="et_pb_blurb_description"><p>We have <a href="https://www.symsoftsolutions.com/content-services/california-community-colleges-design-lab/">extensive experience in setting up organizations for user-centered design</a> and improving their digital assets. For all questions, please <a href="http://symsoftsolutions.com/contact/">reach out to our team of experts</a>. Our favorite approach to solving user experience problems is <a href="https://www.symsoftsolutions.com/web-design/web-design-brainstorming-through-a-google-design-sprint/" style="font-size: 16px;">Design Sprints</a>, which we utilized in award-winning projects developed for SMUD Utility, California Community Colleges, and the California Energy Commission.</p></div>
					</div>
				</div>
			</div><div class="et_pb_button_module_wrapper et_pb_button_1_wrapper et_pb_button_alignment_left et_pb_module ">
				<a class="et_pb_button et_pb_button_1 et_pb_bg_layout_light" href="https://www.symsoftsolutions.com/contact/">Contact Us for a Free Consultation</a>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Five Simple Steps to Improve Government Website User Experience</title>
		<link>https://www.symsoftsolutions.com/ux-design/five-simple-ux-improvements/</link>
		
		<dc:creator><![CDATA[SymSoft Solutions]]></dc:creator>
		<pubDate>Thu, 08 Apr 2021 20:45:00 +0000</pubDate>
				<category><![CDATA[User Experience Design]]></category>
		<category><![CDATA[Digital Experience]]></category>
		<category><![CDATA[Web Design]]></category>
		<guid isPermaLink="false">https://www.symsoftsolutions.com/?p=8701</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<div class="et_pb_section et_pb_section_4 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_14">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_20  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_8  et_pb_text_align_center  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					
					<div class="et_pb_blurb_container">
						<h1 class="et_pb_module_header"><span>Five Simple Steps to Improve Government Website User Experience</span></h1>
						<div class="et_pb_blurb_description"><p><strong>Summary:</strong><span> Creating an excellent government website user experience is not unattainable, but it requires consistency and organizational commitment.</span></p></div>
					</div>
				</div>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_15">
				<div class="et_pb_column et_pb_column_1_5 et_pb_column_21  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_9  et_pb_text_align_center  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					<div class="et_pb_main_blurb_image"><span class="et_pb_image_wrap et_pb_only_image_mode_wrap"><img loading="lazy" decoding="async" width="326" height="260" src="https://www.symsoftsolutions.com/wp-content/uploads/2021/03/chart-network@2x.png" alt="Network analysis" srcset="https://www.symsoftsolutions.com/wp-content/uploads/2021/03/chart-network@2x.png 326w, https://www.symsoftsolutions.com/wp-content/uploads/2021/03/chart-network@2x-282x225.png 282w" sizes="(max-width: 326px) 100vw, 326px" class="et-waypoint et_pb_animation_off et_pb_animation_off_tablet et_pb_animation_off_phone wp-image-8533" /></span></div>
					<div class="et_pb_blurb_container">
						<h4 class="et_pb_module_header"><span>Regularly review website analytics</span></h4>
						
					</div>
				</div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_5 et_pb_column_22  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_10  et_pb_text_align_center  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					<div class="et_pb_main_blurb_image"><span class="et_pb_image_wrap et_pb_only_image_mode_wrap"><img loading="lazy" decoding="async" width="195" height="260" src="https://www.symsoftsolutions.com/wp-content/uploads/2021/03/mouse@2x.png" alt="Mouse" srcset="https://www.symsoftsolutions.com/wp-content/uploads/2021/03/mouse@2x.png 195w, https://www.symsoftsolutions.com/wp-content/uploads/2021/03/mouse@2x-169x225.png 169w" sizes="(max-width: 195px) 100vw, 195px" class="et-waypoint et_pb_animation_off et_pb_animation_off_tablet et_pb_animation_off_phone wp-image-8535" /></span></div>
					<div class="et_pb_blurb_container">
						<h4 class="et_pb_module_header"><span>Learn how people use the website</span></h4>
						
					</div>
				</div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_5 et_pb_column_23  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_11  et_pb_text_align_center  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					<div class="et_pb_main_blurb_image"><span class="et_pb_image_wrap et_pb_only_image_mode_wrap"><img loading="lazy" decoding="async" width="330" height="231" src="https://www.symsoftsolutions.com/wp-content/uploads/2021/03/fighter-jet@2x.png" alt="Fast jet" srcset="https://www.symsoftsolutions.com/wp-content/uploads/2021/03/fighter-jet@2x.png 330w, https://www.symsoftsolutions.com/wp-content/uploads/2021/03/fighter-jet@2x-300x210.png 300w" sizes="(max-width: 330px) 100vw, 330px" class="et-waypoint et_pb_animation_off et_pb_animation_off_tablet et_pb_animation_off_phone wp-image-8534" /></span></div>
					<div class="et_pb_blurb_container">
						<h4 class="et_pb_module_header"><span>Improve page loading speed</span></h4>
						
					</div>
				</div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_5 et_pb_column_24  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_12  et_pb_text_align_center  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					<div class="et_pb_main_blurb_image"><span class="et_pb_image_wrap et_pb_only_image_mode_wrap"><img loading="lazy" decoding="async" width="260" height="260" src="https://www.symsoftsolutions.com/wp-content/uploads/2021/03/typewriter@2x.png" alt="Typewriter" srcset="https://www.symsoftsolutions.com/wp-content/uploads/2021/03/typewriter@2x.png 260w, https://www.symsoftsolutions.com/wp-content/uploads/2021/03/typewriter@2x-225x225.png 225w, https://www.symsoftsolutions.com/wp-content/uploads/2021/03/typewriter@2x-150x150.png 150w" sizes="(max-width: 260px) 100vw, 260px" class="et-waypoint et_pb_animation_off et_pb_animation_off_tablet et_pb_animation_off_phone wp-image-8536" /></span></div>
					<div class="et_pb_blurb_container">
						<h4 class="et_pb_module_header"><span>Rewrite high-profile pages</span></h4>
						
					</div>
				</div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_5 et_pb_column_25  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_13  et_pb_text_align_center  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					<div class="et_pb_main_blurb_image"><span class="et_pb_image_wrap et_pb_only_image_mode_wrap"><img loading="lazy" decoding="async" width="260" height="260" src="https://www.symsoftsolutions.com/wp-content/uploads/2021/03/universal-access@2x.png" alt="Universal access" srcset="https://www.symsoftsolutions.com/wp-content/uploads/2021/03/universal-access@2x.png 260w, https://www.symsoftsolutions.com/wp-content/uploads/2021/03/universal-access@2x-225x225.png 225w, https://www.symsoftsolutions.com/wp-content/uploads/2021/03/universal-access@2x-150x150.png 150w" sizes="(max-width: 260px) 100vw, 260px" class="et-waypoint et_pb_animation_off et_pb_animation_off_tablet et_pb_animation_off_phone wp-image-8537" /></span></div>
					<div class="et_pb_blurb_container">
						<h4 class="et_pb_module_header"><span>Develop an accessible design system</span></h4>
						
					</div>
				</div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div><div class="et_pb_section et_pb_section_5 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_16">
				<div class="et_pb_column et_pb_column_1_5 et_pb_column_26  et_pb_css_mix_blend_mode_passthrough et_pb_column_empty">
				
				
				
				
				
			</div><div class="et_pb_column et_pb_column_3_5 et_pb_column_27  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_14  et_pb_text_align_left  et_pb_blurb_position_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					
					<div class="et_pb_blurb_container">
						
						<div class="et_pb_blurb_description"><p>While methodologies and techniques for improving User Experience are not some mysterious well-kept set of practices, where organizations fail to meet user needs is in not committing to perpetual improvements, optimizations, and course-correction over time.</p>
<p>As different brands innovate and new technologies emerge, users are introduced to ever-evolving experience trends. However, while visual design or graphic asset style is oftentimes a matter of seasonal reinvention, by going back to the basics of communication and interaction we can keep up with the user expectation and provide delightful digital services.</p>
<p>Keep reading below to learn about five simple things you can do to improve the website user experience.</p></div>
					</div>
				</div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_5 et_pb_column_28  et_pb_css_mix_blend_mode_passthrough et-last-child et_pb_column_empty">
				
				
				
				
				
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_18 et_pb_equal_columns et_pb_gutters1">
				<div class="et_pb_column et_pb_column_1_3 et_pb_column_29  et_pb_css_mix_blend_mode_passthrough et_pb_column_empty">
				
				
				
				
				
			</div><div class="et_pb_column et_pb_column_2_3 et_pb_column_30  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_cta_1 et_pb_promo  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_promo_description"><h2 class="et_pb_module_header">Read more content like this.</h2><div><p>We write about <a href="https://www.symsoftsolutions.com/ux-design/government-websites-best-practices-performance/">page speed performance</a>, accessibility, usability, a variety of technology topics and more. Subscribe to our newsletter and <a href="https://www.linkedin.com/company/symsoft-solutions" target="_blank" rel="noopener">connect with us on LinkedIn</a> to receive future updates.</p></div></div>
				<div class="et_pb_button_wrapper"><a class="et_pb_button et_pb_promo_button" href="https://www.symsoftsolutions.com/newsletter/">Subscribe to our Newsletter</a></div>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_19">
				<div class="et_pb_column et_pb_column_1_5 et_pb_column_31  et_pb_css_mix_blend_mode_passthrough et_pb_column_empty">
				
				
				
				
				
			</div><div class="et_pb_column et_pb_column_3_5 et_pb_column_32  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_15  et_pb_text_align_left  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					
					<div class="et_pb_blurb_container">
						<h3 class="et_pb_module_header"><span>Regularly review website analytics</span></h3>
						<div class="et_pb_blurb_description"><p>You’ll never know what visitors are looking for if you don’t observe website metrics, such as page visits, document downloads, and webform interactions. Document downloads and interactions are not tracked automatically in Google Analytics, but they can be set up with <a href="https://support.google.com/analytics/answer/1012044" target="_blank" rel="noopener">Universal Analytics properties</a> or <a href="https://support.google.com/analytics/answer/9216061?hl=en&amp;ref_topic=9756175" target="_blank" rel="noopener">Google Analytics 4 Events</a>. We often find that a handful of popular pages generate the majority of traffic. It’s worth addressing such pages first when improving content, accessibility, webpage performance, and interactive features.</p></div>
					</div>
				</div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_5 et_pb_column_33  et_pb_css_mix_blend_mode_passthrough et-last-child et_pb_column_empty">
				
				
				
				
				
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_20">
				<div class="et_pb_column et_pb_column_1_5 et_pb_column_34  et_pb_css_mix_blend_mode_passthrough et_pb_column_empty">
				
				
				
				
				
			</div><div class="et_pb_column et_pb_column_3_5 et_pb_column_35  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_16  et_pb_text_align_left  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					
					<div class="et_pb_blurb_container">
						<h3 class="et_pb_module_header"><span>Learn how people use the website</span></h3>
						<div class="et_pb_blurb_description"><p><span>Learn why and how visitors use the website by watching them navigate the content or perform specific tasks. Common user research methods include usability testing, card sort, and tree test, but there are many more, such as </span><a href="https://www.symsoftsolutions.com/web-design/validating-aesthetics-in-a-web-design-project/">visual design validation</a><span>, and they can be combined in mixed-method user research that maximizes each user session. For best results, establish a regular cadence and conduct user research at least once a month. User sessions can be as simple as loading up the website over a video conference call with a participant and asking them to complete a task, or publishing a survey.</span></p></div>
					</div>
				</div>
			</div><div class="et_pb_module et_pb_image et_pb_image_2">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="2560" height="1427" src="https://www.symsoftsolutions.com/wp-content/uploads/2021/05/AdobeStock_334484054-scaled.jpeg" alt="Remote user session" title="" srcset="https://www.symsoftsolutions.com/wp-content/uploads/2021/05/AdobeStock_334484054-scaled.jpeg 2560w, https://www.symsoftsolutions.com/wp-content/uploads/2021/05/AdobeStock_334484054-1280x714.jpeg 1280w, https://www.symsoftsolutions.com/wp-content/uploads/2021/05/AdobeStock_334484054-980x546.jpeg 980w, https://www.symsoftsolutions.com/wp-content/uploads/2021/05/AdobeStock_334484054-480x268.jpeg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 2560px, 100vw" class="wp-image-8799" /></span>
			</div>
			</div><div class="et_pb_column et_pb_column_1_5 et_pb_column_36  et_pb_css_mix_blend_mode_passthrough et-last-child et_pb_column_empty">
				
				
				
				
				
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_21">
				<div class="et_pb_column et_pb_column_1_5 et_pb_column_37  et_pb_css_mix_blend_mode_passthrough et_pb_column_empty">
				
				
				
				
				
			</div><div class="et_pb_column et_pb_column_3_5 et_pb_column_38  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_17  et_pb_text_align_left  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					
					<div class="et_pb_blurb_container">
						<h3 class="et_pb_module_header"><span>Improve page loading speed</span></h3>
						<div class="et_pb_blurb_description"><p><span>Studies have shown that fast websites increase online transactions, reduce customer support inquiries, and lower website abandonment rates. By order of priority, optimize images, video files, and fonts, combine and minify CSS and JavaScript files, disable unused plugins, and enable caching. Read more in our </span><a href="https://www.symsoftsolutions.com/ux-design/government-websites-best-practices-performance/#five-simple-improvements-for-better-website-performance">website performance best practices guide</a><span>.</span></p></div>
					</div>
				</div>
			</div><div class="et_pb_module et_pb_blurb et_pb_blurb_18  et_pb_text_align_left  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					
					<div class="et_pb_blurb_container">
						<h3 class="et_pb_module_header"><span>Rewrite high profile pages</span></h3>
						<div class="et_pb_blurb_description"><span>User-centered content means </span><a href="https://www.symsoftsolutions.com/content-services/">inclusive content</a><span>. Translate expert language into clear instructions and streamlined information by following the </span><a href="https://www.plainlanguage.gov/" class="rank-math-link" target="_blank" rel="noopener">plainlanguage.gov guidelines</a> (there are many more content style guides applicable to government websites). Aim for the ultimate experience and provide concise information in Google Search results descriptions that are useful even before the visitor clicks to visit the website.</div>
					</div>
				</div>
			</div><div class="et_pb_module et_pb_blurb et_pb_blurb_19  et_pb_text_align_left  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					
					<div class="et_pb_blurb_container">
						<h3 class="et_pb_module_header"><span>Develop an accessible design system</span></h3>
						<div class="et_pb_blurb_description"><p><span>Design systems improve brand recognition, increase trust and credibility, and reduce the learning curve for new visitors. Maintain accessibility compliance and improve website usability with </span><a href="https://www.symsoftsolutions.com/ux-design/design-systems-for-enterprises-benefits-challenges-and-best-practices/">comprehensive design guidelines and interface examples</a><span>.</span></p></div>
					</div>
				</div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_5 et_pb_column_39  et_pb_css_mix_blend_mode_passthrough et-last-child et_pb_column_empty">
				
				
				
				
				
			</div>
				
				
				
				
			</div><div class="et_pb_with_border et_pb_row et_pb_row_22">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_40  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_20  et_pb_text_align_center  et_pb_blurb_position_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					
					<div class="et_pb_blurb_container">
						
						<div class="et_pb_blurb_description"><p><strong>Read next:</strong> <a href="/ux-design/government-websites-best-practices-user-experience/">Government Websites Best Practices: User Experience</a> — or — <a href="/ux-design/7-government-websites-with-the-best-ux-design/">Government Websites with the Best UX Design</a></p></div>
					</div>
				</div>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_24 et_pb_equal_columns et_pb_gutters1">
				<div class="et_pb_column et_pb_column_1_3 et_pb_column_41  et_pb_css_mix_blend_mode_passthrough et_pb_column_empty">
				
				
				
				
				
			</div><div class="et_pb_column et_pb_column_2_3 et_pb_column_42  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_blurb et_pb_blurb_21  et_pb_text_align_left  et_pb_blurb_position_top et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_blurb_content">
					
					<div class="et_pb_blurb_container">
						<h2 class="et_pb_module_header"><span>We can help.</span></h2>
						<div class="et_pb_blurb_description"><p>We have <a href="https://www.symsoftsolutions.com/content-services/california-community-colleges-design-lab/">extensive experience in setting up organizations for user-centered design</a> and improving their digital assets. For all questions, please <a href="http://symsoftsolutions.com/contact/">reach out to our team of experts</a>. Our favorite approach to solving user experience problems is <a href="https://www.symsoftsolutions.com/web-design/web-design-brainstorming-through-a-google-design-sprint/" style="font-size: 16px;">Design Sprints</a>, which we utilized in award-winning projects developed for SMUD Utility, California Community Colleges, and the California Energy Commission.</p></div>
					</div>
				</div>
			</div><div class="et_pb_button_module_wrapper et_pb_button_2_wrapper et_pb_button_alignment_left et_pb_module ">
				<a class="et_pb_button et_pb_button_2 et_pb_bg_layout_light" href="https://www.symsoftsolutions.com/contact/">Contact Us for a Free Consultation</a>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
