Skip to main content

Setup & Configuration

Configure Job Queue Admin using the Job Queue Admin Setup page. This guide covers all configuration options for administrators.


Accessing Job Queue Admin Setup

  1. Choose the magnifier icon

  2. Enter Job Queue Admin Setup

  3. Choose the related link

  4. Job Queue Admin Setup page opens

image-20260208-145836.png

Or use the Tell Me search (Alt+Q) and type "Job Queue Admin Setup".


First-Time Setup

Step 1: Privacy Acknowledgment

Before enabling Job Queue Admin, you must acknowledge the data privacy terms:

  1. Open Job Queue Admin Setup

  2. In the Privacy section, click Privacy Policy to review the JEMEL Privacy Policy (see the Job Queue Admin section for data access, processing, and storage details)

  3. Toggle Data Privacy Acknowledged to Yes

The system automatically records your User ID and the date of acknowledgment. This is required for GDPR compliance and must be completed before the extension can be enabled.

image-20260208-130820.png

Step 2: Connect to JEMEL Services (Auto-Enables Extension)

To enable the extension and interactive features (Teams/Slack notifications with action buttons), connect to JEMEL Services:

  1. Click Connect to JEMEL Services

  2. A sign-in popup appears - sign in with an admin account

  3. Review and Accept the Microsoft permissions

  4. The popup closes and BC asks: "A user named JEMEL Job Queue Admin will be created. Do you want to continue?"

  5. Click Yes to confirm

  6. You should see "Connected" status change to Yes

  7. Middleware test runs automatically - after successful connection, the system tests the middleware and shows the result

image-20260208-132129.png

What Happens During Connect:

The Connect process performs several actions to set up secure API access:

StepWhat HappensWhy It's Needed
1. OAuth Admin ConsentOpens Microsoft sign-in to grant admin consent for JEMEL's appAuthorizes JEMEL to access your BC tenant
2. AAD Application CreatedRegisters JEMEL app in your BC's Microsoft Entra Applications listCreates the service principal entry in BC
3. System User CreatedCreates a BC user named "JEMEL Job Queue Admin" (License Type: Application)Required for API authentication
4. Permission Sets AssignedAssigns two permission sets to the app (see table below)Grants minimal permissions needed for API operations
5. Middleware RegistrationRegisters your tenant with JEMEL's notification middlewareEnables Layer 3 polling for reliable notification delivery
6. Auto-Test MiddlewareAutomatically tests the middleware connectionVerifies everything works, updates "Connection Tested" status
7. Enable ExtensionSets Enabled to YesExtension starts monitoring job queue errors
8. Enable Azure PollingSets Azure Polling Enabled to YesAutomatically enables Layer 3 delivery

Permission Sets Assigned:

Permission SetTypePurpose
JML JQA AdminCustom (from extension)Access to Job Queue Admin tables, pages, and codeunits
D365 AUTOMATIONBC Built-inExecute permission for base codeunits required by API bound actions

Why D365 AUTOMATION is Required:

When the middleware marks a notification as sent via the API, BC's internal event subscribers (like Master Data Management) are triggered. The D365 AUTOMATION permission set grants execute permission on these base codeunits, allowing the API to complete successfully. This is a standard BC permission set designed for automated/background processes.

Important Notes:

  • The system user confirmation is a standard BC security feature - it ensures you know a service principal is being created

  • If you click No on the user creation prompt, the connection is cancelled with a friendly message

  • The "JML JQA Admin" permission set grants access to Job Queue Admin-specific objects only

  • The "D365 AUTOMATION" permission set is a BC built-in set with limited scope for automated processes

  • No business data or credentials are sent to external services

If Connection Fails:

IssueSolution
Popup blockedAllow popups for Business Central, or use "Connect via Hyperlink" fallback
User declined confirmationClick Connect again and confirm the user creation
Permission errorsEnsure you have SUPER or SECURITY permission set

Step 3: Configure Notification Channels

After connecting, the extension is enabled and monitoring job queue errors. Now configure where notifications are sent:

  1. Go to Actions > Navigate > Notification Channels

  2. Create at least one channel (Email or Teams recommended)

  3. Test the channel using Send Test Notification action

image-20260208-130700.png

What Happens Automatically:

  • Extension starts monitoring job queue errors (enabled on Connect)

  • Notification Processor job is created automatically

  • Processor status shows "Ready" in the setup page


Setup Page Structure

The Job Queue Admin Setup page contains several FastTabs:

General FastTab

FieldDescription
EnabledMaster switch for the entire extension
Auto-Restart EnabledEnable automatic job restarts based on restart rules

Privacy FastTab

FieldDescription
Data Privacy AcknowledgedShows if privacy terms accepted
Privacy Acknowledged DateDate of acknowledgment
Privacy Acknowledged ByUser who acknowledged

Notifications FastTab

This section combines delivery layers and throttling settings.

Delivery Layers

FieldDescriptionEditable
Layer 1: Immediate SendEnable/disable direct sending when job failsYes (toggle)
Immediate Send Timeout MsHTTP timeout in millisecondsYes
Layer 2: Processor StatusShows queue processor status (Ready, On Hold, Not Created)No (read-only)
Layer 3: Azure PollingShows if Azure middleware polling is activeNo (read-only)
Stale Notification MinutesMinutes before Layer 3 picks up stale notificationsYes

Layer Control:

  • Layer 1: Toggle on/off with the switch

  • Layer 2: Control with Start/Stop Processor actions

  • Layer 3: Automatically enabled on Connect, disabled on Disconnect

Throttling

FieldDescriptionDefault
Min Minutes Between NotificationsMinimum gap between notifications for same job5
Max Notifications Per HourMaximum notifications per job per hour20

Notification Processor (Layer 2)

The Notification Processor is a background job that handles notifications that couldn't be sent immediately (Layer 2 delivery).

Processor Status Meanings (shown in Notification Layers section):

  • Ready / In Process: Processor is running and handling queued notifications

  • On Hold: Processor is paused, queued notifications will wait

  • Not Created: No processor job exists yet (enable extension to create)

  • Not Found: Job was deleted externally, use Start Processor to recreate

How It Works

  1. When a job queue fails, the extension tries immediate send (Layer 1)

  2. If immediate send fails (timeout, network issue), the notification is queued

  3. The Notification Processor job runs every 5 minutes to retry queued notifications

  4. Failed sends are retried with exponential backoff (1min, 2min, 4min, etc.)

Automatic Creation

The processor job is automatically created when you enable the extension. No manual setup required.

Manual Control

Use the Start Processor and Stop Processor actions in the Setup page:

ActionEffect
Start ProcessorCreates the job if missing, or sets status to Ready
Stop ProcessorSets the job status to On Hold (pauses processing)

image-20260208-150454.png

When to Stop the Processor:

  • During maintenance or debugging

  • When testing channel configurations

  • When you want to batch notifications

When to Restart:

  • After making configuration changes

  • After resolving notification issues

  • To resume normal operation

Monitoring the Queue

To see pending notifications:

  1. Search for Notification Queue

  2. View Status, Attempt Count, and Next Attempt time

  3. Use Process Queue action to manually process entries


Notification Layer Configuration

Layer 1: Immediate Send

Purpose: Fastest notification path - sends directly when job fails.

Configuration:

  • Immediate Send Enabled: Set to Yes (default)

  • Immediate Send Timeout Ms: HTTP timeout in milliseconds (default: 3000)

When to Adjust:

  • Increase timeout if external services are slow

  • Disable if you prefer queue-only delivery

  • Keep enabled for fastest alerting

Layer 2: Queue Processing

Purpose: Reliable delivery with retry capability.

Configuration:

  • Queue entries processed by the Notification Processor job (runs every 5 minutes)

  • Use Start/Stop Processor actions to control the processing job

When to Adjust:

  • Always keep processor running for reliability

  • Works as fallback when immediate send fails

  • Handles retry logic with exponential backoff

Layer 3: Azure Polling (Safety Net)

Purpose: Safety net that catches notifications missed by Layer 1 and Layer 2.

Configuration:

  • Azure Polling Enabled: Read-only status field - automatically set to Yes when you connect to JEMEL Services, and No when you disconnect

  • Stale Notification Minutes: How old a notification must be before Layer 3 picks it up (default: 15)

  • Azure middleware polls every 30 minutes

  • Note: This field cannot be toggled manually - it reflects the connection state

When This Runs:

  • Only if notification is older than Stale Notification Minutes

  • Most notifications (90%+) delivered by Layer 1/2 before this runs

  • Acts as insurance against BC Job Queue failures


Multi-Company Configuration

Job Queue Admin uses tenant-wide data - most settings are shared across all companies in your Business Central tenant.

What This Means

  • Single setup: Configure once in any company, applies to all

  • Unified queue: All company notifications go to one queue

  • Consolidated log: View history from all companies in one place

  • Single processor: One Job Queue Entry handles all notifications

Company Filter Feature

Channels, restart rules, maintenance windows, and digest schedules support optional Company Filter:

  • Empty filter: Applies to all companies (default)

  • Company list: Comma-separated company names (e.g., "CRONUS,FABRIKAM")

  • Partial match: Filters use contains matching

Example: Create a Teams channel only for production companies:

  1. Create notification channel "TEAMS-PROD"

  2. Set Company Filter to "PROD,PRODUCTION"

  3. Only companies with "PROD" or "PRODUCTION" in their name will use this channel

Per-Company Settings

The Job Configuration table remains per-company because Job Queue Entries are themselves per-company. This allows:

  • Different notification settings per job per company

  • Company-specific overrides for shared channels

  • Granular control when needed


Throttling Configuration

Prevent notification storms with throttling settings:

Min Minutes Between Notifications

Purpose: Minimum time gap between notifications for the same job.

Field: Min Minutes Between Notification

Default: 5 minutes

How It Works:

  • If Job A fails at 10:00, notification sent

  • If Job A fails again at 10:03, notification suppressed

  • Next notification for Job A allowed at 10:05

When to Adjust:

  • Increase for jobs that fail frequently (reduce noise)

  • Decrease for critical jobs (faster alerting)

Max Notifications Per Hour

Purpose: Hard limit on notifications per job per hour.

Field: Max Notifications Per Hour

Default: 20

How It Works:

  • Counts notifications sent in rolling 60-minute window

  • Blocks new notifications when limit reached

  • Resets automatically as time passes

When to Adjust:

  • Decrease for non-critical jobs

  • Increase for jobs that legitimately fail often


From Job Queue Admin Setup, you can access:

Notification Channels

Purpose: Configure where notifications are sent.

Access: Actions > Navigate > Notification Channels

image-20260208-150834.png

Restart Rules

Purpose: Configure automatic restart patterns.

Access: Actions > Navigate > Restart Rules

Maintenance Windows

Purpose: Define quiet periods.

Access: Actions > Navigate > Maintenance Windows

Job Configurations

Purpose: Per-job notification settings.

Access: Actions > Navigate > Job Configurations


Validation & Testing

Test Setup Configuration

Use the Test Configuration action to validate your setup:

  1. Open Job Queue Admin Setup

  2. Click Test Configuration in the Actions menu

  3. Review the test results

image-20260208-150958.png

What Gets Tested:

  • Privacy acknowledgment status

  • Extension enabled status

  • At least one channel configured

  • Channel connectivity

Common Validation Errors

ErrorCauseSolution
Privacy not acknowledgedStep 1 skippedClick Acknowledge Privacy
No channels configuredNo notification destinationsCreate at least one channel
Channel test failedInvalid channel settingsCheck channel configuration

Disconnecting from JEMEL Services

If you need to disconnect from JEMEL Services (e.g., to switch tenants, troubleshoot, or uninstall):

  1. Open Job Queue Admin Setup

  2. Click Disconnect from JEMEL Services

  3. Confirm the disconnection

image-20260208-151125.png

What Happens During Disconnect:

StepWhat HappensEffect
1. Middleware UnregistrationRemoves your tenant from JEMEL's notification middlewareLayer 3 polling stops immediately
2. Permission Sets RemovedRemoves all permission sets (JML JQA Admin, D365 AUTOMATION) from the JEMEL appApp can no longer access BC data
3. AAD Application DisabledDisables (not deletes) the app in Microsoft Entra ApplicationsService principal is deactivated
4. Azure Polling DisabledSets Azure Polling Enabled to NoPrevents confusion about Layer 3 state
5. Local Settings ClearedResets connection status in Job Queue Admin SetupReady for fresh reconnection

Important Notes:

  • Disconnect does not delete data - Your notification channels, rules, and logs are preserved

  • Disconnect does not uninstall - The extension remains installed and can be reconnected

  • Layer 1 & 2 continue working - Direct notifications (Email) still work after disconnect

  • Layer 3 stops - Azure polling/middleware features require reconnection

When to Disconnect:

  • Troubleshooting connection issues

  • Switching to a different tenant

  • Before uninstalling the extension

  • Security review or audit requirements

Reconnecting After Disconnect:

Simply click Connect to JEMEL Services again. The process will:

  • Re-enable the existing AAD Application (if present)

  • Reassign both permission sets (JML JQA Admin and D365 AUTOMATION)

  • Re-register with the middleware


Best Practices

Initial Setup

  1. Start with Email: Most reliable channel for testing

  2. Test before enabling: Use Test Configuration

  3. Enable one channel first: Verify delivery works

  4. Add channels gradually: Don't configure everything at once

Throttling Settings

  1. Start with defaults: 5 minutes / 20 per hour

  2. Monitor notification log: Check for suppressed notifications

  3. Adjust per job type: Use Job Configurations for specific jobs

Production Recommendations

SettingDevelopmentProduction
Immediate Send Timeout5000ms3000ms
Min Minutes Between Ntf15-10
Max Notifications Per Hour5010-20

Next Steps: Configure your first Notification Channel to start receiving alerts.