Posts

Integration Patterns Comparision

Image
 

We need to import bulk data (tasks) from an external source (Excel file from another system) into Dataverse.

   Scenario We need to import bulk data (tasks) from an external source (Excel file from another system) into Dataverse . 🔹 Architecture Flow (Step by Step) Excel File Source External system exports tasks into an Excel file. File includes: title, description, category, duration, status . File uploaded to Azure Blob Storage . Staging Database (SQL Server) Before directly pushing into Dataverse, the file data is copied into a staging table in SQL Server. Benefits: Data validation before import. Status tracking ( import_status column: e.g., Pending, Success, Failed). Easier error handling/re-runs. Azure Data Factory (ADF) Pipeline Orchestrates the entire process. Activity 1 (Copy Activity): Reads Excel from Blob → Loads into SQL staging table. Activity 2 (Web Activity): Calls a Logic App to start processing staged rows. Logic App (Transformation + Import into Dataverse) Triggered via HTTP by ADF. Iterates throug...

Key ADF Features for Row-Level Fault Tolerance

  Fault Tolerance in Copy Activity You can configure Skip incompatible rows or Redirect rows with errors into a separate log/sink (like Blob or SQL). This allows you to capture failed records without breaking the entire batch. Mapping Data Flows – Error Row Handling Data Flows allow “Error Row Handling” , so you can redirect specific problematic rows (e.g., invalid GUID, missing lookup) to a quarantine table. Example: Valid rows → Dataverse Invalid rows → Error table with reason Retry Policies Copy activity has built-in retry policies with exponential backoff for transient errors. Helpful when Dataverse throttles or API timeouts happen. Logging & Monitoring ADF can now output error details (like column name, error code, error description) to another sink. This is row-level granularity for diagnostics. 🔹 So Why Use Logic Apps Then? Even though ADF now supports row-level fault tolerance, Logic Apps still makes sense in ...

Best practices to avoid throttling when Azure Functions integrate with Dataverse:

  🔹 1. Use Custom API / Plugin (preferred approach) Encapsulate multiple operations inside one Dataverse Custom API . Azure Function only makes one call per message. Benefits: fewer API calls, transactional consistency, central business logic. 🔹 2. Use Batch (ExecuteMultiple / $batch) If you must call Dataverse directly, use $batch requests . Example: instead of 50 separate POST /contacts , send them in 1 batch request . This reduces entitlement usage and network overhead. 🔹 3. Distribute load across Application Users Create multiple App registrations in Azure AD (with Dataverse application users). Spread API calls across them to avoid hitting the per-user limits . Example: Function A uses AppUser1, Function B uses AppUser2. 🔹 4. Implement Retry with Exponential Backoff Always catch 429 (Too Many Requests) and 5xx errors . Retry after the Retry-After header or use exponential backoff (2s → 4s → 8s…). Don’t retry immediately ...

Dataverse + Service Bus + Custom API integration:

 Let me break that passage down in simple terms with context around Dataverse + Service Bus + Custom API integration: 🔹 What it means “To execute operations on Dataverse, we rely on calling a custom API.” Instead of making multiple direct CRUD calls (Create, Read, Update, Delete) from Azure Functions or Service Bus consumers into Dataverse, you create a Custom API in Dataverse. This Custom API acts like a single entry point for your external system. “Our function will perform only one call to the Dataverse endpoints, reducing the consumption of API calls entitlements.” Every request to Dataverse consumes API calls quota (licensing entitlements). If you send multiple calls for one business process (like create a case, add tasks, update customer, assign), you consume many entitlements. By wrapping all that logic in a Custom API , you reduce it to just one call . “Our business logic can be grouped on Dataverse side in a single plugin, exposing ...

Overview of Dynamics 365 Contact Center

Dynamics 365 Contact Center was launched in July 2022, marking a significant evolution within Microsoft's product suite, following a two-decade journey of development within the Dynamics family. The launch was influenced by the acquisition of Nuance, which brought advanced AI capabilities, including IVR, biometrics, and fraud prevention features. This contact center solution is designed to integrate seamlessly with existing Microsoft services and is built on Azure Cloud architecture. Key Features Omni-Channel Support : The platform provides a comprehensive omni-channel experience, allowing interactions across various channels such as voice, chat, and social media. AI Integration : Utilizes AI-driven features like co-pilot for agent assistance and frictionless conversational IVR for enhanced customer engagement. Data and Reporting : Leverages Microsoft Dataverse for real-time data access and power BI for reporting and analytics, improving decision-making for contact center managers....

Overview of Dynamics 365 Contact Center and Customer Service

Image
  Overview of Dynamics 365 Contact Center and Customer Service Dynamics 365 Contact Center and Dynamics 365 Customer Service are distinct products designed for customer interaction, each suited to different use cases. Both applications provide omnichannel communication capabilities, allowing interactions across voice, chat, and other channels. The choice between these two solutions hinges primarily on the case management system in use. Key Functional Differences The Customer Service application integrates seamlessly with Dynamics 365 for case management, enabling users to create cases directly from the customer interaction interface. In contrast, the Contact Center lacks built-in case creation functionality, requiring users to connect to third-party case management systems, such as Salesforce. This difference in case management capabilities is crucial when deciding which product to implement based on organizational needs. User Interface and Experience Both applications feature fami...