Microsoft Articles / Blogs / Perficient https://blogs.perficient.com/category/partners/microsoft/ Expert Digital Insights Thu, 24 Apr 2025 02:33:28 +0000 en-US hourly 1 https://blogs.perficient.com/files/favicon-194x194-1-150x150.png Microsoft Articles / Blogs / Perficient https://blogs.perficient.com/category/partners/microsoft/ 32 32 30508587 The 2025 Work Trend Index Annual Report: The Year the Frontier Firm Is Born https://blogs.perficient.com/2025/04/23/the-2025-work-trend-index-annual-report-the-year-the-frontier-firm-is-born/ https://blogs.perficient.com/2025/04/23/the-2025-work-trend-index-annual-report-the-year-the-frontier-firm-is-born/#respond Thu, 24 Apr 2025 02:29:13 +0000 https://blogs.perficient.com/?p=380480

The 2025 Work Trend Index Annual Report, titled “The Year the Frontier Firm Is Born,” explores the transformative impact of AI on business and knowledge work. This comprehensive report delves into how AI is reshaping organizations, creating new roles, and redefining workflows. “Frontier Firms” are redefining how we perceive teamwork by synergizing human judgment and AI agents.

Understanding Frontier Firms

The term “Frontier Firm” refers to companies that are seamlessly integrating AI into their workforce, revolutionizing traditional operations. According to the Work Trend Index, these firms are twice as likely to be thriving as their counterparts. This success is reflected in the optimistic outlook of their employees—93% of workers in these firms feel positive about the future, compared to 77% in other companies.

Becoming a Frontier Firm

The journey to becoming a Frontier Firm involves three different levels of maturity:

  1. Human with Assistant: AI acts as an assistant, helping employees work better and faster.
  2. Human-Agent Teams: AI agents join teams as digital colleagues, taking on specific tasks at human direction.
  3. Human-Led, Agent-Operated: Humans set direction for agents that run entire business processes and workflows.

New Terms for a New World of Work

The report introduces several terms:

  • Agent: An AI-powered system that can autonomously complete tasks or workflows with human oversight.
  • Agent Boss: A human manager of one or more agents.
  • Capacity Gap: The deficit between business demands and the maximum capacity of humans alone to meet them.
  • Digital Labor: AI or agents that can be purchased on demand to scale workforce capacity.
  • Human-Agent Ratio: A business metric optimizing the balance of human oversight with agent efficiency.

Human-Agent Teams

Human-agent teams are upending traditional organizational structures. The report highlights the importance of getting the human-agent ratio right to ensure optimal performance. Leaders must balance the number of agents per person to avoid underutilization or overwhelming human capacity.

Employee Mindset

The report stresses the need for employees to adopt a thought partner mindset when working with AI. This involves treating AI as a teammate capable of initiating action, managing projects, and adapting in real time.

Rise of the Agent Boss

As AI agents join the workforce, the role of the agent boss emerges. Leaders expect their teams to redesign business processes with AI, build multi-agent systems, train agents, and manage them within five years.

Starting the Journey

The journey towards becoming a Frontier Firm doesn’t require perfection from the outset. The organizations that are thriving today are those that are not only adopting AI but are also intelligently restructuring their workflows around these technologies.

To fully leverage AI’s potential, organizations must play both offense and defense. AI can boost employee productivity and drive cost efficiencies, but it should also be used to grow revenue and cut costs. Here are some considerations as we move forward:

  1. Begin with Your Most Significant Pain Point: Determine one or two key processes that, if optimized for speed, cost, or efficiency, would significantly enhance your business operations. This method enables prioritization of AI initiatives that yield the highest impact.
  2. Play Offense and Defense: A winning AI strategy requires leveraging AI to grow revenue and cut costs. Organizations that apply AI to enhance their key differentiators will gain a competitive advantage
  3. Integrate AI with Your Company Data: For Agents to be effective, they must use your company’s data and knowledge.  It is necessary to have suitable tools like Microsoft Purview to address oversharing concerns, protect against data loss and insider risks, and govern agent activity to enforce regulations and policies.
  4. Consider a Growing Number of Agents: AI transformation is accelerating! In the last year many organizations have been focused on giving employees access to an LLM in a way that satisfies security and compliance requirements. As we progress, we will need to consider how we can secure, govern and support a growing number of agents. We should consider how solutions such as the Copilot Control System can support these efforts.

The 2025 Work Trend Index Annual Report underscores the pivotal role of AI in transforming business and knowledge work. Organizations should consider AI’s potential, redefine workflows, and prepare for a future where human-agent teams drive innovation and growth.

What will your first digital employee do?

 

You can download a copy of the 2025 Work Trend Index report here.

 

 

 

]]>
https://blogs.perficient.com/2025/04/23/the-2025-work-trend-index-annual-report-the-year-the-frontier-firm-is-born/feed/ 0 380480
Introduction and Overview Microsoft 365 Admin Center https://blogs.perficient.com/2025/04/15/introduction-and-overview-microsoft-365-admin-center/ https://blogs.perficient.com/2025/04/15/introduction-and-overview-microsoft-365-admin-center/#respond Tue, 15 Apr 2025 13:30:04 +0000 https://blogs.perficient.com/?p=379869

The Microsoft 365 Admin Center is the centralized web-based portal administrators use to manage Microsoft 365 services for their organization. It provides a single access point for managing users, licenses, apps, and services like Exchange Online, Outlook, SharePoint, Teams, and more.

Image1

Key Functions of the Admin Center

  • User Management: Add, remove, or edit user accounts and assign licenses.
  • License Management: Purchase, assign, and monitor licenses across the organization.
  • Service Health Monitoring: View the status of Microsoft services and receive incident reports.
  • Billing and Subscriptions: Manage subscriptions, payment methods, and invoices.
  • Security & Compliance: Access tools to enforce data protection, compliance policies, and user security.
  • Reports & Insights: Generate usage, adoption, and security trends reports.
  • Role-Based Access Control (RBAC): For better governance, assign different admin roles, such as Global Admin, User Admin, Billing Admin, etc.
  • Settings Configuration: Configure settings for Microsoft Teams, Exchange, and SharePoint services.

10 Best Practices for User and Group Management in Microsoft 365

Effectively managing users and groups is key to maintaining security, compliance, and operational efficiency within Microsoft 365. Below are 10 best practices to follow:

Image2

1. Follow the Principle of Least Privilege

  • Assign only the permissions a user needs to perform their job.
  • Use role-based access control (RBAC) instead of giving everyone Global Admin rights.
  • Delegated roles like User Admin, Groups Admin, Helpdesk Admin, etc., as needed.

2. Standardize User Creation

  • Use a user creation template or naming convention (e.g., firstname.lastname@company.com).
  • Automate user provisioning through tools like Azure AD Connect or Microsoft Entra ID.
  • Set password policies and MFA (Multi-Factor Authentication), and assign licenses upon creation.

3. Organize Users with Security and Microsoft 365 Groups

  • Use:
    • Microsoft 365 Groups for collaboration in Teams, Outlook, and SharePoint.
    • Security Group for resource access control (e.g., OneDrive, SharePoint).
    • -Mail-Enabled Security Groups are available when email is needed with access control.
  • Avoid group sprawl by regularly reviewing unused or duplicate groups.

4. Use Dynamic Groups Where Possible

  • Dynamic groups automatically add or remove users based on attributes such as department or job title.
  • Helps keep access rights consistent and minimizes manual errors.

5. Review and Audit Access Regularly

  • Perform periodic access reviews using Azure AD Access Reviews.
  • Audit group memberships, admin roles, and license assignments.

6. Implement Group Naming Policies

  • Create consistent and clear group names, e.g., ‘HR-Team-M365’, ‘IT-Admins.’
  • Use Entra ID (Azure AD) naming policies to enforce this automatically.

7. Monitor and Log User Activity

  • Use Microsoft 365 audit logs and Microsoft Purview to track user and admin actions.
  • Enable logging for sign-ins, password resets, file access, etc.

8. Secure Admin Accounts

  • Use Privileged Identity Management (PIM) to elevate roles only when needed.
  • Require MFA for all admin accounts.
  • Consider dedicated admin accounts separate from users’ day-to-day login accounts.

9. Use Expiration Policies for Guest Users and Groups

  • Set expiration policies to automatically clean up old groups or guest accounts.
  • Helps reduce risk and clutter in your directory.

10. Document Changes and Procedures

  • Maintain internal documentation for user/group management procedures.
  • Helps onboard new IT staff and ensures consistency across the team.

Managing Licenses and Subscriptions in the Microsoft 365 Admin Center

Image3

 

1. Accessing License and Subscription Information

  1. Sign in at [admin.microsoft.com] with admin credentials.
  2. Navigate to:
    1. Billing > Your Products – to view active subscriptions.
    2. Billing > Licenses – to view how many licenses are available, assigned, or unused.
    3. Users > Active Users – to manage user license assignments directly.

2. Assigning Licenses to Users

  1. Go to Users > Active Users.
  2. Select a user and click Licenses and Apps.
  3. You can choose the subscription (e.g., Microsoft 365 E3) and turn on/off specific apps like Teams, SharePoint, etc.
  4. Click Save changes.

3. Assigning Licenses to Groups (Recommended for Automation)

  1. Use Group-based licensing (requires Azure AD P1 or P2).
  2. Go to Groups > Active Groups.
  3. Select a security or Microsoft 365 group, then choose Licenses.
  4. Assign the desired license(s) and click Save.

Note: When users join the group, licenses are auto-assigned. When they leave, licenses are removed.

4. Managing Subscriptions

  1. Go to Billing > Your Products to:
    1. View subscription names (e.g., Microsoft 365 Business Premium).
    2. Check the number of licenses purchased and in use.
    3. Renew or cancel subscriptions.
    4. Add or reduce license count.
    5. Assign add-ons like Audio Conferencing, Defender for Office 365, etc.

5. Monitoring License Usage

  1. Navigate to Billing > Licenses to:
    1. View total vs. assigned vs. available licenses.
    2. Download usage reports.
    3. Go to Reports > Usage for more insights into how services (like Teams or OneDrive) are used.

6. Removing/Reassigning Licenses

  1. When a user leaves:
    1. Go to Users > Active Users> select the user.
    2. Remove the license and optionally delete the account.

Best practice tip: Transfer any data (email, OneDrive) before deletion or license removal.

7. Setting License Expiration Alerts

  1. Enable billing notifications under Billing > Billing Notifications.
  2. Set up alerts in Microsoft Purview or Defender for unused or about-to-expire licenses.

Role-Based Access Control (RBAC) in Microsoft 365

What is RBAC?

Role-based access Control in Microsoft 365 allows you to assign specific permissions to users based on their job roles without giving them full administrative access. This is a best practice for security, compliance, and operational efficiency.

Image4

Where is RBAC Configured?

RBAC is configured in:

  • Microsoft 365 Admin Center
  • Microsoft Entra ID (formerly Azure AD)
  • Exchange Admin Center (EAC)
  • Security & Compliance Center

Key Admin Roles in Microsoft 365

Image6

  • Global Administrator: Has full access to all M365 services and settings. Use sparingly.
  • User Administrator: Manage user accounts, groups, and licenses.
  • Group Administrator: Manage Microsoft 365 groups and distribution lists.
  • Helpdesk Administrator: Reset passwords and manage support tickets.
  • Billing Administrator: Manage subscriptions, billing, and payments.
  • Compliance Administrator: Access Microsoft Purview and Data Loss Prevention (DLP) settings.
  • Security Administrator: Manage security settings and Microsoft Defender.
  • Exchange Administrator: Configures mailboxes, transport rules, and Exchange settings.
  • SharePoint Administrator: Manage SharePoint sites and settings.
  • Teams Administrator: Configure Microsoft Teams policies, voice, and settings.

How to Assign Roles in the Microsoft 365 Admin Center

  1. Go to [admin.microsoft.com
  2. Navigate to Users > Active Users
    1. Click on the user → go to Roles
    2. Choose either:
      1. Global Admin
      2. Privileged Role
    3.  Or search for a specific role
  3. Click Save changes

Advanced RBAC with Microsoft Entra (Azure AD)

For finer control, use:

  • PIM (Privileged Identity Management): Grant “just-in-time” access to roles
  • Custom roles: Create your own roles with specific permissions
  • Administrative units (AUs): Delegate control based on geography, department, etc.

Best Practices for RBAC in Microsoft 365

  • Use the least privilege model: Minimize attack surface.
  • Assign roles to groups: Easier to manage at scale.
  • Monitor role assignments regularly: Catch role creep and misconfigurations.
  • Use PIM for elevated roles: Limit exposure of critical permissions.
  • Document who has what role: For transparency and audits.

Understanding Security & Compliance in Microsoft 365

Microsoft 365 provides robust tools under the Microsoft Purview (formerly Security & Compliance Center) and Microsoft Defender platforms to help organizations secure data, detect threats, and ensure compliance.

Image5

1. Core Security Features

Microsoft Defender for Office 365

  • Protects against phishing, malware, and ransomware
  • Features: Safe Attachments, Safe Links, Threat Investigation & Response

Multi-Factor Authentication (MFA)

  • Requires users to verify identity via a second factor (e.g., phone, app)

Conditional Access

  • Control resource access based on user location, device compliance, risk level, etc.

Identity Protection

  • Detects risky sign-ins and users using machine learning

Microsoft Defender for Endpoint

  • Advanced threat protection for devices
  • Includes endpoint detection and response (EDR)

Secure Score

  • Microsoft’s security health check for your environment
  • Recommend actions to improve your security posture

2. Compliance Features via Microsoft Purview

Data Loss Prevention (DLP)

  • Monitors and restricts sharing of sensitive data (e.g., credit card numbers, SSNs)
  • Works across Exchange, SharePoint, OneDrive, Teams

Information Protection & Sensitivity Labels

  • Classify and protect content based on its sensitivity
  • Applies encryption, watermarks, or access controls automatically

Retention Policies

  • Keeps or deletes data based on business or legal requirements
  • Applies to email, Teams, OneDrive, SharePoint

eDiscovery

  • Allows legal teams to search and preserve data for investigations or litigation

Audit Logging

  • Tracks user and admin activity (e.g., file access, sign-in attempts)
  • Essential for forensic analysis and incident response

Insider Risk Management

  • Detects potential insider threats like data leaks or policy violations

Compliance Score

  • Tracks your compliance with standards like GDPR, HIPAA, ISO 27001
]]>
https://blogs.perficient.com/2025/04/15/introduction-and-overview-microsoft-365-admin-center/feed/ 0 379869
Managed Service Offering (MSO) Support Ticketing System https://blogs.perficient.com/2025/04/10/managed-service-offering-mso-support-ticketing-system/ https://blogs.perficient.com/2025/04/10/managed-service-offering-mso-support-ticketing-system/#respond Thu, 10 Apr 2025 06:26:07 +0000 https://blogs.perficient.com/?p=379087

A ticketing system, such as a Dynamic Tracking Tool, can be a powerful tool for MSO support teams, providing a centralized and efficient way to manage incidents and service requests. Here are some more details on the benefits.

  1. Organize and triage cases: With a ticketing system, MSO support teams can easily prioritize cases based on their priority, status, and other relevant information. This allows them to quickly identify and resolve critical issues before they become major problems.
  2. Automate distribution and assignment: A ticketing system can automate the distribution and assignment of incidents to the right department staff member. This ensures that incidents are quickly and efficiently handled by the most qualified support team members.
  3. Increase collaboration: A ticketing system can increase collaboration between customer service teams and other stakeholders. It allows for easy and quick ticket assignment, collaboration in resolving issues, and real-time changes.
  4. Consolidate support needs: Using a ticketing system consolidates all support needs in one place, providing a record of customer interactions stored in the system. This allows support teams to quickly and easily access customer history, track communication, and resolve issues more effectively.
  5. Dynamics Tracking Tool: This shows various reports, such as the Real-Time Tracking Report and Historical Data Report, which are provided to monitor and analyze tracking data efficiently.

Overall, a ticketing system can help MSO support teams to be more organized, efficient, and effective in managing incidents and service requests.

Ticketchart

Benefits of a Dynamic Ticketing Management System

Benefitsofdynamics

 

  1. Prioritization: A ticketing system efficiently prioritizes incidents based on their impact on the business and their urgency. This ensures critical issues are resolved quickly, minimizing downtime and maximizing productivity.
  2. Efficiency: A ticketing system streamlines the incident management process, reducing the time and effort required to handle incidents. It allows support teams to focus on resolving issues rather than spending time on administrative tasks such as logging incidents and updating users.
  3. Collaboration: A ticketing system enables collaboration between support teams, allowing them to share information and expertise to resolve incidents more efficiently. It also enables users to collaborate with support teams, providing real-time updates and feedback on the status of their incidents.
  4. Tracking & Reporting: A ticketing system provides detailed monitoring and reporting capabilities, allowing businesses to analyze incident data and identify trends and patterns. This information can be used to identify recurring issues, develop strategies to prevent incidents from occurring, and improve the overall quality of support services.
  5. Professionalism: A ticketing system provides a professional and consistent approach to incident management, ensuring that all incidents are handled promptly and efficiently. This helps to enhance the reputation of the support team and the business as a whole.
  6. Transparency: A ticketing system provides transparency in the incident management process, allowing users to track the status of their incidents in real time. It also provides visibility into the actions taken by support teams, enabling users to understand how incidents are being resolved.
  7. Continuity: A ticketing system provides continuity in the incident management process, ensuring that incidents are handled consistently and effectively across the organization. It also ensures that incident data is captured and stored in a centralized location, providing a comprehensive view of the incident management process.

A Support System Orbits Around 3-Tiered Support

3tieredsupportsystem

Tier 1

Tier 1 tech support is typically the first level of technical support in a multi-tiered technical support model. It is responsible for handling basic customer issues and providing initial diagnosis and resolution of technical problems.

A Tier 1 specialist’s primary responsibility is to gather customer information and analyze the symptoms to determine the underlying problem. They may use pre-determined scripts or workflows to troubleshoot common technical issues and provide basic solutions.

If the issue is beyond their expertise, they may escalate it to the appropriate Tier 2 or Tier 3 support team for further investigation and resolution.

Overall, Tier 1 tech support is critical for providing initial assistance to customers and ensuring that technical issues are addressed promptly and efficiently.

Tier 2

Tier 2 support is the second level of technical support in a multi-tiered technical support model, and it typically involves more specialized technical knowledge and skills than Tier 2 support.

Tier 2 support is staffed by technicians with in-depth technical knowledge and experience troubleshooting complex technical issues. These technicians are responsible for providing more advanced technical assistance to customers, and they may use more specialized tools or equipment to diagnose and resolve technical problems.

Tier 2 support is critical for resolving complex technical issues and ensuring that customers receive high-quality technical assistance.

Tier 3

Support typically involves highly specialized technical knowledge and skills, and technicians at this level are often subject matter experts in their respective areas. They may be responsible for developing new solutions or workarounds for complex technical issues and providing training and guidance to Tier 1 and Tier 2 support teams.

In some cases, Tier 3 support may be provided by the product or service vendor, while in other cases, it may be provided by a third-party provider. The goal of Tier 3 support is to ensure that the most complex technical issues are resolved as quickly and efficiently as possible, minimizing downtime and ensuring customer satisfaction.

Overall, Tier 3 support is critical in providing advanced technical assistance and ensuring that the most complex technical problems are resolved effectively.

Determine The Importance of Tickets/Incidents/Issues/Cases

The first step in a support ticketing system is to determine the incident’s importance. This involves assessing the incident’s impact on the user and the business and assigning a priority level based on the severity of the issue.

Importanceoftickets

  1. Receiving: The step is to receive the incident report from the user. This can be done through various channels, such as email, phone, or a web-based form.
  2. Validating: This step involves validating the incident and verifying that it is a valid issue that needs to be addressed by the Support team.
  3. Logging: Once the incident has been validated, it is logged into an incident application, which is used to track and manage it throughout the process.
  4. Screening: The next step is to screen the incident and determine the user’s symptoms. This involves asking questions to gather more information about the issue and to identify any patterns or trends that may help resolve the incident.
  5. Prioritizing: Once the symptoms have been identified, the next step is to prioritize the incident based on its impact on the user and the business.
  6. Assigning: After the incident has been prioritized, it is assigned to a support team that will handle it. If the support team cannot handle the incident, it is escalated to a higher-level tier.
  7. Escalating: If the incident requires more advanced expertise or resources, it is escalated to a higher-level tier where it can be resolved more effectively.
  8. Resolving: The support team or higher-level tier works on resolving the incident and provides updates to the user until the issue is resolved.
  9. Closing: Once the incident has been resolved, the ticket is closed by logging the resolution and changing the ticket status to indicate that the incident has been successfully resolved.

Summary

Ticketing systems are essential for businesses that want to manage customer service requests efficiently. These systems allow customers to submit service requests, track the progress of their requests, and receive updates when their requests are resolved. The ticketing system also enables businesses to assign service requests to the appropriate employees or teams and prioritize them based on urgency or severity. This helps streamline workflow and ensure service requests are addressed promptly and efficiently. Additionally, ticketing systems can provide valuable insights into customer behavior, allowing businesses to identify areas where they can improve their products or services.

]]>
https://blogs.perficient.com/2025/04/10/managed-service-offering-mso-support-ticketing-system/feed/ 0 379087
Log Framework Integration in Azure Functions with Azure Cosmos DB https://blogs.perficient.com/2025/04/02/log-framework-integration-in-azure-functions-with-azure-cosmos-db/ https://blogs.perficient.com/2025/04/02/log-framework-integration-in-azure-functions-with-azure-cosmos-db/#respond Wed, 02 Apr 2025 09:30:54 +0000 https://blogs.perficient.com/?p=379516

Introduction

Logging is an essential part of application development, especially in cloud environments where monitoring and debugging are crucial. In Azure Functions, there is no built-in provision to log application-level details into a centralized database, making it challenging to check logs every time in the Azure portal. This blog focuses on integrating NLog into Azure Functions to store all logs in a single database (Cosmos DB), ensuring a unified logging approach for better monitoring and debugging.

Steps to Integrate Logging Framework

Integration steps

 

1. Create an Azure Function Project

Begin by creating an Azure Function project using the Azure Function template in Visual Studio.

2. Install Required Nuget Packages

To enable logging using NLog, install the following NuGet packages:Function App Explorer

Install-Package NLog
Install-Package NLog.Extensions.Logging
Install-Package Microsoft.Azure.Cosmos

 

 

3. Create and Configure Nlog.config

NLog uses an XML-based configuration file to define logging targets and rules. Create a new file named Nlog.config in the project root and configure it with the necessary settings.

Refer to the official NLog documentation for database target configuration: NLog Database Target

Important: Set Copy to Output Directory to Copy Always in the file properties to ensure deployment.

N Log Config Code

 

4. Create Log Database

Create an Azure Cosmos DB account with the SQL API.

Sample Cosmos DB Database and Container

  1. Database Name: LogDemoDb
  2. Container Name: Logs
  3. Partition Key: /Application

5. Define Necessary Variables

In the local.settings.json file, define the Cosmos DB connection string.

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "CosmosDBConnectionString": "AccountEndpoint=https://your-cosmosdb.documents.azure.com:443/;AccountKey=your-account-key;"
  }
}

Json App Settings

 

6. Configure NLog in Startup.cs

Modify Startup.cs to configure NLog and instantiate database connection strings and log variables.

using Microsoft.Azure.Functions.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using NLog.Extensions.Logging;
using Microsoft.Azure.Cosmos;

[assembly: FunctionsStartup(typeof(MyFunctionApp.Startup))]
namespace MyFunctionApp
{
    public class Startup : FunctionsStartup
    {
        public override void Configure(IFunctionsHostBuilder builder)
        {
            builder.Services.AddLogging(loggingBuilder =>
            {
                loggingBuilder.ClearProviders();
                loggingBuilder.SetMinimumLevel(LogLevel.Information);
                loggingBuilder.AddNLog();
            });

            builder.Services.AddSingleton(new CosmosClient(
                Environment.GetEnvironmentVariable("CosmosDBConnectionString")));
        }
    }
}

Startup Code

 

7. Add Logs in Necessary Places

To ensure efficient logging, add logs based on the following log level hierarchy:

Log Levels

Example Logging in Function Code:

 

using System;
using System.Threading.Tasks;
using Microsoft.Azure.Cosmos;
using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;

public class MyFunction
{
    private readonly ILogger<MyFunction> _logger;
    private readonly CosmosClient _cosmosClient;
    private readonly Container _container;

    public MyFunction(ILogger<MyFunction> logger, CosmosClient cosmosClient)
    {
        _logger = logger;
        _cosmosClient = cosmosClient;

        // Initialize Cosmos DB container
        _container = _cosmosClient.GetContainer("YourDatabaseName", "YourContainerName");
    }

    [FunctionName("MyFunction")]
    public async Task Run([TimerTrigger("0 */5 * * * *")] TimerInfo myTimer)
    {
        var logEntry = new
        {
            id = Guid.NewGuid().ToString(),
            timestamp = DateTime.UtcNow,
            logLevel = "Information",
            message = "Function executed at " + DateTime.UtcNow
        };

        // Insert log into Cosmos DB
        await _container.CreateItemAsync(logEntry, new PartitionKey(logEntry.id));

        _logger.LogInformation("Function executed at {time}", DateTime.UtcNow);
    }
}

8. Deployment

Once the function is ready, deploy it to Azure Function App using Visual Studio or Azure DevOps.

Deployment Considerations:

  • Define necessary environment variables in Azure Function Configuration Settings.
  • Ensure Azure Function App Service and SQL Database are in the same network to avoid connection issues.
  • Monitor logs using Application Insights for additional diagnostics.

Conclusion

By following these steps, you can successfully integrate NLog into your Azure Functions for efficient logging. This setup enables real-time monitoring, structured log storage, and improved debugging capabilities.

]]>
https://blogs.perficient.com/2025/04/02/log-framework-integration-in-azure-functions-with-azure-cosmos-db/feed/ 0 379516
Power Fx in Power Automate Desktop https://blogs.perficient.com/2025/03/25/power-fx-in-power-automate-desktop/ https://blogs.perficient.com/2025/03/25/power-fx-in-power-automate-desktop/#respond Wed, 26 Mar 2025 04:52:50 +0000 https://blogs.perficient.com/?p=379147

Power Fx Features

Power Fx is a low-code language expressing logic across the Microsoft Power Platform. It’s a general-purpose, strong-typed, declarative, and functional programming language described in human-friendly text. Makers can use Power Fx directly in an Excel-like formula bar or Visual Studio Code text window. Its concise and straightforward nature makes everyday programming tasks easy for both makers and developers.

Power Fx is expressed in human-friendly text. It’s a low-code language that makers can use directly in an Excel-like formula bar or Visual Studio Code text window. The “low” in low-code is due to the concise and straightforward nature of the language, making everyday programming tasks easy for both makers and developers.

Power Fx enables the full spectrum of development, from no-code makers without any programming knowledge to pro-code for professional developers. It enables diverse teams to collaborate and save time and effort.

Using Power Fx in Desktop Flow

To use Power Fx as an expression language in a desktop flow, you must create one and enable the respective toggle button when creating it through Power Automate for the desktop’s console.

Picture1

Differences in Power Fx-Enabled Flows

Each Power Fx expression must start with an “=” (equals to sign).

If you’re transitioning from flows where Power Fx is disabled, you might notice some differences. To streamline your experience while creating new desktop flows, here are some key concepts to keep in mind:

  • In the same fashion as Excel formulas, desktop flows that use Power Fx as their expression language use 1 (one) based array indexing instead of 0 (zero) based indexing. For example, expression =Index(numbersArray, 1) returns the first element of the numbersArray array.
  • Variable names are case-sensitive in desktop flows with Power Fx. For example, NewVar is different than newVar.
  • When Power Fx is enabled in a desktop flow, variable initialization is required before use. Attempting to use an uninitialized variable in Power Fx expressions results in an error.
  • The If action accepts a single conditional expression. Previously, it accepted multiple operands.
  • While flows without Power Fx enabled have the term “General value” to denote an unknown object type, Power Fx revolves around a strict type system. In Power Fx enabled flows, there’s a distinction between dynamic variables (variables whose type or value can be changed during runtime) and dynamic values (values whose type or schema is determined at runtime). To better understand this distinction, consider the following example. The dynamicVariable changes its type during runtime from a Numeric to a Boolean value, while dynamicValue is determined during runtime to be an untyped object, with its actual type being a Custom object:

With Power Fx Enabled

Picture2

With Power Fx Disabled

Picture3

  • Values that are treated as dynamic values are:
    • Data tables
    • Custom objects with unknown schema
    • Dynamic action outputs (for example, the “Run .NET Script” action)
    • Outputs from the “Run desktop flow” action
    • Any action output without a predefined schema (for example, “Read from Excel worksheet” or “Create New List”)
  • Dynamic values are treated similarly to the Power Fx Untyped Object and usually require explicit functions to be converted into the required type (for example, Bool() and Text()). To streamline your experience, there’s an implicit conversion when using a dynamic value as an action input or as a part of a Power Fx expression. There’s no validation during authoring, but depending on the actual value during runtime, a runtime error occurs if the conversion fails.
  • A warning message stating “Deferred type provided” is presented whenever a dynamic variable is used. These warnings arise from Power Fx’s strict requirement for strong-typed schemas (strictly defined types). Dynamic variables aren’t permitted in lists, tables, or as a property for Record values.
  • By combining the Run Power Fx expression action with expressions using the Collect, Clear, ClearCollect, and Patch functions, you can emulate behavior found in the actions Add item to list and Insert row into data table, which were previously unavailable for Power Fx-enabled desktop flows. While both actions are still available, use the Collect function when working with strongly typed lists (for example, a list of files). This function ensures the list remains typed, as the Add Item to List action converts the list into an untyped object.

Examples

  • The =1 in an input field equals the numeric value 1.
  • The = variableName is equal to the variableName variable’s value.
  • The expression = {‘prop’:”value”} returns a record value equivalent to a custom object.
  • The expression = Table({‘prop’:”value”}) returns a Power Fx table that is equivalent to a list of custom objects.
  • The expression – = [1,2,3,4] creates a list of numeric values.
  • To access a value from a List, use the function Index(var, number), where var is the list’s name and number is the position of the value to be retrieved.
  • To access a data table cell using a column index, use the Index() function. =Index(Index(DataTableVar, 1), 2) retrieves the value from the cell in row 1 within column 2. =Index(DataRowVar, 1) retrieves the value from the cell in row 1.
  • Define the Collection Variable:

Give your collection a name (e.g., myCollection) in the Variable Name field.

In the Value field, define the collection. Collections in PAD are essentially arrays, which you can define by enclosing the values in square brackets [ ].

1. Create a Collection of Numbers

Action: Set Variable

Variable Name: myNumberCollection

Value: [1, 2, 3, 4, 5]

2. Create a Collection of Text (Strings)

Action: Set Variable

Variable Name: myTextCollection

Value: [“Alice”, “Bob”, “Charlie”]

3. Create a Collection with Mixed Data Types

You can also create collections with mixed data types. For example, a collection with both numbers and strings:

Action: Set Variable

Variable Name: mixedCollection

Value: [1, “John”, 42, “Doe”]

  • To include an interpolated value in an input or a UI/web element selector, use the following syntax: Text before ${variable/expression} text after
    • Example: The total number is ${Sum(10, 20)}

 If you want to use the dollar sign ($) followed by a opening curly brace sign ({) within a Power Fx expression or in the syntax of a UI/Web element selector and have Power Automate for desktop not treat it as the string interpolation syntax, make sure to follow this syntax: $${ (the first dollar sign will act as an escape character)

Available Power Fx functions

For the complete list of all available functions in Power Automate for desktop flows, go to Formula reference – desktop flows.

Known Issues and Limitations

  • The following actions from the standard library of automation actions aren’t currently supported:
    • Switch
    • Case
    • Default case
  • Some Power Fx functions presented through IntelliSense aren’t currently supported in desktop flows. When used, they display the following design-time error: “Parameter ‘Value’: PowerFx type ‘OptionSetValueType’ isn’t supported.”

 

When and When Not to Use Power Fx on Desktop

When to Use Power Fx in Power Automate Desktop

  1. Complex Logic: If you need to implement more complicated conditions, calculations, or data transformations in your flows, Power Fx can simplify the process.
  2. Integration with Power Apps: If your automations are closely tied to Power Apps and you need consistent logic between them, Power Fx can offer a seamless experience as it’s used across the Power Platform.
  3. Data Manipulation: Power Fx excels at handling data operations like string manipulation, date formatting, mathematical operations, and more. It may be helpful if your flow requires manipulating data in these ways.
  4. Reusability: Power Fx functions can be reused in different parts of your flow or other flows, providing consistency and reducing the need for redundant logic.
  5. Low-Code Approach: If you’re building solutions that require a lot of custom logic but don’t want to dive into full-fledged programming, Power Fx can be a good middle ground.

When Not to Use Power Fx in Power Automate Desktop

  1. Simple Flows: For straightforward automation tasks that don’t require complex expressions (like basic UI automation or file manipulations), using Power Fx could add unnecessary complexity. It’s better to stick with the built-in actions.
  2. Limited Support in Desktop: While Power Fx is more prevalent in Power Apps, Power Automate Desktop doesn’t fully support all Power Fx features available in other parts of the Power Platform. If your flow depends on more advanced Power Fx capabilities, it might be limited in Power Automate Desktop.
  3. Learning Curve: Power Fx has its own syntax and can take time to get used to, mainly if you’re accustomed to more traditional automation methods. If you’re new to it, you may want to weigh the time it takes to learn Power Fx versus simply using the built-in features in Power Automate Desktop.

Conclusion

Yes, use Power Fx if your flow needs custom logic, data transformation, or integration with Power Apps and you’re comfortable with the learning curve.

No, avoid it if your flows are relatively simple or if you’re primarily focused on automation tasks like file manipulation, web scraping, or UI automation, where Power Automate Desktop’s native features will be sufficient.

]]>
https://blogs.perficient.com/2025/03/25/power-fx-in-power-automate-desktop/feed/ 0 379147
Accelerating Innovation – Enabling App Developers to Build Faster with GitHub Copilot https://blogs.perficient.com/2025/03/24/accelerating-innovation-enabling-app-developers-to-build-faster-with-github-copilot/ https://blogs.perficient.com/2025/03/24/accelerating-innovation-enabling-app-developers-to-build-faster-with-github-copilot/#respond Mon, 24 Mar 2025 21:09:32 +0000 https://blogs.perficient.com/?p=379123

Boosting Developer Productivity with AI-Powered Coding 

In the ever-evolving world of software development, efficiency is key. App developers must balance shipping high-quality features quickly while maintaining code integrity and performance. The rise of AI-driven development tools like GitHub Copilot is transforming the way code is written—boosting productivity and allowing developers to focus on what truly matters: innovation. 

The Developer’s Dilemma: Speed vs. Quality 

Every developer faces the challenge of delivering features quickly without sacrificing code quality. Businesses demand rapid feature releases to remain competitive, but writing robust, scalable, and error-free code takes time— often leading to technical debt, extended debugging cycles, and software delivery bottlenecks. 

GitHub Copilot is changing the equation. By leveraging AI-driven coding assistance, developers can work smarter, not harder—bridging the gap between speed and quality without compromise. 

AI-Powered Coding in Action: How Copilot Enhances Development 

Imagine you’re tasked with setting up an API integration for a new feature. Instead of manually writing boilerplate code, you simply prompt GitHub Copilot: 

“Copilot, I need to set up an API integration for our new feature. Can you get me started on the structure?” 

Instantly, Copilot generates the framework, providing essential functions and error handling. It doesn’t stop there—it proactively suggests performance optimizations and asks: 

“Shall I enhance error management to handle specific edge cases?” 

This level of AI-driven code assistance transforms software development workflows. With GitHub Copilot handling repetitive coding tasks, developers can concentrate on building custom features that differentiate their applications. 

The Business Impact of AI-Powered Software Development 

From a business perspective, the benefits of AI-driven development tools extend beyond individual productivity gains: 

  • Faster Time-to-Market – AI-assisted coding accelerates feature development, enabling businesses to release updates more frequently. 
  • Reduced Technical Debt – Built-in AI optimizations and best practices ensure cleaner, more maintainable code. 
  • Empowered Developers – Engineers spend less time on boilerplate code and more time on solving complex problems. 

The Future of AI-Powered Software Engineering 

AI-driven development tools like GitHub Copilot are not just the future—they are the present. As AI evolves, developers will increasingly shift from manual coding to strategic problem-solving, driving greater innovation across industries. 

At Perficient, we help organizations unlock the full potential of AI in software development, integrating these tools to build faster, smarter, and more resilient applications. 

Ready to Code Smarter? Try GitHub Copilot Today

GitHub Copilot is more than just an assistant—it’s a force multiplier for developers. If you’re looking to accelerate software development and enhance coding efficiency, now is the time to explore how Copilot can transform your workflow. 

Stay Tuned for More on AI-Driven Development 

This blog is part of a larger conversation on how Microsoft Copilot is transforming the workplace. Our latest video showcases Copilot’s impact across various business roles—including this app developer use case—demonstrating how AI is driving efficiency and innovation. 

If you’d like to explore how AI can enhance your development workflow, let’s connect! 

]]>
https://blogs.perficient.com/2025/03/24/accelerating-innovation-enabling-app-developers-to-build-faster-with-github-copilot/feed/ 0 379123
Enhancing Business Efficiency with AI: An Introduction to Copilot Agents https://blogs.perficient.com/2025/03/18/enhancing-business-efficiency-with-ai-an-introduction-to-copilot-agents/ https://blogs.perficient.com/2025/03/18/enhancing-business-efficiency-with-ai-an-introduction-to-copilot-agents/#comments Tue, 18 Mar 2025 23:43:35 +0000 https://blogs.perficient.com/?p=378865

Introduction to Copilot Agents

In today’s fast-paced digital landscape, efficiency and productivity are paramount. Customizing AI to meet your business needs is key to maintaining a competitive edge. Enter Copilot Agents – specialized intelligent AI assistants designed to streamline workflows by automating repetitive tasks, providing actionable insights, and seamlessly integrating with your existing tools and data sources. Whether you’re managing projects, supporting customers, or conducting research, Copilot Agents empower you to achieve more with less effort.

Copilot agents are now available on the Web and Work tabs of Copilot Chat, in addition to other workflows and tools you already use.

You can use pre-built agents, agents created by others in your organization, or create your own.

Picture1

Benefits of Using Copilot Agents

Copilot Agents offer a range of business benefits that can significantly enhance operations and drive growth. Here are some key advantages:

  1. Increased Efficiency: By automating repetitive and time-consuming tasks, these agents free up employees to focus on more strategic and creative activities, boosting overall productivity.
  2. Cost Savings: Automation reduces the need for manual labor, which can lead to significant cost savings in terms of both time and resources.
  3. Improved Accuracy: AI agents can minimize human errors in data processing and other tasks, ensuring higher accuracy and reliability.
  4. Enhanced Customer Experience: Autonomous agents can handle customer inquiries and support efficiently, providing quick and accurate responses, which improves customer satisfaction.
  5. Scalability: These agents can easily scale operations to meet growing business demands without the need for proportional increases in human resources.
  6. Data-Driven Insights: By analyzing large volumes of data, autonomous agents can provide valuable insights and recommendations, helping businesses make informed decisions.

Use Cases for Copilot Agents

The versatility and potential use cases for Copilot Agents is vast:

Category Use Case Description
Healthcare Patient Management Automate patient scheduling, reminders, and follow-ups to ensure timely care and reduce administrative workload.
Medical Research Assist in compiling and analyzing research data, generating reports, and identifying trends in medical studies.
Telemedicine Facilitate virtual consultations by managing appointments, patient records, and follow-up actions.
Finance Fraud Detection Monitor transactions for suspicious activity and alert relevant personnel for further investigation.
Financial Planning Automate budget management, financial forecasting, and investment analysis to optimize financial strategies.
Customer Support Handle customer inquiries, process transactions, and provide personalized financial advice.
Retail Inventory Management Track stock levels, predict demand, and automate reordering processes to ensure optimal inventory levels.
Customer Engagement Provide personalized shopping experiences, recommend products, and handle customer inquiries.
Sales Optimization Analyze sales data, identify trends, and suggest strategies to boost sales and improve customer satisfaction.
Manufacturing Production Planning Automate scheduling, resource allocation, and workflow management to optimize production processes.
Quality Control Monitor production quality, identify defects, and suggest corrective actions to maintain high standards.
Supply Chain Management Track shipments, manage supplier relationships, and optimize logistics to ensure timely delivery.
Education Student Support Assist with enrollment, course selection, and academic advising to enhance the student experience.
Research Assistance Compile research data, generate reports, and provide insights to support academic research.
Administrative Tasks Automate administrative processes such as scheduling, record-keeping, and communication with students and faculty.
Human Resources Recruitment Automate candidate screening, interview scheduling, and onboarding processes to streamline recruitment.
Employee Management Handle employee inquiries, manage records, and assist with performance evaluations.
Training and Development Provide personalized training recommendations, track progress, and suggest development opportunities.
Customer Service Support Ticket Management Automate ticket routing, response generation, and resolution tracking to improve customer support efficiency.
Feedback Analysis Analyze customer feedback, identify trends, and suggest improvements to enhance customer satisfaction.
Virtual Assistants Provide instant responses to customer inquiries, guide them through processes, and offer personalized assistance using AI-driven automation tools.

 

Explore Existing Agents

Agents can be found in the app store in Microsoft Teams, the Microsoft 365 Copilot app, Microsoft 365 Apps like Word or Excel, or the web and work tabs of Copilot Chat.

  • From Copilot in Teams or the Microsoft 365 Copilot app, select Get agents on the right-side panel to explore agents in the app store.
  • From Microsoft 365 Apps select Add-ins > More Add-ins then select the Agents category from the menu.

Picture2

Getting Started

Microsoft offers several tools to help you create your own agent, including:

  1. Copilot Studio Agent Builder: This tool provides a simple interface to build agents using natural language or manual configuration. You can describe your agent’s behavior conversationally or configure it directly.
  2. Copilot Chat Agent Builder: This no-code interface allows you to create personalized agents easily. You can describe your agent’s functions, add knowledge sources, and test them in real-time.

These tools are designed to be user-friendly and flexible, enabling you to create agents tailored to your specific needs without requiring extensive coding knowledge.

Microsoft provides many pre-built agents and agent templates to get you started! Here is a list of some of the agents:

Category Agent Description
Project Management Project Manager Automates project management in Planner.
Customer Support Website Q&A Answers common questions from users using your website content.
IT Helpdesk Resolves issues and creates/view support tickets.
Case Management Offers automated support and creates cases.
Self-Help Helps customer service agents resolve issues faster.
Customer KM Agent Keeps knowledge articles up to date.
Case Management Agent Automates tasks through the case life cycle.
Virtual Assistants Provide instant responses to customer inquiries, guide them through processes, and offer personalized assistance using AI-driven automation tools.
Retail and Store Operations Store Operations Provides access to store procedures and policies.
Travel and Health Safe Travels Answers travel questions and health guidelines.
Wellness Check Conducts automated wellness checks.
Human Resources Benefits Shares personalized employee benefits information.
Awards and Recognition Streamlines employee recognition processes.
Leave Management Manages leave requests and time-off processes.
Employee Self-Service Agent Answers policy questions and performs HR/IT tasks.
Career Coach Personalized career advice and action plans.
Sustainability Sustainability Insights Provides insights on sustainability goals.
Government Citizen Services Assists citizens with information about services.
Finance Financial Insights Retrieves information from financial documents.
Finance Reconciliation Agent Simplifies the financial period close process.
Account Reconciliation Agent Match and clear transactions.
Time and Expense Agent Manages time entry and expense tracking.
Sales and Marketing Sales Qualification Agent Focuses on high-priority sales opportunities.
Sales Order Agent Automates the order intake process.
Supplier Communications Agent Manages collaboration with suppliers.
Customer Intent Agent Discovers new intents from customer conversations.
Scheduling Operations Agent Provides optimized schedules for technicians.
Sales Chat Accelerates the sales cycle with insights from CRM data, pitch decks, meeting notes, emails, and the web.
Sales Agent Qualifies new leads, contacts customers, sets up meetings, and closes small deals.
Sales Research Agent Offers a natural language interface for querying data and generating real-time dashboards and insights.

To summarize, Copilot Agents are specialized AI assistants designed to enhance efficiency and productivity by automating repetitive tasks, providing insightful suggestions, and integrating seamlessly with existing tools and data sources. They offer a range of business benefits, including increased efficiency, cost savings, improved accuracy, enhanced customer experience, scalability, and data-driven insights. With versatile use cases across various industries such as healthcare, finance, retail, manufacturing, education, human resources, and customer service, Copilot Agents can significantly enhance operations and drive growth. Microsoft provides many pre-built agents and templates to help organizations get started quickly and tailor agents to their specific needs, making it easier to leverage the power of AI in the digital age.

Ready to transform your business with Copilot Agents? Contact us for more information on Microsoft Copilot Studio and how these AI assistants can improve your workflow and support your organization’s goals.

]]>
https://blogs.perficient.com/2025/03/18/enhancing-business-efficiency-with-ai-an-introduction-to-copilot-agents/feed/ 2 378865
Responsible Design Starts within the Institution https://blogs.perficient.com/2025/03/08/responsible-design-starts-within-the-institution/ https://blogs.perficient.com/2025/03/08/responsible-design-starts-within-the-institution/#respond Sat, 08 Mar 2025 18:17:11 +0000 https://blogs.perficient.com/?p=378321

The global business landscape is complex, and responsible design has emerged as a critical imperative for organizations across sectors. It represents a fundamental shift from viewing design merely as a creative output to recognizing it as an ethical responsibility embedded within institutional structures and processes.

True transformation toward responsible design practices cannot be achieved through superficial initiatives or isolated projects. Rather, it requires deep institutional commitment—reshaping governance frameworks, decision-making processes, and organizational cultures to prioritize human dignity, social equity, and environmental stewardship.

This framework explores how institutions can move beyond performative gestures toward authentic integration of responsible design principles throughout their operations, creating systems that consistently produce outcomes aligned with broader societal values and planetary boundaries.

The Institutional Imperative

What is Responsible Design?
Responsible design is the deliberate creation of products, services, and systems that prioritize human wellbeing, social equity, and environmental sustainability. While individual designers often champion ethical approaches, meaningful and lasting change requires institutional transformation. This framework explores how organizations can systematically embed responsible design principles into their core structures, cultures, and everyday practices.

Why Institutions Matter
The imperative for responsible design within institutions stems from their unique position of influence. Institutions have extensive reach, making their design choices impactful at scale. They establish standards and expectations for design professionals, effectively shaping the future direction of the field. Moreover, integrating responsible design practices yields tangible benefits: enhanced reputation, stronger stakeholder relationships, and significantly reduced ethical and operational risks.

Purpose of This Framework
This article examines the essential components of responsible design, showcases institutions that have successfully implemented ethical design practices, and provides practical strategies for navigating the challenges of organizational transformation. By addressing these dimensions systematically, organizations can transcend isolated ethical initiatives to build environments where responsible design becomes the institutional default—creating cultures where ethical considerations are woven into every decision rather than treated as exceptional concerns.

Defining Responsible Design
Responsible design encompasses four interconnected dimensions: ethical consideration, inclusivity, sustainability, and accountability. These dimensions form a comprehensive framework for evaluating the ethical, social, and environmental implications of design decisions, ultimately ensuring that design practices contribute to a more just and sustainable world.

Interconnected Dimensions
These four dimensions function not as isolated concepts but as integrated facets of a holistic approach to responsible design. Ethical consideration must guide inclusive practices to ensure diverse stakeholder perspectives are genuinely valued and incorporated. Sustainability principles should drive robust accountability measures that minimize environmental harm while maximizing social benefit. By weaving these dimensions together throughout the design process, institutions can cultivate a design culture that authentically champions human wellbeing, social equity, and environmental stewardship in every project.

A Framework for the Future
This framework serves as both compass and blueprint, guiding institutions toward design practices that meaningfully contribute to a more equitable and sustainable future. When organizations fully embrace these dimensions of responsible design, they align their creative outputs with their deepest values, enhance their societal impact, and participate in addressing our most pressing collective challenges. The result is design that not only serves immediate business goals but also advances the greater good across communities and generations.

Ethical Consideration

Understanding Ethical Design
Ethical consideration: A thoughtful evaluation of implications across diverse stakeholders. This process demands a comprehensive assessment of how design decisions might impact various communities, particularly those who are vulnerable or historically overlooked. Responsible designers must look beyond intended outcomes to anticipate potential unintended consequences that could emerge from their work.

Creating Positive Social Impact
Beyond harm prevention, ethical consideration actively pursues opportunities for positive social impact. This might involve designing solutions that address pressing social challenges or leveraging design to foster inclusion and community empowerment. When institutions weave ethical considerations throughout their design process, they position themselves to contribute meaningfully to social equity and justice through their creations.

Implementation Strategies
Organizations can embed ethical consideration into their practices through several concrete approaches: establishing dedicated ethical review panels, conducting thorough stakeholder engagement sessions, and developing robust ethical design frameworks. By placing ethics at the center of design decision-making, institutions ensure their work not only reflects their core values but also advances collective wellbeing across society.

Inclusive Practices

Understanding Inclusive Design
Inclusive practices: Creating designs that meaningfully serve and represent all populations, particularly those historically marginalized. This approach demands that designers actively seek diverse perspectives, challenge their inherent biases, and develop solutions that transcend physical, cognitive, cultural, and socioeconomic barriers. By centering previously excluded voices, inclusive design creates more robust and universally beneficial outcomes.

Empowering Marginalized Communities
True inclusive design transcends mere accommodation—it fundamentally shifts power dynamics by elevating marginalized communities from subjects to co-creators. This transformation might involve establishing paid consulting opportunities for community experts, creating accessible design workshops in underserved neighborhoods, or forming equitable partnerships where decision-making authority is genuinely shared. When institutions embrace these collaborative approaches, they produce designs that authentically address community needs while building lasting relationships based on mutual respect and shared purpose.

Implementation Strategies
Organizations can systematically embed inclusive practices by recruiting design teams that reflect diverse lived experiences, conducting immersive community-based research with appropriate compensation for participants, and establishing measurable inclusive design standards with accountability mechanisms. By integrating these approaches throughout their processes, institutions not only create more accessible and equitable designs but also contribute to dismantling systemic barriers that have historically limited full participation in society.

Sustainability

Definition and Core Principles
Sustainability: Minimizing environmental impact and resource consumption across the entire design lifecycle. This comprehensive approach spans from raw material sourcing through to end-of-life disposal, challenging designers to eliminate waste, preserve natural resources, and significantly reduce pollution. Sustainable design necessitates careful consideration of long-term environmental consequences, including addressing critical challenges like climate change, habitat destruction, and biodiversity loss.

Beyond Harm Reduction
True sustainability transcends mere harm reduction to actively generate positive environmental outcomes. This transformative approach creates products and services that harness renewable energy, conserve vital water resources, or restore damaged ecosystems. When institutions fully embrace sustainability principles, they contribute meaningfully to environmental resilience and help foster regenerative systems that benefit both present and future generations.

Implementation Strategies
Organizations can embed sustainability through strategic, measurable approaches including rigorous lifecycle assessments, integrated eco-design methodologies, and significant investments in renewable energy infrastructure and waste reduction technologies. By elevating sustainability to a core organizational value, institutions can dramatically reduce their ecological footprint while simultaneously driving innovation and contributing to planetary health and wellbeing.

Accountability

Definition and Core Principles
Accountability: Taking ownership of both intended and unintended outcomes of design decisions. This principle demands establishing robust systems for monitoring and evaluating design impacts, along with mechanisms for corrective action when necessary. Accountable designers maintain transparency throughout their process, actively seek stakeholder feedback, and acknowledge responsibility for any negative consequences, even those that were unforeseen. This foundation of responsibility ensures designs serve their intended purpose while minimizing potential harm.

Learning and Growth
True accountability transcends mere acknowledgment of errors—it transforms mistakes into catalysts for improvement. This transformative process involves critically examining design failures, implementing process refinements, enhancing designer training, and establishing more comprehensive ethical frameworks. When institutions embrace accountability as a pathway to excellence rather than just a response to failure, they cultivate stakeholder trust while continuously elevating the quality and integrity of their design practices.

Implementation Strategies
Organizations can foster a culture of accountability by establishing well-defined responsibility chains, implementing comprehensive monitoring systems, and creating accessible channels for feedback and remediation. Effective implementation includes regular ethical audits, transparent reporting practices, and systematic incorporation of lessons learned. By prioritizing accountability at every organizational level, institutions ensure their designs consistently uphold ethical standards, promote inclusivity, and advance sustainability goals.

Patagonia’s Environmental Responsibility

Environmental Integration in Design
Patagonia has revolutionized responsible design by weaving environmental considerations into the fabric of its product development process. The company’s groundbreaking “Worn Wear” program—which actively encourages repair and reuse over replacement—emerged organically from the organization’s core values rather than as a response to market trends. Patagonia’s governance structure reinforces this commitment through rigorous environmental impact assessments at every design stage, ensuring sustainability remains central rather than peripheral to innovation.

Sustainability Initiatives
Patagonia demonstrates unwavering environmental responsibility through comprehensive initiatives that permeate all aspects of their operations. The company has pioneered the use of recycled and organic materials in outdoor apparel, dramatically reduced water consumption through innovative manufacturing processes, and committed to donating 1% of sales to grassroots environmental organizations, a pledge that has generated over $140 million in grants to date. These initiatives represent the concrete manifestation of Patagonia’s mission rather than superficial corporate social responsibility efforts.

Environmental Leadership as a Competitive Advantage
Patagonia’s remarkable business success powerfully illustrates how environmental responsibility can create lasting competitive advantage in the marketplace. By elevating environmental considerations from afterthought to guiding principle, the company has cultivated a fiercely loyal customer base willing to pay premium prices for products aligned with their values. Patagonia’s approach has redefined industry standards for sustainable business practices, serving as a compelling case study for organizations seeking to integrate responsible design into their operational DNA while achieving exceptional business results.

IDEO’s Human-Centered Evolution

Organizational Restructuring
IDEO transformed from a traditional product design firm into a responsible design leader through deliberate organizational change. The company revolutionized its project teams by integrating ethicists and community representatives alongside designers, ensuring diverse perspectives influence every creation. Their acclaimed “Little Book of Design Ethics” now serves as the foundational document guiding all projects, while their established ethics review board rigorously evaluates proposals against comprehensive responsible design criteria before approval.

Ethical Integration in Design Process
IDEO’s evolution exemplifies the critical importance of embedding ethical considerations throughout the design process. By incorporating ethicists and community advocates directly into project teams, the company ensures that marginalized voices are heard, and ethical principles shape all design decisions from conception to implementation. The “Little Book of Design Ethics” functions not simply as a reference manual but as a living framework that empowers designers to navigate complex ethical challenges with confidence and integrity.

Cultural Transformation
IDEO’s remarkable journey demonstrates that responsible design demands a fundamental cultural shift within organizations. The company has cultivated an environment where ethical awareness and accountability are celebrated as core values rather than compliance requirements. By prioritizing human impact alongside business outcomes, IDEO has established itself as the preeminent leader in genuinely human-centered design. Their case offers actionable insights for institutions seeking to implement responsible design practices while maintaining innovation and market leadership.

Addressing Resistance to Change
Institutional transformation inevitably encounters resistance. Change disrupts established routines and challenges comfort zones, often triggering reactions ranging from subtle hesitation to outright opposition. Overcoming this resistance requires thoughtful planning, transparent communication, and meaningful stakeholder engagement throughout the process.

Why People Resist Change
Resistance typically stems from several key factors:
• Fear of the unknown and potential failure
• Perceived threats to job security, status, or expertise
• Skepticism about the benefits compared to required effort
• Attachment to established processes and organizational identity
• Past negative experiences with change initiatives

Effective Strategies for Change Management
• Phased implementation with clearly defined pilot projects that demonstrate value
• Identifying and empowering internal champions across departments to model and advocate for new approaches
• Creating safe spaces for constructive critique of existing practices without blame
• Developing narratives that connect responsible design to institutional identity and core values

Keys to Successful Transformation
By implementing these strategies, institutions can cultivate an environment that embraces rather than resists change. Transparent communication creates trust, active stakeholder engagement fosters ownership, and focusing on shared values helps align diverse perspectives. When people understand both the rationale for change and their role in the transformation process, resistance diminishes and the foundation for responsible design practices strengthens.

Balancing Competing Priorities
The complex tension between profit motives and ethical considerations demands sophisticated strategic approaches. Modern institutions navigate a challenging landscape of competing demands: maximizing shareholder value, meeting evolving customer needs, and fulfilling expanding social and environmental responsibilities. Successfully balancing these interconnected priorities requires thoughtful deliberation and strategic decision-making that acknowledges their interdependence.

Tensions in Modern Organizations
These inherent tensions can be effectively managed through:
• Developing comprehensive metrics that capture long-term value creation beyond quarterly financial results, including social impact assessments and sustainability indicators
• Identifying and prioritizing “win-win” opportunities where responsible design enhances market position, builds brand loyalty, and creates competitive advantages

Strategic Decision Frameworks
• Creating robust decision frameworks that explicitly weigh ethical considerations alongside financial metrics, allowing for transparent evaluation of tradeoffs
• Building compelling business cases that demonstrate how responsible design significantly reduces long-term risks related to regulation, reputation, and resource scarcity

Long-term Value Integration
By thoughtfully integrating ethical considerations into core decision-making processes and developing nuanced metrics that capture multidimensional long-term value creation, institutions can successfully reconcile profit motives with responsible design principles. This strategic approach enables organizations to achieve sustainable financial success while meaningfully contributing to a more just, equitable, and environmentally sustainable world.

Beyond Token Inclusion
Meaningful participation requires addressing deep-rooted power imbalances in institutional structures. Too often, inclusion is reduced to superficial gestures—inviting representatives from marginalized communities to consultations while denying them genuine influence over outcomes and decisions that affect their lives.

The Challenge of Meaningful Participation
To achieve authentic participation, institutions must confront and transform these entrenched power dynamics. This means moving beyond symbolic representation to creating spaces where traditionally excluded voices carry substantial weight in shaping both processes and outcomes.

Key Requirements for True Inclusion:
• Redistributing decision-making authority through participatory governance structures that give community members voting rights on critical decisions
• Providing fair financial compensation for community members’ time, expertise, and design contributions—recognizing their input as valuable professional consultation
• Implementing responsive feedback mechanisms with sufficient authority to pause, redirect, or fundamentally reshape projects when community concerns arise
• Establishing community oversight boards with substantive veto power and resources to monitor implementation

Building Equity Through Empowerment
By fundamentally redistributing decision-making authority and genuinely empowering marginalized communities, institutions can transform design processes from extractive exercises to collaborative partnerships. This shift ensures that design benefits flow equitably to all community members, not just those with pre-existing privilege. Such transformation demands more than good intentions—it requires concrete commitments to equity, justice, and collective accountability.

The Microsoft Inclusive Design Transformation

Restructuring Design Hierarchy
Microsoft fundamentally transformed its design process by establishing direct reporting channels between accessibility teams and executive leadership. This strategic restructuring ensured inclusive design considerations could not be sidelined or overridden by product managers focused solely on deadlines or feature development. Additionally, they created a protected budget specifically for community engagement that was safeguarded from reallocation to other priorities—even during tight financial cycles.

Elevating Accessibility Teams
This structural change demonstrates a commitment to inclusive design that transcends corporate rhetoric. By elevating accessibility specialists to positions with genuine organizational influence and providing them with unfiltered access to executive leadership, Microsoft ensures that inclusive design principles are embedded in strategic decisions at the highest levels of the organization. This repositioning signals to the entire company that accessibility is a core business value, not an optional consideration.

Dedicated Community Engagement
The protected budget for community engagement reinforces this commitment through tangible resource allocation. By dedicating specific funding for meaningful partnerships with marginalized communities, Microsoft ensures diverse voices directly influence product development from conception through launch. This approach has yielded measurable improvements in product accessibility and market reach, demonstrating how institutional transformation of design processes can simultaneously advance inclusion, equity, and business outcomes.

Regulatory Alignment

Anticipating Regulatory Changes
Visionary institutions position themselves ahead of regulatory evolution rather than merely reacting to it. As global regulations on environmental sustainability, accessibility, and data privacy grow increasingly stringent, organizations that proactively integrate these considerations into their design processes create significant competitive advantages while minimizing disruption.

Case Study: Proactive Compliance
Consider this example:
• European medical device leader Ottobock established a specialized regulatory forecasting team that maps emerging accessibility requirements across global markets
• Their “compliance plus” philosophy ensures designs exceed current standards by 20-30%, virtually eliminating costly redesigns when regulations tighten

Benefits of Forward-Thinking Regulation Strategy
Proactive regulatory alignment transforms compliance from a burden into a strategic asset. Organizations that embrace this approach not only mitigate financial and reputational risks but also establish themselves as industry leaders in responsible design. This strategic positioning requires continuous environmental scanning and a genuine commitment to ethical design principles that transcend minimum requirements.

Market Differentiation

Rising Consumer Expectations
The evolving landscape of consumer expectations presents strategic opportunities to harmonize responsible design with market advantage. Today’s consumers are not merely preferring but actively demanding products and services that demonstrate ethical production standards, environmental sustainability practices, and social responsibility commitments. Organizations that authentically meet these heightened expectations can secure significant competitive advantages and cultivate deeply loyal customer relationships.

Real-World Success Stories
Consider these compelling examples:
• Herman Miller revolutionized the furniture industry through circular design principles, exemplified by their groundbreaking Aeron chair remanufacturing program
• This innovative initiative established a premium market position while substantially reducing material consumption and environmental impact

Creating Win-Win Outcomes
When organizations strategically align responsible design principles with market opportunities, they forge powerful win-win scenarios that simultaneously benefit business objectives and societal wellbeing. Success in this approach demands both nuanced understanding of evolving consumer expectations and unwavering commitment to developing innovative solutions that address these expectations while advancing sustainability goals.

Beyond Good Intentions
Concrete measurement systems are essential for true accountability. While noble intentions set the direction, only robust metrics can verify real progress in responsible design. Organizations must implement comprehensive measurement frameworks to track outcomes, identify improvement opportunities, and demonstrate genuine commitment.

Effective Measurement Systems
Leading examples include:
• IBM’s Responsible Design Dashboard, which provides quantifiable metrics across diverse product lines
• Google’s HEART framework (Happiness, Engagement, Adoption, Retention, Task success) that seamlessly integrates ethical dimensions into standard performance indicators
• Transparent annual responsible design audits with publicly accessible results that foster organizational accountability

Benefits of Implementation
By embracing data-driven measurement systems, organizations transform aspirational goals into verifiable outcomes. This approach demonstrates an authentic commitment to responsible design principles while creating a foundation for continuous improvement. The willingness to measure and transparently share both successes and challenges distinguishes truly responsible organizations from those with merely good intentions.

Incentive Restructuring

The Power of Aligned Incentives
Human behavior is fundamentally shaped by incentives. To foster responsible design practices, institutions must strategically align rewards systems with desired ethical outcomes. When designers and stakeholders are recognized and compensated for responsible design initiatives, they naturally prioritize these values in their work.

Implementation Strategies
Organizations are achieving this alignment through concrete approaches:
• Salesforce has integrated diversity and inclusion metrics directly into executive compensation packages, ensuring leadership accountability
• Leading firms like Frog Design have embedded responsible design outcomes as key criteria in employee performance reviews
• Structured recognition programs celebrate and amplify exemplary responsible design practices, increasing visibility and adoption

Creating a Culture of Responsible Design
Thoughtfully restructured incentives transform organizational culture by signaling what truly matters. When ethical, inclusive, and sustainable practices are rewarded, they become embedded in institutional values rather than treated as optional considerations. This transformation requires rigorous assessment of current incentive frameworks and bold leadership willing to realign reward systems with responsible design principles.

Institutional Culture and Learning Systems
Responsible design flourishes within robust learning ecosystems. Rather than a one-time achievement, responsible design represents an ongoing journey of discovery, adaptation, and refinement. Organizations must establish comprehensive learning infrastructures that nurture this evolutionary process and ensure design practices remain ethically sound, inclusive, and forward-thinking.

Key Components of Learning Infrastructure
An effective learning infrastructure incorporates:
• Rigorous post-implementation reviews that critically assess ethical outcomes and user impact
• Vibrant communities of practice that facilitate knowledge exchange and cross-pollination across departments
• Strategic partnerships with academic institutions to integrate cutting-edge ethical frameworks and research
• Diverse external advisory boards that provide constructive critique and alternative perspectives

Benefits of Learning Systems
By investing in robust learning infrastructure, organizations cultivate a culture of continuous improvement and adaptive excellence. These systems ensure responsible design practices evolve in response to emerging challenges, technological shifts, and evolving societal expectations. Success requires unwavering institutional commitment to evidence-based learning, collaborative problem-solving, and transparent communication across all levels of the organization.

The Philips Healthcare Example

The Responsibility Lab Initiative
Philips Healthcare established a groundbreaking “Responsibility Lab” where designers regularly rotate through immersive experiences with diverse users from various backgrounds and abilities. This innovative rotation system ensures that responsible design knowledge becomes deeply embedded across the organization rather than remaining isolated within a specialized team.

Benefits of Experiential Learning
This approach powerfully demonstrates how experiential learning catalyzes responsible design practices. By immersing designers directly in the lived experiences of diverse users, Philips enables them to develop profound insights into the ethical, social, and environmental implications of their design decisions—insights that could not be gained through traditional research methods alone.

Organizational Knowledge Distribution
The strategic rotation system ensures that valuable ethical design principles flow throughout the organization, transforming responsible design from a specialized function into a shared organizational capability. This case study exemplifies how institutions can build effective learning systems that not only foster a culture of responsible design but also make it an integral part of their operational DNA.

The Institutional Journey

A Continuous Transformation
Institutionalizing responsible design is not a destination but a dynamic journey of continuous evolution. It demands skillful navigation through competing priorities, entrenched power dynamics, and ever-shifting external pressures. Forward-thinking institutions recognize that responsible design is not merely adjacent to their core mission—it is fundamental to their long-term viability, relevance, and social license to operate in an increasingly conscientious marketplace.

Beyond Sporadic Initiatives
By addressing these dimensions systematically and holistically, organizations transcend fragmentary ethical initiatives to achieve truly institutionalized responsible design. This transformation creates environments where ethical considerations and responsible practices become the natural default—woven into the organizational DNA—rather than exceptional efforts requiring special attention or resources.

Embrace the Journey of Continuous Growth
Immerse yourself in a transformative journey that thrives on continuous learning, adaptive thinking, and cross-disciplinary collaboration. This mindset unlocks the potential for design practices that fuel a more just, equitable, and sustainable world. By embracing this profound shift, institutions can drive real change.

Achieving this radical transformation requires visionary leadership, ethical conduct, and an innovative culture. It demands the united courage to challenge outdated norms and champion a brighter future. When institutions embody this ethos, they become beacons of progress, inspiring others to follow suit.

The path forward is not without obstacles, but the rewards are immense. Institutions that lead with this mindset will not only transform their own practices but also catalyze systemic change across industries. They will set new standards, reshape markets, and pave the way for a more responsible, inclusive, and sustain.

]]>
https://blogs.perficient.com/2025/03/08/responsible-design-starts-within-the-institution/feed/ 0 378321
Leveraging Power Automate to Create Interactive Emails with Embedded Images and Links https://blogs.perficient.com/2025/02/25/leveraging-power-automate-to-create-interactive-emails-with-embedded-images-and-links/ https://blogs.perficient.com/2025/02/25/leveraging-power-automate-to-create-interactive-emails-with-embedded-images-and-links/#respond Wed, 26 Feb 2025 05:15:14 +0000 https://blogs.perficient.com/?p=377588

Effective communication is key to engaging the audience in today’s fast-paced digital world. Whether sending newsletters, promotional offers, or internal updates, how we present the information can significantly impact the recipient’s engagement levels. One power tool that can help create interactive mail is Power Automate. This blog will explore how to leverage Power Automation to create emails with embedded images and links, enhancing communication strategy. I’ll walk you through two examples: one where we simply embed an image and another where we embed an image that links to a specific URL.

Why Use Interactive Emails?

Interactive emails are more engaging than traditional static emails. They include elements like embedded images and links.

  • Embedded Images: Visual content can help convey the message more effectively and make emails more appealing.
  • Links: It helps to redirect recipients to websites, social media, or specific landing pages.

Scenario Overview

Imagine yourself as the marketing manager of a company that keeps employees informed about company changes, training sessions, and new projects. By enabling employees to click on images that direct them to further resources or surveys, you may engage them in addition to providing information in your email. Here’s how to use Power Automate to accomplish this.

Step-by-Step Implementation

1. Create an Instant Flow

  • Open Power Automate, create a new instant flow and name the flow.
  • Start by adding a trigger. You can use the “Manually trigger a flow” option.

2. Get the Image File

  • Next, we need to locate the image we want to embed. To do so, use the Get file content action from OneDrive.
  • Click on the folder icon to browse and select the image from the folder.  Picture1

3. Initialize a Variable

  • Add an Initialize variable action. Name it and set the type to String.
  • In the value field, insert the following to embed the image:
    < img src=”data:image/jpeg;base64, @{body(‘Get_file_content_using_path’)[‘$content’]}”alt=”My Image” />Picture2

4. Send the Email

  • Now, add an action to Send an email (V2).
  • In the To field, enter the email address.
  • Add a subject based on your requirements.
  • In the Body, insert the following html code to display the embed image: <p class = “editor-paragraph”>This is image <br><br><img src=”data:image/jpg;base64,[‘$content’]”alt =”my image”></p>   Picture3

5. Test the Flow

  • Save your flow and click on Test.
  • Once the test is successful, check your email. The embedded image should be displayed directly in the body! Picture4

Real-Time Example of Linking an Image

Let’s move on to the second example, where we’ll embed an image that links to a specific URL.

Step 1: Modify the Email Body

  1. In the Send an email (V2) action, we’ll modify the body to include a clickable image.
  2. Switch to the Code view of the email body. You can do this by clicking on the code icon in the email body editor.
  3. Here’s the HTML code you can use to create a clickable image:<a href =”Link”><img src = “data:image/jpg;base64,[$content]”alt=”My Image”></a> Picture5

Step 2: Save and Test

  1. Save your changes and test the flow again.
  2. Check the email. You should see the image, and when you click on it, it will take you to the specified URL! Mail Maha Karunanithi Outlook Google Chrome 2025 02 24 14 54 46

Pros of Embedded Images and Links

  • Embedded images enhance email engagement, readability, and overall user experience.
  • Clickable links within images enable viewers to go straight to relevant content without taking additional steps.
  • Embedding images and links saves time and maintains consistency across several emails.
  • Images can be encoded in Base64 format, removing the requirement for external image hosting and decreasing reliance on third-party servers.

Cons of Embedded Images and Links

  • Embedding images directly in the email increases the email’s size, which may influence deliverability.
  • If an email has too many links or photos, some email providers may block embedded images or flag it as spam.

Conclusion

We’ve successfully learned how to embed images in your emails using Power Automate, both as standalone images and as clickable links and you can significantly enhance your communication efforts within your organization. This approach makes your emails more visually appealing and encourages employee engagement through interactive elements.

 

]]>
https://blogs.perficient.com/2025/02/25/leveraging-power-automate-to-create-interactive-emails-with-embedded-images-and-links/feed/ 0 377588
Revolutionizing Work With Microsoft Copilot: A Game-Changer in AI Integration https://blogs.perficient.com/2025/02/11/revolutionizing-work-with-microsoft-copilot-a-game-changer-in-ai-integration/ https://blogs.perficient.com/2025/02/11/revolutionizing-work-with-microsoft-copilot-a-game-changer-in-ai-integration/#respond Tue, 11 Feb 2025 21:33:15 +0000 https://blogs.perficient.com/?p=377121

AI is no longer a futuristic concept—it’s here, transforming the way we work in real time. Organizations worldwide making AI a strategic priority, harnessing its power to enhance efficiency, accelerate decision-making, and drive growth. In fact, generative AI adoption has skyrocketed from 55% in 2023 to 75% in 2024, contributing to an estimated global economic impact of $19.9 trillion. To stay ahead, businesses must align AI investments across applications, platforms, data, and infrastructure to maximize value and maintain a competitive edge.

🎥 Watch our latest video to see Microsoft Copilot in action and how AI is reshaping workflows across every role.

“In the evolving landscape of AI, the future hinges on our ability to not just experiment, but to strategically pivot—transforming experimentation into sustainable innovation,” said Rick Villars, group vice president, Worldwide Research at IDC. “As we embrace AI, we need to prioritize relevance, urgency, and resourcefulness to forge resilient enterprises that thrive in a data-driven world.” 

Success with AI isn’t just about adopting new technology—it requires a clear vision, a strong strategy, and the right expertise to turn possibilities into real-world impact. As a Microsoft partner, Perficient is at the forefront of AI transformation, helping businesses navigate this evolving landscape. Our upcoming Microsoft Copilot video showcases exactly how AI is reshaping everyday workflows, with real-world examples of how different roles—from executives to developers—are leveraging Copilot to work smarter and more efficiently. The world is changing, and AI is advancing at an unprecedented pace. Now is the time to lead, innovate, and unlock the full potential of AI in your organization.

 

Microsoft Copilot: The AI-Powered Workplace Ally 

Microsoft Copilot is an AI-powered assistant designed to enhance productivity across Microsoft applications and services. It leverages advanced language models and integrates seamlessly with Microsoft 365, Dynamics 365, and GitHub to provide real-time assistance, automate tasks, and offer intelligent suggestions. 

Key Features:

  • Content Generation: Drafts emails, documents, and presentations with contextually relevant suggestions.
  • Data Analysis: Helps interpret data in Excel, offering insights and generating summaries for better decision-making.
  • Meeting Summaries: Provides concise overviews of meetings, highlighting key points and action items.
  • Code Assistance: Supports developers by suggesting code snippets and completing code blocks in GitHub.

Microsoft Copilot uniquely integrates web intelligence, organizational data, and user context to provide powerful assistance. It enhances workflows across roles—from sales teams managing customer interactions, to HR professionals optimizing employee support, to developers accelerating coding projects. With privacy and security at the forefront, Copilot empowers every end user to work smarter and achieve more. 

 

Real-World AI Impact: How Businesses Are Using Microsoft Copilot

Organizations are leveraging Copilot to streamline operations, enhance productivity, and drive business success. Here are the top use cases where our clients and prospects see the most value: 

  • Company Executives: Leveraging AI-driven insights to make informed strategic decisions and improve business performance.
  • Customer Service Teams: Enhancing response times and preemptively resolving issues with predictive AI.
  • HR Professionals: Automating policy updates, employee inquiries, and streamlining workforce management.
  • Legal & Operations: Simplifying contract reviews, compliance tracking, and change management processes.
  • Sales Reps: Accessing deep customer insights, automating CRM updates, and optimizing meeting preparation.
  • Developers: Speeding up application development with AI-assisted code suggestions and debugging support.

Each of these use cases is explored in depth in our Microsoft Copilot video, where we demonstrate real-world applications of AI across various industries and roles.

 

The Future of AI-Powered Workflows

The next phase of AI transformation will continue to reshape industries. As Microsoft’s Chairman and CEO Satya Nadella explains, “2025 will be about model-forward applications that reshape all application categories. More so than any previous platform shift, every layer of the application stack will be impacted. It’s akin to GUI, internet servers, and cloud-native databases all being introduced into the app stack simultaneously. Thirty years of change is being compressed into three years!” 

Key advancements to watch:

  • Agentic AI: AI applications will develop memory, entitlements, and action spaces, allowing them to perform complex tasks independently.
  • The End of the SaaS Age: AI agents will replace traditional SaaS models, integrating multiple platforms and automating workflows.
  • CoreAI Initiative: Microsoft’s CoreAI unit is driving next-gen AI capabilities, streamlining platforms, and enhancing AI-driven applications.

 

Partnering With Perficient for AI Transformation

Perficient and Microsoft can help your organization confidently scale AI solutions, no matter where you are on your AI journey. Our Microsoft AI solutions are designed to unlock new levels of productivity, drive innovation, fuel growth, and ensure secure AI integration across all business functions. Let’s shape the future together. Read more about our Copilot and AI capabilities here

]]>
https://blogs.perficient.com/2025/02/11/revolutionizing-work-with-microsoft-copilot-a-game-changer-in-ai-integration/feed/ 0 377121
Extending the Capabilities of Your Development Team with Visual Studio Code Extensions https://blogs.perficient.com/2025/02/11/extending-the-capabilities-of-your-development-team-with-visual-studio-code-extensions/ https://blogs.perficient.com/2025/02/11/extending-the-capabilities-of-your-development-team-with-visual-studio-code-extensions/#respond Tue, 11 Feb 2025 20:53:23 +0000 https://blogs.perficient.com/?p=377088

Introduction

Visual Studio Code (VS Code) has become a ubiquitous tool in the software development world, prized for its speed, versatility, and extensive customization options. At its heart, VS Code is a lightweight, open-source code editor that supports a vast ecosystem of extensions. These extensions are the key to unlocking the true potential of VS Code, transforming it from a simple editor into a powerful, tailored IDE (Integrated Development Environment).

This blog post will explore the world of VS Code extensions, focusing on how they can enhance your development team’s productivity, code quality, and overall efficiency. We’ll cover everything from selecting the right extensions to managing them effectively and even creating your own custom extensions to meet specific needs.

What are Visual Studio Code Extensions?

Extensions are essentially plugins that add new features and capabilities to VS Code. They can range from simple syntax highlighting and code completion tools to more complex features like debuggers, linters, and integration with external services. The Visual Studio Code Marketplace hosts thousands of extensions, catering to virtually every programming language, framework, and development workflow imaginable.

Popular examples include Prettier for automatic code formatting, ESLint for identifying and fixing code errors, and Live Share for real-time collaborative coding.

Why Use Visual Studio Code Extensions?

The benefits of using VS Code extensions are numerous and can significantly impact your development team’s performance.

  1. Improve Code Quality: Extensions like ESLint and JSHint help enforce coding standards and identify potential errors early in the development process. This leads to more robust, maintainable, and bug-free code.
  2. Boost Productivity: Extensions like Auto Close Tag and IntelliCode automate repetitive tasks, provide intelligent code completion, and streamline your workflow. This allows developers to focus on solving complex problems rather than getting bogged down in tedious tasks.
  3. Enhance Collaboration: Extensions like Live Share enable real-time collaboration, making it easier for team members to review code, pair program, and troubleshoot issues together, regardless of their physical location.
  4. Customize Your Workflow: VS Code’s flexibility allows you to tailor your development environment to your specific needs and preferences. Extensions like Bracket Pair Colorizer and custom themes can enhance readability and create a more comfortable and efficient working environment.
  5. Stay Current: Extensions provide support for the latest technologies and frameworks, ensuring that your team can quickly adapt to new developments in the industry and leverage the best tools for the job.
  6. Save Time: By automating common tasks and providing intelligent assistance, extensions like Path Intellisense can significantly reduce the amount of time spent on mundane tasks, freeing up more time for creative problem-solving and innovation.
  7. Ensure Consistency: Extensions like EditorConfig help enforce coding standards and best practices across your team, ensuring that everyone is following the same guidelines and producing consistent, maintainable code.
  8. Enhance Debugging: Powerful debugging extensions like Debugger for Java provide advanced debugging capabilities, making it easier to identify and resolve issues quickly and efficiently.

Managing IDE Tools for Mature Software Development Teams

As software development teams grow and projects become more complex, managing IDE tools effectively becomes crucial. A well-managed IDE environment can significantly impact a team’s ability to deliver high-quality software on time and within budget.

  1. Standardization: Ensuring that all team members use the same tools and configurations reduces discrepancies, improves collaboration, and simplifies onboarding for new team members. Standardized extensions help maintain code quality and consistency, especially in larger teams where diverse setups can lead to confusion and inefficiencies.
  2. Efficiency: Streamlining the setup process for new team members allows them to get up to speed quickly. Automated setup scripts can install all necessary extensions and configurations in one go, saving time and reducing the risk of errors.
  3. Quality Control: Enforcing coding standards and best practices across the team is essential for maintaining code quality. Extensions like SonarLint can continuously analyze code quality, catching issues early and preventing bugs from making their way into production.
  4. Scalability: As your team evolves and adopts new technologies, managing IDE tools effectively facilitates the integration of new languages, frameworks, and tools. This ensures that your team can quickly adapt to new developments and leverage the best tools for the job.
  5. Security: Keeping all tools and extensions up-to-date and secure is paramount, especially for teams working on sensitive or high-stakes projects. Regularly updating extensions prevents security issues and ensures access to the latest features and security patches.

Best Practices for Managing VS Code Extensions in a Team

Effectively managing VS Code extensions within a team requires a strategic approach. Here are some best practices to consider:

  1. Establish an Approved Extension List: Create and maintain a list of extensions that are approved for use by the team. This ensures that everyone is using the same core tools and configurations, reducing inconsistencies and improving collaboration. Consider using a shared document or a dedicated tool to manage this list.
  2. Automate Installation and Configuration: Use tools like Visual Studio Code Settings Sync or custom scripts to automate the installation and configuration of extensions and settings for all team members. This ensures that everyone has the same setup without manual intervention, saving time and reducing the risk of errors.
  3. Implement Regular Audits and Updates: Regularly review and update the list of approved extensions to add new tools, remove outdated ones, and ensure that all extensions are up-to-date with the latest security patches. This helps keep your team current with the latest developments and minimizes security risks.
  4. Provide Training and Documentation: Offer training and documentation on the approved extensions and best practices for using them. This helps ensure that all team members are proficient in using the tools and can leverage them effectively.
  5. Encourage Feedback and Collaboration: Encourage team members to provide feedback on the approved extensions and suggest new tools that could benefit the team. This fosters a culture of continuous improvement and ensures that the team is always using the best tools for the job.

Security Considerations for VS Code Extensions

While VS Code extensions offer numerous benefits, they can also introduce security risks if not managed properly. It’s crucial to be aware of these risks and take steps to mitigate them.

  1. Verify the Source: Only install extensions from trusted sources, such as the Visual Studio Code Marketplace. Avoid downloading extensions from unknown or unverified sources, as they may contain malware or other malicious code.
  2. Review Permissions: Carefully review the permissions requested by extensions before installing them. Be cautious of extensions that request excessive permissions or access to sensitive data, as they may be attempting to compromise your security.
  3. Keep Extensions Updated: Regularly update your extensions to ensure that you have the latest security patches and bug fixes. Outdated extensions can be vulnerable to security exploits, so it’s important to keep them up-to-date.
  4. Use Security Scanning Tools: Consider using security scanning tools to automatically identify and assess potential security vulnerabilities in your VS Code extensions. These tools can help you proactively identify and address security risks before they can be exploited.

Creating Custom Visual Studio Code Extensions

In some cases, existing extensions may not fully meet your team’s specific needs. Creating custom VS Code extensions can be a powerful way to add proprietary capabilities to your IDE and tailor it to your unique workflow. One exciting area is integrating AI Chatbots directly into VS Code for code generation, documentation, and more.

  1. Identify the Need: Start by identifying the specific functionality that your team requires. This could be anything from custom code snippets and templates to integrations with internal tools and services. For this example, we’ll create an extension that allows you to highlight code, right-click, and generate documentation using a custom prompt sent to an AI Chatbot.

  2. Learn the Basics: Familiarize yourself with the Visual Studio Code Extension API and the tools required to develop extensions. The API documentation provides comprehensive guides and examples to help you get started.

  3. Set Up Your Development Environment: Install the necessary tools, such as Node.js and Yeoman, to create and test your extensions. The Yeoman generator for Visual Studio Code extensions can help you quickly scaffold a new project.

  4. Develop Your Extension: Write the code for your extension, leveraging the Visual Studio Code Extension API to add the desired functionality. Be sure to follow best practices for coding and testing to ensure that your extension is reliable, maintainable, and secure.

  5. Test Thoroughly: Test your extension in various scenarios to ensure that it works as expected and doesn’t introduce any new issues. This includes testing with different configurations, environments, and user roles.

  6. Distribute Your Extension: Once your extension is ready, you can distribute it to your team. You can either publish it to the Visual Studio Code Marketplace or share it privately within your organization. Consider using a private extension registry to manage and distribute your custom extensions securely.

Best Practices for Extension Development

Developing robust and efficient VS Code extensions requires careful attention to best practices. Here are some key considerations:

  • Resource Management:

    • Dispose of Resources: Properly dispose of any resources your extension creates, such as disposables, subscriptions, and timers. Use the context.subscriptions.push() method to register disposables, which will be automatically disposed of when the extension is deactivated.
    • Avoid Memory Leaks: Be mindful of memory usage, especially when dealing with large files or data sets. Use techniques like streaming and pagination to process data in smaller chunks.
    • Clean Up on Deactivation: Implement the deactivate() function to clean up any resources that need to be explicitly released when the extension is deactivated.
  • Asynchronous Operations:

    • Use Async/Await: Use async/await to handle asynchronous operations in a clean and readable way. This makes your code easier to understand and maintain.
    • Handle Errors: Properly handle errors in asynchronous operations using try/catch blocks. Log errors and provide informative messages to the user.
    • Avoid Blocking the UI: Ensure that long-running operations are performed in the background to avoid blocking the VS Code UI. Use vscode.window.withProgress to provide feedback to the user during long operations.
  • Security:

    • Validate User Input: Sanitize and validate any user input to prevent security vulnerabilities like code injection and cross-site scripting (XSS).
    • Secure API Keys: Store API keys and other sensitive information securely. Use VS Code’s secret storage API to encrypt and protect sensitive data.
    • Limit Permissions: Request only the necessary permissions for your extension. Avoid requesting excessive permissions that could compromise user security.
  • Performance:

    • Optimize Code: Optimize your code for performance. Use efficient algorithms and data structures to minimize execution time.
    • Lazy Load Resources: Load resources only when they are needed. This can improve the startup time of your extension.
    • Cache Data: Cache frequently accessed data to reduce the number of API calls and improve performance.
  • Code Quality:

    • Follow Coding Standards: Adhere to established coding standards and best practices. This makes your code more readable, maintainable, and less prone to errors.
    • Write Unit Tests: Write unit tests to ensure that your code is working correctly. This helps you catch bugs early and prevent regressions.
    • Use a Linter: Use a linter to automatically identify and fix code style issues. This helps you maintain a consistent code style across your project.
  • User Experience:

    • Provide Clear Feedback: Provide clear and informative feedback to the user. Use status bar messages, progress bars, and error messages to keep the user informed about what’s happening.
    • Respect User Settings: Respect user settings and preferences. Allow users to customize the behavior of your extension to suit their needs.
    • Keep it Simple: Keep your extension simple and easy to use. Avoid adding unnecessary features that could clutter the UI and confuse the user.

By following these best practices, you can develop robust, efficient, and user-friendly VS Code extensions that enhance the development experience for yourself and others.

Example: Creating an AI Chatbot Integration for Documentation Generation

Let’s walk through creating a custom VS Code extension that integrates with an AI Chatbot to generate documentation for selected code. This example assumes you have access to an AI Chatbot API (like OpenAI’s GPT models). You’ll need an API key. Remember to handle your API key securely and do not commit it to your repository.

1. Scaffold the Extension:

First, use the Yeoman generator to create a new extension project:

yo code

2. Modify the Extension Code:

Open the generated src/extension.ts file and add the following code to create a command that sends selected code to the AI Chatbot and displays the generated documentation:

import * as vscode from 'vscode';
import axios from 'axios';

export function activate(context: vscode.ExtensionContext) {
 let disposable = vscode.commands.registerCommand('extension.generateDocs', async () => {
  const editor = vscode.window.activeTextEditor;
  if (editor) {
   const selection = editor.selection;
   const selectedText = editor.document.getText(selection);

   const apiKey = 'YOUR_API_KEY'; // Replace with your actual API key
   const apiUrl = 'https://api.openai.com/v1/engines/davinci-codex/completions';

   try {
    const response = await axios.post(
     apiUrl,
     {
      prompt: `Generate documentation for the following code:\n\n${selectedText}`,
      max_tokens: 150,
      n: 1,
      stop: null,
      temperature: 0.5,
     },
     {
      headers: {
       'Content-Type': 'application/json',
       Authorization: `Bearer ${apiKey}`,
      },
     }
    );

    const generatedDocs = response.data.choices[0].text;
    vscode.window.showInformationMessage('Generated Documentation:\n' + generatedDocs);
   } catch (error) {
    vscode.window.showErrorMessage('Error generating documentation: ' + error.message);
   }
  }
 });

 context.subscriptions.push(disposable);
}

export function deactivate() {}

3. Update package.json:

Add the following command configuration to the contributes section of your package.json file:

"contributes": {
    "commands": [
        {
            "command": "extension.generateDocs",
            "title": "Generate Documentation"
        }
    ]
}

4. Run and Test the Extension:

Press F5 to open a new VS Code window with your extension loaded. Highlight some code, right-click, and select “Generate Documentation” to see the AI-generated documentation.

Packaging and Distributing Your Custom Extension

Once you’ve developed and tested your custom VS Code extension, you’ll likely want to share it with your team or the wider community. Here’s how to package and distribute your extension, including options for local and private distribution:

1. Package the Extension:

VS Code uses the vsce (Visual Studio Code Extensions) tool to package extensions. If you don’t have it installed globally, install it using npm:

npm install -g vsce

Navigate to your extension’s root directory and run the following command to package your extension:

vsce package

This will create a .vsix file, which is the packaged extension.

2. Publish to the Visual Studio Code Marketplace:

To publish your extension to the Visual Studio Code Marketplace, you’ll need to create a publisher account and obtain a Personal Access Token (PAT). Follow the instructions on the Visual Studio Code Marketplace to set up your publisher account and generate a PAT.

Once you have your PAT, run the following command to publish your extension:

vsce publish

You’ll be prompted to enter your publisher name and PAT. After successful authentication, your extension will be published to the marketplace.

3. Share Privately:

If you prefer to share your extension privately within your organization, you can distribute the .vsix file directly to your team members. They can install the extension by running the following command in VS Code:

code --install-extension your-extension.vsix

Alternatively, you can set up a private extension registry using tools like Azure DevOps Artifacts or npm Enterprise to manage and distribute your custom extensions securely.

Conclusion

Visual Studio Code extensions are a powerful tool for enhancing the capabilities of your development environment and improving your team’s productivity, code quality, and overall efficiency. By carefully selecting, managing, and securing your extensions, you can create a tailored IDE that meets your specific needs and helps your team deliver high-quality software on time and within budget. Whether you’re using existing extensions from the marketplace or creating your own custom solutions, the possibilities are endless. Embrace the power of VS Code extensions and unlock the full potential of your development team.

For more information about Perficient’s Mobile Solutions expertise, subscribe to our blog or contact our Mobile Solutions team today!

]]>
https://blogs.perficient.com/2025/02/11/extending-the-capabilities-of-your-development-team-with-visual-studio-code-extensions/feed/ 0 377088
Setting Up Virtual WAN (VWAN) in Azure Cloud: A Comprehensive Guide – I https://blogs.perficient.com/2025/02/05/setting-up-azure-vwan/ https://blogs.perficient.com/2025/02/05/setting-up-azure-vwan/#comments Wed, 05 Feb 2025 11:01:41 +0000 https://blogs.perficient.com/?p=376281

As businesses expand their global footprint, the need for a flexible, scalable, and secure networking solution becomes paramount. Enter Azure Virtual WAN (VWAN), a cloud-based offering designed to simplify and centralize network management while ensuring top-notch performance. Let’s dive into what Azure VWAN offers and how to set it up effectively.

What is Azure Virtual WAN (VWAN)?

Azure Virtual WAN, or VWAN, is a cloud-based network solution that connects secure, seamless, and optimized connectivity across hybrid and multi-cloud environments.

It provides:

I. Flexibility for Dynamic Network Requirements

  • Adaptable Connectivity: Azure VWAN supports various connectivity options, including ExpressRoute, Site-to-Site VPN, and Point-to-Site VPN, ensuring compatibility with diverse environments like on-premises data centers, branch offices, and remote workers.
  • Scale On-Demand: As network requirements grow or change, Azure VWAN allows you to dynamically add or remove connections, integrate new virtual networks (VNets), or scale bandwidth based on traffic needs.
  • Global Reach: Azure VWAN enables connectivity across regions and countries using Microsoft’s extensive global network, ensuring that organizations with distributed operations stay connected.
  • Hybrid and Multi-Cloud Integration: Azure VWAN supports hybrid setups (on-premises + cloud) and integration with other public cloud providers, providing the flexibility to align with business strategies.

II. Improved Management with Centralized Controls

  • Unified Control Plane: Azure VWAN provides a centralized dashboard within the Azure Portal to manage all networking components, such as VNets, branches, VPNs, and ExpressRoute circuits.
  • Simplified Configuration: Automated setup and policy management make deploying new network segments, traffic routing, and security configurations easy.
  • Network Insights: Built-in monitoring and diagnostic tools offer deep visibility into network performance, allowing administrators to quickly identify and resolve issues.
  • Policy Enforcement: Azure VWAN enables consistent policy enforcement across regions and resources, improving governance and compliance with organizational security standards.

III. High Performance Leveraging Microsoft’s Global Backbone Infrastructure

  • Low Latency and High Throughput: Azure VWAN utilizes Microsoft’s global backbone network, known for its reliability and speed, to provide high-performance connectivity across regions and to Azure services.
  • Optimized Traffic Routing: Intelligent routing ensures that traffic takes the most efficient path across the network, reducing latency for applications and end users.
  • Built-in Resilience: Microsoft’s backbone infrastructure includes redundant pathways and fault-tolerant systems, ensuring high availability and minimizing the risk of network downtime.
  • Proximity to End Users: With a global footprint of Azure regions and points of presence (PoPs), Azure VWAN ensures proximity to end users, improving application responsiveness and user experience.

High-level architecture of VWAN

This diagram depicts a high-level architecture of Azure Virtual WAN and its connectivity components.

 

Vwanarchitecture

 

  • HQ/DC (Headquarters/Data Centre): Represents the organization’s primary data center or headquarters hosting critical IT infrastructure and services. Acts as a centralized hub for the organization’s on-premises infrastructure. Typically includes servers, storage systems, and applications that need to communicate with resources in Azure.
  • Branches: Represents the organization’s regional or local office locations. Serves as local hubs for smaller, decentralized operations. Each branch connects to Azure to access cloud-hosted resources, applications, and services and communicates with other branches or HQ/DC. The HQ/DC and branches communicate with each other and Azure resources through the Azure Virtual WAN.
  • Virtual WAN Hub: At the heart of Azure VWAN is the Virtual WAN Hub, a central node that simplifies traffic management between connected networks. This hub acts as the control point for routing and ensures efficient data flow.
  • ExpressRoute: Establishes a private connection between the on-premises network and Azure, bypassing the public internet. It uses BGP for route exchange, ensuring secure and efficient connectivity.
  • VNet Peering: Links Azure Virtual Networks directly, enabling low-latency, high-bandwidth communication.
    • Intra-Region Peering: Connects VNets within the same region.
    • Global Peering: Bridges VNets across different regions.
  • Point-to-Site (P2S) VPN: Ideal for individual users or small teams, this allows devices to securely connect to Azure resources over the internet.
  • Site-to-Site (S2S) VPN: Connects the on-premises network to Azure, enabling secure data exchange between systems.

Benefits of VWAN

  • Scalability: Expand the network effortlessly as the business grows.
  • Cost-Efficiency: Reduce hardware expenses by leveraging cloud-based solutions.
  • Global Reach: Easily connect offices and resources worldwide.
  • Enhanced Performance: Optimize data transfer paths for better reliability and speed.

Setting Up VWAN in Azure

Follow these steps to configure Azure VWAN:

Step 1: Create a Virtual WAN Resource

  • Log in to the Azure Portal and create a Virtual WAN resource. This serves as the foundation of the network architecture.

Step 2: Configure a Virtual WAN Hub

  • Make the WAN Hub the central traffic manager and adjust it to meet the company’s needs.

Step 3: Establish Connections

  • Configure VPN Gateways for secure, encrypted connections.
  • Use ExpressRoute for private, high-performance connectivity.

Step 4: Link VNets

  • Create Azure Virtual Networks and link them to the WAN Hub. The seamless interaction between resources is guaranteed by this integration.

Monitoring and Troubleshooting VWAN

Azure Monitor

Azure Monitor tracks performance, availability, and network health in real time and provides insights into traffic patterns, latency, and resource usage.

Network Watcher

Diagnose network issues with tools like packet capture and connection troubleshooting. Quickly identify and resolve any bottlenecks or disruptions.

Alerts and Logs

Set up alerts for critical issues such as connectivity drops or security breaches. Use detailed logs to analyze network events and maintain robust auditing.

Final Thoughts

Azure VWAN is a powerful tool for businesses looking to unify and optimize their global networking strategy. Organizations can ensure secure, scalable, and efficient connectivity by leveraging features like ExpressRoute, VNet Peering, and VPN Gateways. With the correct setup and monitoring tools, managing complex networks becomes a seamless experience.

]]>
https://blogs.perficient.com/2025/02/05/setting-up-azure-vwan/feed/ 1 376281