Articles in this section

DNS / Domain Tools Integration in FlowMattic

Updated:

The DNS / Domain Tools app is a built-in FlowMattic application that provides comprehensive domain and network diagnostic capabilities. Perform DNS lookups, verify email domains, check SSL certificates, inspect HTTP headers, and test port connectivity — all within your automated workflows. No external API key or connection is required.


Overview

Domain and network diagnostics are essential for monitoring, validation, and troubleshooting. The DNS / Domain Tools app uses PHP’s built-in network functions to perform all operations directly from your server — no external services or API keys needed, and no data is transmitted to third-party services.


Connection Setup

DNS / Domain Tools is a core utility app — no connection setup is needed.

  • No API key required
  • No external service to configure
  • All operations run locally on your server
  • Available immediately in all FlowMattic installations using FlowMattic v6+

Simply select DNS / Domain Tools when adding an action step to your workflow.


Available Actions

The DNS / Domain Tools app provides 7 actions for domain and network diagnostics.

1. DNS Lookup

Retrieve DNS records for a domain, including A, AAAA, MX, NS, TXT, CNAME, SOA, and SRV records.

Configuration:

Field Required Description
Domain Yes Domain name to look up (e.g., example.com). Protocols and paths are automatically stripped.
Record Type No Type of DNS record to retrieve. Defaults to All Records.

Record Type Options:

Option Description
All Records Returns all available record types
A (IPv4 Address) Standard IPv4 address records
AAAA (IPv6 Address) IPv6 address records
MX (Mail Exchange) Mail server records
NS (Name Server) Nameserver records
TXT (Text) Text records (SPF, DKIM, DMARC, etc.)
CNAME (Canonical Name) Alias records
SOA (Start of Authority) Start of Authority records
SRV (Service) Service location records

Output:

Field Description
status success or error
domain The queried domain
record_type The record type requested
record_count Number of records found
records Array of DNS records with type-specific fields
ipv4_addresses List of IPv4 addresses (when A records are included)

Workflow Builder ‹ FlowMattic — WordPress 2026-03-01 at 12.56.49 AM.png


2. Reverse DNS Lookup

Resolve an IP address to its hostname and retrieve PTR records.

Configuration:

Field Required Description
IP Address Yes IPv4 or IPv6 address to resolve (e.g., 8.8.8.8).

Output:

Field Description
status success or error
ip_address The IP that was looked up
hostname Resolved hostname
resolved true if hostname was successfully resolved
ip_version IPv4 or IPv6
ptr_records Array of PTR records (if available)

Use Case: Verify reverse DNS (rDNS) configuration for mail servers, or investigate IP addresses found in logs.


3. MX Lookup

Get mail server (MX) records for a domain, sorted by priority, with IP resolution.

Configuration:

Field Required Description
Domain Yes Domain name to look up MX records for (e.g., example.com).

Output:

Field Description
status success
domain The queried domain
has_mx true if MX records exist
mx_count Number of MX records found
mx_records Array of MX records sorted by priority

Each MX record contains:

Field Description
host Mail server hostname
priority MX priority (lower = higher priority)
ip Resolved IPv4 address of the mail server

Workflow Builder ‹ FlowMattic — WordPress 2026-03-01 at 12.57.41 AM.png

Workflow Builder ‹ FlowMattic — WordPress 2026-03-01 at 12.58.48 AM.png


4. Verify Email Domain

Check whether a domain or email address can receive emails by verifying MX and A records.

Configuration:

Field Required Description
Email Address or Domain Yes Full email address (e.g., [email protected]) or domain name (e.g., example.com).

Output:

Field Description
status success or error
input The original input value
domain Extracted domain name
is_email true if input was an email address
is_valid_format true if email format is valid (only when is_email is true)
can_receive_email true if domain can receive emails (per RFC 5321)
has_mx_records true if MX records exist
has_a_record true if A record fallback is available
has_aaaa_record true if IPv6 address record exists
is_free_provider true if domain is a known free email provider
mx_records Array of MX records with priority

Email Deliverability Logic (RFC 5321):

  • If MX records exist → can receive email
  • If no MX but A record exists → can receive email (A record serves as fallback)
  • If neither MX nor A records exist → cannot receive email

Free Email Providers Detected:
gmail.com, yahoo.com, hotmail.com, outlook.com, aol.com, icloud.com, mail.com, protonmail.com, zoho.com, yandex.com, gmx.com, live.com

Use Case: Validate email addresses in registration workflows, filter out free email providers for B2B lead qualification, or check deliverability before sending important emails.


5. SSL Certificate Info

Retrieve SSL/TLS certificate details including issuer, expiry date, validity, and Subject Alternative Names.

Configuration:

Field Required Description
Domain Yes Domain name to check (e.g., example.com).
Port No HTTPS port. Defaults to 443. Use 8443 for alternative HTTPS ports.

Output:

Field Description
status success or error
domain The checked domain
port The port checked
subject Certificate subject (common name)
issuer Certificate authority organization name
issuer_cn Certificate authority common name
valid_from Certificate start date
valid_to Certificate expiry date
is_valid true if certificate is currently valid
days_remaining Number of days until expiry (0 if expired)
serial_number Unique certificate serial number
signature_algorithm Algorithm used to sign the certificate
san Subject Alternative Names (all domains covered)

Workflow Builder ‹ FlowMattic — WordPress 2026-03-01 at 12.59.36 AM.png

Use Case: Monitor SSL certificate expiry dates across your domains. Set up a scheduled workflow to check certificates and send alerts when days_remaining drops below 30.


6. HTTP Headers

Fetch HTTP response headers from a URL to check server configuration, security headers, and response status.

Configuration:

Field Required Description
URL Yes Full URL or domain name. Protocol is added automatically if missing.
Method No Request method. Defaults to HEAD (faster, headers only). Choose GET for a full request.

Output:

Field Description
status success or error
url The requested URL
method The HTTP method used
status_code HTTP response code (200, 301, 404, 500, etc.)
status_message Status text (OK, Redirect, Not Found, etc.)
content_type MIME type of the content
server Server software identifier
headers Complete key-value object of all HTTP headers

Common Headers Returned:

Header Description
content-type MIME type of the response
server Server software (e.g., Apache, Nginx)
cache-control Caching policy
strict-transport-security HSTS security header
x-frame-options Clickjacking protection
x-content-type-options MIME sniffing prevention

Use Case: Monitor website uptime by checking status codes, audit security headers across your sites, or verify server configurations.


7. Check Port

Test if a specific port is open on a host to verify service availability.

Configuration:

Field Required Description
Host Yes Domain name or IP address (e.g., example.com or 192.168.1.1).
Port Yes Port number to check (1–65535).
Timeout No Maximum seconds to wait. Defaults to 5. Range: 1–30 seconds.

Output:

Field Description
status success or error
host The checked host
port The checked port
service Service name for common ports (see table below)
is_open true if the port is open and accepting connections
response_time_ms Connection time in milliseconds (0 if port is closed)
error_code Error code (0 = success)
error_message Error description (empty if success)

Common Port / Service Mapping:

Port Service Port Service
21 FTP 443 HTTPS
22 SSH/SFTP 465 SMTPS
25 SMTP 587 SMTP Submission
53 DNS 993 IMAPS
80 HTTP 995 POP3S
110 POP3 3306 MySQL
143 IMAP 5432 PostgreSQL

Use Case: Monitor server availability, verify that services are running (SSH, MySQL, Redis), or perform connectivity troubleshooting within your workflows.


Workflow Examples

Example 1: SSL Certificate Monitoring

Monitor SSL certificates across multiple domains and alert before expiry.

  1. Schedule Trigger — Run weekly.
  2. DNS / Domain Tools > SSL Certificate Info — Check domain1.com.
  3. Branch — If {DNS1.days_remaining} is less than 30…
  4. Email — Send alert: “SSL certificate for domain1.com expires in {DNS1.days_remaining} days.”

Example 2: Email Validation Pipeline

Validate email addresses before adding them to a mailing list.

  1. Webhook Trigger — Receive email address.
  2. DNS / Domain Tools > Verify Email Domain — Check {Trigger1.email}.
  3. Branch — If {DNS1.can_receive_email} is true AND {DNS1.is_free_provider} is false
  4. Mailchimp — Add to mailing list.

Example 3: Website Uptime Monitoring

Check multiple websites and alert on downtime.

  1. Schedule Trigger — Run every 15 minutes.
  2. DNS / Domain Tools > HTTP Headers — Check https://mysite.com.
  3. Branch — If {DNS1.status_code} is not 200
  4. Slack — Send alert: “Website is down! Status: {DNS1.status_code} {DNS1.status_message}”.

Example 4: Server Port Monitoring

Verify critical services are running on your server.

  1. Schedule Trigger — Run hourly.
  2. DNS / Domain Tools > Check Port — Check port 3306 (MySQL) on db.example.com.
  3. Branch — If {DNS1.is_open} is false
  4. Email — Send alert: “MySQL service appears to be down.”

Troubleshooting

Error Message Cause Solution
“Domain is required” Domain field is empty. Enter a valid domain name.
“Invalid IP address format” Malformed IP address in Reverse DNS. Enter a valid IPv4 or IPv6 address.
“DNS lookup failed” Domain doesn’t exist or DNS is unreachable. Verify the domain name is correct.
“Could not retrieve SSL certificate” Connection failed or no certificate found. Verify the domain has HTTPS enabled.
“cURL extension is required” PHP cURL not installed on the server. Contact your hosting provider.
“Port must be between 1 and 65535” Invalid port number. Enter a port number in the valid range.
“Connection timed out” Host unreachable or port blocked. Check host accessibility and firewall rules.

Summary

Feature Details
Connection Required No (built-in core app)
Available Actions 7 (DNS Lookup, Reverse DNS, MX Lookup, Verify Email, SSL Info, HTTP Headers, Check Port)
Triggers None
External APIs None — all operations use PHP built-in functions
Data Privacy No data sent to third-party services
PHP Requirements cURL extension (for SSL and Port check)
Was this article useful?
Like
Dislike
Help us improve this page
Please provide feedback or comments
Access denied
Access denied