Search Tutorials


Top Azure Logic Apps Interview Questions (2026) | JavaInuse

Top 20 Azure Logic Apps Interview Questions and Answers


  1. What is Azure Logic Apps?
  2. What is the difference between Logic Apps (Consumption) and Logic Apps (Standard)?
  3. What are connectors in Logic Apps?
  4. What is the difference between triggers and actions?
  5. How do you handle errors in Logic Apps?
  6. What is the difference between Logic Apps and Power Automate?
  7. How do you implement loops in Logic Apps?
  8. What are managed identities in Logic Apps?
  9. How do you call REST APIs in Logic Apps?
  10. What is the Workflow Definition Language?
  11. How do you implement conditional logic?
  12. What are integration accounts?
  13. How do you secure Logic Apps?
  14. What is the difference between stateful and stateless workflows?
  15. How do you monitor Logic Apps?
  16. What are inline code actions?
  17. How do you implement retry policies?
  18. What is the Liquid template in Logic Apps?
  19. How do you integrate Logic Apps with Azure Functions?
  20. What are best practices for Logic Apps?

Microsoft Azure Interview Questions

Comprehensive interview questions for Azure cloud services and data engineering roles.

1. What is Azure Logic Apps?

Azure Logic Apps is a cloud-based platform for creating and running automated workflows that integrate apps, data, services, and systems.

Key Features:
- Low-Code/No-Code: Visual designer for workflow creation
- 400+ Connectors: Pre-built integrations with services
- Enterprise Integration: B2B scenarios, EDI, XML processing
- Serverless: Auto-scale, pay-per-execution
- Hybrid: Connect to on-premises systems

Use Cases:
- Business process automation
- System integration (SaaS, on-premises)
- B2B workflows (EDI, AS2)
- Event-driven processing
- API orchestration

2. What is the difference between Logic Apps (Consumption) and Logic Apps (Standard)?

AspectConsumptionStandard
HostingMulti-tenantSingle-tenant / ASE
PricingPay per executionHosting plan based
Workflows per Resource1Multiple
DeploymentAzure onlyAzure, Docker, Kubernetes
VNET IntegrationISE requiredBuilt-in
DevelopmentPortal, VS CodeVS Code primary
Stateless WorkflowsNoYes
Local DevelopmentLimitedFull support

Choose Consumption when:
- Simple, event-driven workflows
- Unpredictable execution volumes
- Quick start without infrastructure

Choose Standard when:
- Need network isolation
- Multiple related workflows
- Predictable high-volume workloads
- Run anywhere requirement

3. What are connectors in Logic Apps?

Connectors provide pre-built access to services, applications, and systems.

Connector Types:
Built-in Connectors:
- Run natively within Logic Apps runtime
- HTTP, Schedule, Batch, Request/Response
- Lower latency, higher throughput

Managed Connectors:
- Microsoft-managed API connections
- Standard: Office 365, SQL, Salesforce
- Enterprise: SAP, IBM MQ (additional cost)

Custom Connectors:
- Wrap REST/SOAP APIs
- Created using OpenAPI specification

// Example: SQL Server connector action
{
    "type": "ApiConnection",
    "inputs": {
        "host": {
            "connection": {
                "name": "@parameters('$connections')['sql']['connectionId']"
            }
        },
        "method": "get",
        "path": "/datasets/default/tables/@{encodeURIComponent('dbo.Orders')}/items"
    }
}

// Example: HTTP connector (built-in)
{
    "type": "Http",
    "inputs": {
        "method": "POST",
        "uri": "https://api.example.com/orders",
        "headers": {"Content-Type": "application/json"},
        "body": "@triggerBody()"
    }
}

4. What is the difference between triggers and actions?

Triggers:
- Start the workflow execution
- First step in every workflow
- Only one trigger per workflow

Trigger Types:
// 1. Recurrence (Schedule)
{
    "type": "Recurrence",
    "recurrence": {
        "frequency": "Hour",
        "interval": 1
    }
}

// 2. HTTP Request (Webhook)
{
    "type": "Request",
    "kind": "Http",
    "inputs": {
        "schema": {
            "type": "object",
            "properties": {
                "orderId": {"type": "integer"}
            }
        }
    }
}

// 3. Polling (When item created)
{
    "type": "ApiConnection",
    "inputs": {
        "host": {"connection": {"name": "@parameters('$connections')['sql']['connectionId']"}},
        "method": "get",
        "path": "/datasets/default/tables/@{encodeURIComponent('Orders')}/onnewitems"
    },
    "recurrence": {"frequency": "Minute", "interval": 5}
}

Actions:
- Perform operations after trigger
- Multiple actions per workflow
- Can be chained, parallel, or conditional

5. How do you handle errors in Logic Apps?

1. Configure Run After:
// Action runs after specific conditions
{
    "actions": {
        "Send_failure_email": {
            "runAfter": {
                "Process_order": ["Failed", "TimedOut"]
            },
            "type": "ApiConnection",
            ...
        }
    }
}

// Run after states: Succeeded, Failed, Skipped, TimedOut

2. Scope with Try-Catch:
{
    "actions": {
        "Try_Scope": {
            "type": "Scope",
            "actions": {
                "Action1": {...},
                "Action2": {...}
            }
        },
        "Catch_Scope": {
            "type": "Scope",
            "runAfter": {
                "Try_Scope": ["Failed", "TimedOut"]
            },
            "actions": {
                "Log_Error": {
                    "type": "Compose",
                    "inputs": "@result('Try_Scope')"
                },
                "Send_Alert": {...}
            }
        }
    }
}

3. Retry Policy:
{
    "type": "Http",
    "inputs": {...},
    "retryPolicy": {
        "type": "exponential",
        "count": 4,
        "interval": "PT10S",
        "minimumInterval": "PT5S",
        "maximumInterval": "PT1H"
    }
}




6. What is the difference between Logic Apps and Power Automate?

AspectLogic AppsPower Automate
Target UsersDevelopers, IT ProsBusiness users, Citizen developers
DevelopmentAzure Portal, VS Code, ARMWeb portal, Desktop app
PricingPer execution or hosting planPer user/flow licensing
Enterprise FeaturesFull (ISE, B2B, custom connectors)Limited
GovernanceAzure RBAC, policiesPower Platform admin center
DevOpsFull CI/CD supportSolutions-based
Desktop AutomationNoYes (RPA)

Choose Logic Apps when:
- Enterprise integration scenarios
- Need full Azure ecosystem
- Developer-centric teams
- Complex error handling

Choose Power Automate when:
- End-user automation
- Desktop/RPA automation
- Microsoft 365 integration focus
- Non-technical users

7. How do you implement loops in Logic Apps?

1. For Each Loop:
{
    "For_each_order": {
        "type": "Foreach",
        "foreach": "@triggerBody()?['orders']",
        "actions": {
            "Process_order": {
                "type": "Http",
                "inputs": {
                    "method": "POST",
                    "uri": "https://api.example.com/process",
                    "body": "@items('For_each_order')"
                }
            }
        },
        "runtimeConfiguration": {
            "concurrency": {
                "repetitions": 20  // Parallel degree (1 = sequential)
            }
        }
    }
}

2. Until Loop:
{
    "Until_complete": {
        "type": "Until",
        "expression": "@equals(variables('status'), 'Complete')",
        "limit": {
            "count": 60,
            "timeout": "PT1H"
        },
        "actions": {
            "Check_status": {
                "type": "Http",
                "inputs": {...}
            },
            "Set_status": {
                "type": "SetVariable",
                "inputs": {
                    "name": "status",
                    "value": "@body('Check_status')?['status']"
                },
                "runAfter": {"Check_status": ["Succeeded"]}
            },
            "Delay": {
                "type": "Wait",
                "inputs": {"interval": {"count": 30, "unit": "Second"}},
                "runAfter": {"Set_status": ["Succeeded"]}
            }
        }
    }
}

8. What are managed identities in Logic Apps?

Managed identities allow Logic Apps to authenticate to Azure services without storing credentials.

Types:
- System-assigned: Created with Logic App, deleted with it
- User-assigned: Independent lifecycle, shareable

// Enable system-assigned identity (ARM)
{
    "type": "Microsoft.Logic/workflows",
    "identity": {
        "type": "SystemAssigned"
    }
}

// Use in HTTP action to call Azure REST API
{
    "type": "Http",
    "inputs": {
        "method": "GET",
        "uri": "https://management.azure.com/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Storage/storageAccounts?api-version=2021-02-01",
        "authentication": {
            "type": "ManagedServiceIdentity",
            "audience": "https://management.azure.com"
        }
    }
}

// Azure Key Vault with managed identity
{
    "type": "ApiConnection",
    "inputs": {
        "host": {"connection": {"name": "@parameters('$connections')['keyvault_1']['connectionId']"}},
        "method": "get",
        "path": "/secrets/@{encodeURIComponent('mySecret')}/value"
    }
}

9. How do you call REST APIs in Logic Apps?

HTTP Connector (Built-in):
{
    "Call_API": {
        "type": "Http",
        "inputs": {
            "method": "POST",
            "uri": "https://api.example.com/orders",
            "headers": {
                "Content-Type": "application/json",
                "Authorization": "Bearer @{variables('accessToken')}"
            },
            "body": {
                "orderId": "@triggerBody()?['orderId']",
                "items": "@triggerBody()?['items']"
            },
            "queries": {
                "version": "v2"
            }
        },
        "retryPolicy": {
            "type": "exponential",
            "count": 3,
            "interval": "PT10S"
        }
    }
}

Authentication Options:
// Basic Authentication
"authentication": {
    "type": "Basic",
    "username": "user",
    "password": "@parameters('apiPassword')"
}

// OAuth 2.0
"authentication": {
    "type": "ActiveDirectoryOAuth",
    "tenant": "tenant-id",
    "audience": "https://api.example.com",
    "clientId": "client-id",
    "credentialType": "Secret",
    "secret": "@parameters('clientSecret')"
}

// API Key
"headers": {
    "X-API-Key": "@parameters('apiKey')"
}

10. What is the Workflow Definition Language?

Workflow Definition Language is the JSON-based schema used to define Logic Apps workflows.

Structure:
{
    "definition": {
        "$schema": "https://schema.management.azure.com/schemas/2016-06-01/Microsoft.Logic.json",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "apiKey": {
                "type": "SecureString",
                "defaultValue": ""
            }
        },
        "triggers": {
            "manual": {
                "type": "Request",
                "kind": "Http"
            }
        },
        "actions": {
            "Initialize_variable": {
                "type": "InitializeVariable",
                "inputs": {
                    "variables": [{
                        "name": "counter",
                        "type": "integer",
                        "value": 0
                    }]
                }
            },
            "HTTP_Call": {
                "type": "Http",
                "runAfter": {"Initialize_variable": ["Succeeded"]},
                "inputs": {...}
            }
        },
        "outputs": {}
    },
    "parameters": {
        "$connections": {
            "value": {}
        }
    }
}

Common Expressions:
// Access trigger outputs
@triggerBody()
@triggerOutputs()

// Access action outputs
@body('ActionName')
@outputs('ActionName')
@actions('ActionName').outputs.body

// Variables
@variables('varName')

// Parameters
@parameters('paramName')

// Functions
@concat('Hello ', triggerBody()?['name'])
@length(triggerBody()?['items'])
@if(equals(1, 1), 'yes', 'no')
@formatDateTime(utcNow(), 'yyyy-MM-dd')

11. How do you implement conditional logic?

Condition Action:
{
    "Condition_check_amount": {
        "type": "If",
        "expression": {
            "and": [
                {"greater": ["@triggerBody()?['amount']", 1000]},
                {"equals": ["@triggerBody()?['status']", "pending"]}
            ]
        },
        "actions": {
            "Approve_order": {...}
        },
        "else": {
            "actions": {
                "Auto_process": {...}
            }
        }
    }
}

Switch Action:
{
    "Switch_order_type": {
        "type": "Switch",
        "expression": "@triggerBody()?['orderType']",
        "cases": {
            "Standard": {
                "case": "standard",
                "actions": {
                    "Process_standard": {...}
                }
            },
            "Express": {
                "case": "express",
                "actions": {
                    "Process_express": {...}
                }
            }
        },
        "default": {
            "actions": {
                "Process_default": {...}
            }
        }
    }
}

12. What are integration accounts?

Integration accounts are Azure resources that support enterprise B2B integration scenarios in Logic Apps.

Features:
- Store and manage B2B artifacts
- Support EDI (X12, EDIFACT)
- XML processing and validation
- Partner management

Components:
Integration Account
├── Partners           // Trading partners
├── Agreements        // B2B agreements
├── Schemas           // XSD, JSON schemas
├── Maps              // XSLT transformations
├── Certificates      // Signing, encryption
├── Assemblies        // Custom .NET code
└── Batch configurations

B2B Workflow Example:
{
    "actions": {
        "Decode_X12_message": {
            "type": "X12Decode",
            "inputs": {
                "content": "@triggerBody()",
                "integrationAccountArtifact": {
                    "agreementName": "Partner_Agreement"
                }
            }
        },
        "Transform_XML": {
            "type": "Xslt",
            "inputs": {
                "content": "@body('Decode_X12_message')",
                "integrationAccount": {
                    "map": {"name": "OrderToInternal"}
                }
            },
            "runAfter": {"Decode_X12_message": ["Succeeded"]}
        }
    }
}

13. How do you secure Logic Apps?

1. Access Control:
// Restrict trigger access with IP
{
    "triggers": {
        "manual": {
            "type": "Request",
            "kind": "Http",
            "operationOptions": "EnableSchemaValidation",
            "runtimeConfiguration": {
                "securityConfiguration": {
                    "allowedCallerIpAddresses": [
                        {"addressRange": "10.0.0.0/8"}
                    ]
                }
            }
        }
    }
}

2. SAS Authentication:
- Request trigger generates SAS URL
- Regenerate keys periodically

3. OAuth with Azure AD:
// Configure in workflow settings
{
    "triggers": {
        "manual": {
            "type": "Request",
            "kind": "Http",
            "operationOptions": "RequireAuthenticatedIdentity"
        }
    }
}

4. Secure Parameters:
"parameters": {
    "apiKey": {
        "type": "SecureString",
        "metadata": {"description": "API key for external service"}
    }
}

// Or use Key Vault reference
"parameters": {
    "secretValue": {
        "reference": {
            "keyVault": {"id": "/subscriptions/.../vaults/myvault"},
            "secretName": "mySecret"
        }
    }
}

14. What is the difference between stateful and stateless workflows?

Stateful Workflows (Default):
- Full run history saved
- Input/output data persisted
- Support for long-running operations
- Higher latency

Stateless Workflows (Standard only):
- Run history in memory only
- Better performance (lower latency)
- Limited to 5 minutes execution
- No checkpoint/retry support

// workflow.json for stateless
{
    "definition": {...},
    "kind": "Stateless"
}

// workflow.json for stateful
{
    "definition": {...},
    "kind": "Stateful"
}

Use Stateless when:
- High throughput, low latency needed
- Request/response scenarios
- Don't need run history
- Short execution time

15. How do you monitor Logic Apps?

1. Run History:
- View in Azure Portal
- Track inputs/outputs per action
- Debug failed runs

2. Azure Monitor Integration:
// Diagnostic settings
az monitor diagnostic-settings create --name logicapp-diag \
  --resource /subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Logic/workflows/{app} \
  --logs '[{"category": "WorkflowRuntime", "enabled": true}]' \
  --metrics '[{"category": "AllMetrics", "enabled": true}]' \
  --workspace {log-analytics-id}

3. Log Analytics Queries:
// Failed runs
AzureDiagnostics
| where ResourceType == "WORKFLOWS"
| where status_s == "Failed"
| project TimeGenerated, resource_workflowName_s, error_message_s

// Run duration analysis
AzureDiagnostics
| where ResourceType == "WORKFLOWS"
| where Category == "WorkflowRuntime"
| summarize avg(duration_s) by resource_workflowName_s

4. Alerts:
- Set alerts on failures
- Monitor run duration
- Track throttling




16. What are inline code actions?

Inline code allows you to run JavaScript code snippets directly within Logic Apps.

{
    "Execute_JavaScript": {
        "type": "JavaScriptCode",
        "inputs": {
            "code": "var items = workflowContext.trigger.outputs.body.items;\nvar total = 0;\nfor (var i = 0; i < items.length; i++) {\n    total += items[i].price * items[i].quantity;\n}\nreturn total;"
        }
    }
}

// Access workflow context
workflowContext.trigger.outputs.body
workflowContext.actions.ActionName.outputs.body
workflowContext.workflow.name
workflowContext.workflow.run.id

Limitations:
- 100 KB code limit
- 200 second timeout
- Node.js environment
- No external packages

Use Cases:
- Complex data transformations
- Custom calculations
- String manipulation
- Array processing

17. How do you implement retry policies?

{
    "HTTP_Call": {
        "type": "Http",
        "inputs": {...},
        "retryPolicy": {
            "type": "exponential",  // or "fixed", "none"
            "count": 4,             // Number of retries
            "interval": "PT10S",    // Initial interval
            "minimumInterval": "PT5S",
            "maximumInterval": "PT1H"
        }
    }
}

// Fixed retry policy
"retryPolicy": {
    "type": "fixed",
    "count": 3,
    "interval": "PT30S"
}

// Disable retry
"retryPolicy": {
    "type": "none"
}

Default Behavior:
- Exponential backoff
- 4 retries
- Retries on 408, 429, 5xx errors

18. What is the Liquid template in Logic Apps?

Liquid is a template language for transforming JSON and XML data in Logic Apps with integration accounts.

// Liquid template for JSON transformation
{
  "order": {
    "id": "{{ content.orderId }}",
    "customer": "{{ content.customerName | upcase }}",
    "items": [
      {% for item in content.lineItems %}
      {
        "sku": "{{ item.productId }}",
        "name": "{{ item.productName }}",
        "quantity": {{ item.qty }},
        "price": {{ item.unitPrice | times: item.qty }}
      }{% unless forloop.last %},{% endunless %}
      {% endfor %}
    ],
    "total": {{ content.lineItems | map: "unitPrice" | sum }}
  }
}

// Use in Logic Apps action
{
    "Transform_JSON": {
        "type": "Liquid",
        "inputs": {
            "content": "@triggerBody()",
            "integrationAccount": {
                "map": {"name": "OrderTransform"}
            }
        }
    }
}

Liquid Features:
- Loops, conditionals
- Filters (uppercase, date format)
- Variables
- JSON and XML support

19. How do you integrate Logic Apps with Azure Functions?

// Call Azure Function from Logic App
{
    "Call_Function": {
        "type": "Function",
        "inputs": {
            "function": {
                "id": "/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Web/sites/{functionApp}/functions/{functionName}"
            },
            "body": {
                "orderId": "@triggerBody()?['orderId']",
                "items": "@triggerBody()?['items']"
            },
            "method": "POST"
        }
    }
}

// Or use HTTP connector
{
    "type": "Http",
    "inputs": {
        "method": "POST",
        "uri": "https://myfunctionapp.azurewebsites.net/api/ProcessOrder",
        "headers": {
            "x-functions-key": "@parameters('functionKey')"
        },
        "body": "@triggerBody()"
    }
}

Best Practices:
- Use Function connector for better integration
- Implement idempotency in functions
- Handle timeouts appropriately
- Use managed identity for auth

20. What are best practices for Logic Apps?

1. Design Patterns:
- Use scopes for try-catch error handling
- Implement correlation IDs for tracking
- Use child workflows for reusable logic
- Avoid nested loops (O(n²) complexity)

2. Performance:
// Enable chunking for large messages
{
    "runtimeConfiguration": {
        "contentTransfer": {
            "transferMode": "Chunked"
        }
    }
}

// Batch actions where possible
// Use pagination for large datasets
// Implement caching strategies

3. Security:
- Use managed identities
- Store secrets in Key Vault
- Enable HTTPS only
- Implement IP restrictions
- Obfuscate sensitive data in run history

4. Monitoring:
- Enable diagnostic settings
- Set up alerts for failures
- Track run durations
- Monitor throttling

5. DevOps:
// Use ARM templates or Bicep
// Parameterize environment-specific values
// Implement CI/CD pipelines
// Version control workflow definitions
// Use separate resources per environment

6. Cost Optimization:
- Use Standard plan for high volume
- Minimize API calls
- Batch operations
- Clean up unused workflows

Microsoft Azure Interview Questions

Comprehensive interview questions for Azure cloud services and data engineering roles.


Popular Posts