Skip to main content

Overview

The Custom integration allows you to connect any monitoring tool, script, or application that can send HTTP POST requests. EasyContact automatically extracts common fields and captures additional data as tags.
Use Custom integration when your monitoring tool isn’t in our supported list, or when you want to send alerts from custom applications.

Setup Instructions

1

Create Integration in EasyContact

  1. Go to ConfigurationIntegrations
  2. Click Add Integration
  3. Select Custom as the type
  4. Enter a name (e.g., “Internal Monitoring”)
  5. Save and copy the webhook URL
2

Configure Your Source

Set up your monitoring tool or script to POST JSON to the webhook URL
3

Send a Test Event

Send a test payload and verify it appears in EasyContact
4

Configure Mappings

Adjust severity mapping and enrichment based on your payload structure

Webhook URL

Your webhook URL:

Request Format


Send events in this structure for best results:

Field Recognition

EasyContact automatically recognizes these common field names:

Title Fields

  • title, name, subject, summary
  • alert_name / alertName
  • message_title / messageTitle
  • event_name / eventName

Description Fields

  • description, message, body, text, details, content
  • alert_message / alertMessage
  • event_description / eventDescription

Severity Fields

  • severity, priority, level, criticality
  • alert_severity / alertSeverity
  • event_severity / eventSeverity

Status Fields

  • status, state
  • alert_status / alertStatus
  • event_status / eventStatus
  • current_state / currentState

Host Fields

  • host, hostname, server, node, instance, machine
  • host_name / hostName
  • target, source_host / sourceHost

IP Address Fields

  • hostIp, host_ip, ip
  • ip_address / ipAddress
  • source_ip / sourceIp

Service Fields

  • service, application, app, component
  • service_name / serviceName
  • app_name / appName

Timestamp Fields

  • timestamp, time, datetime, date
  • event_time / eventTime
  • created_at / createdAt
  • occurred_at / occurredAt
  • start_time / startTime

Environment Fields

  • environment, env
  • environment_name / environmentName

Other Fields

  • region, datacenter, dc, location
  • team, owner
  • customer, client, tenant

Severity Values

These values are automatically mapped: Values are case-insensitive.

Status Values

Any status value not in the OK list is treated as Problem. You don’t need to send a specific “problem” value — it’s the default.

Tags Handling

All unrecognized fields are captured as tags:
Results in tags:
  • custom_field_1: value1
  • custom_field_2: value2

Nested Tags

You can also send structured tags:

Example Payloads

Minimal Payload

Full Payload

Recovery Payload


Custom Severity Mapping

If your tool uses custom severity values:

Enrichment Examples

Add context to all custom alerts:

cURL Examples

Sending an Alert

Sending a Recovery


Integration Examples

From a Shell Script

From Python

From Node.js


Troubleshooting

  1. Verify Content-Type is application/json
  2. Ensure payload is valid JSON
  3. Check webhook URL is correct
  4. Look at response body for error details
  1. Use recognized field names from the list above
  2. Check field name spelling and casing
  3. View webhook samples to see parsed result
  1. Check severity value spelling
  2. Configure custom severity mapping
  3. Set appropriate default severity
  1. Include same eventId in recovery
  2. Set status to “resolved” or “ok”
  3. Verify both payloads reach EasyContact

Best Practices

Include a unique eventId that stays consistent between alert and recovery. This enables automatic incident resolution.
Add host, service, and environment fields to help responders quickly understand the alert.
Add tags that can be used in escalation routing rules (team, environment, customer).
Send test alerts and recoveries before relying on the integration in production.
Add links to your monitoring tool or relevant dashboards in the url field.