Documentation Index
Fetch the complete documentation index at: https://docs.secapi.ai/llms.txt
Use this file to discover all available pages before exploring further.
Automate SEC Alerts with Make (Integromat)
Make (formerly Integromat) is a visual automation platform that connects hundreds of apps. In this tutorial you will create a Make scenario that listens for OMNI Datastream enforcement-action events and sends a daily digest email to your compliance team.
Prerequisites
- An Omni Datastream API key (set as
OMNI_DATASTREAM_API_KEY)
- A Make account (free tier works for testing)
- An email address or distribution list for compliance alerts
- (Optional) Familiarity with the Search Enforcement Actions tutorial
Architecture overview
OMNI Datastream enforcement monitor
|
v
Webhook POST --> Make Custom Webhook module
|
v
Make Router
| |
v v
Immediate Data Store (aggregate)
email alert |
v
Scheduled scenario:
daily digest email
Step 1 --- Create a custom webhook in Make
- Log in to Make and create a new scenario.
- Click the + button and search for Webhooks.
- Select Custom webhook as the trigger module.
- Click Add to create a new webhook. Name it
OMNI Enforcement Events.
- Make generates a URL like:
https://hook.make.com/abc123def456...
- Copy this URL --- you will register it with OMNI Datastream next.
- Click OK, then click Run once to put Make in listening mode.
Step 2 --- Register the webhook with OMNI Datastream
Create a webhook endpoint
curl -X POST \
-H "x-api-key: $OMNI_DATASTREAM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://hook.make.com/abc123def456...",
"description": "Make enforcement alerts",
"events": ["filing.new"]
}' \
"https://api.secapi.ai/v1/webhook_endpoints"
Create an enforcement filing monitor
Monitor for enforcement-related filings (administrative proceedings, litigation releases):
curl -X POST \
-H "x-api-key: $OMNI_DATASTREAM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Enforcement Action Monitor",
"form_types": ["ADMIN", "LITIGATION"],
"webhook_endpoint_id": "we_abc123"
}' \
"https://api.secapi.ai/v1/monitors"
Replace we_abc123 with the endpoint ID returned in the previous step.
Send a test event
To establish the data structure in Make, send a test POST to make the webhook learn the schema:
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"event": "filing.new",
"timestamp": "2024-12-15T14:30:00Z",
"data": {
"accession_number": "34-99999",
"form": "ADMIN",
"company_name": "Test Respondent LLC",
"filed_at": "2024-12-15",
"description": "In the Matter of Test Respondent LLC for violations of Section 17(a)"
}
}' \
"https://hook.make.com/abc123def456..."
Make should show Successfully determined with the data structure.
Add a Tools > Set variable module after the webhook trigger.
Configure these variables:
| Variable name | Value |
|---|
alert_subject | SEC Enforcement: {{1.data.company_name}} |
alert_body | See template below |
Alert body template:
SEC Enforcement Action Detected
Respondent: {{1.data.company_name}}
Form Type: {{1.data.form}}
Filed: {{1.data.filed_at}}
Accession: {{1.data.accession_number}}
Description:
{{1.data.description}}
---
This alert was generated by OMNI Datastream via Make.
Review in EDGAR: https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&company={{1.data.company_name}}&type=&dateb=&owner=include&count=10&search_text=&action=getcompany
Add an Email > Send an Email module (or use Gmail, Outlook, or SendGrid).
| Field | Value |
|---|
| To | compliance-team@yourcompany.com |
| Subject | {{2.alert_subject}} |
| Content | {{2.alert_body}} |
Step 5 --- Build the daily digest (optional)
For a daily summary instead of (or in addition to) individual alerts:
5a. Add a Data Store
- Go to Data Stores in Make and create a new store named
enforcement_events.
- Add these fields:
accession_number (text, key), company_name (text), form (text), filed_at (text), description (text).
5b. Store each event
Add a Data Store > Add/Replace a Record module in parallel with the email module (use a Router):
| Field | Value |
|---|
| Data Store | enforcement_events |
| accession_number | {{1.data.accession_number}} |
| company_name | {{1.data.company_name}} |
| form | {{1.data.form}} |
| filed_at | {{1.data.filed_at}} |
| description | {{1.data.description}} |
5c. Create a scheduled digest scenario
Create a second scenario that runs on a schedule (e.g., daily at 8:00 AM):
- Trigger: Schedule (every day at 08:00).
- Data Store > Search Records: Fetch all records from
enforcement_events.
- Array Aggregator: Combine all records into a single bundle.
- Text Aggregator: Format as a digest.
- Email > Send an Email: Send the compiled digest.
- Data Store > Delete all records: Clear the store for the next day.
Module configuration summary
Scenario 1: Real-time alerts
[Custom Webhook] --> [Set Variable] --> [Router]
| |
v v
[Send Email] [Data Store: Add Record]
Scenario 2: Daily digest (scheduled)
[Schedule 08:00] --> [Data Store: Search] --> [Aggregator] --> [Send Digest Email] --> [Data Store: Clear]
Expected result
When an enforcement action is filed, your compliance team receives an email like:
Subject: SEC Enforcement: Acme Trading Corp
SEC Enforcement Action Detected
Respondent: Acme Trading Corp
Form Type: ADMIN
Filed: 2024-12-15
Accession: 34-12345
Description:
In the Matter of Acme Trading Corp for violations of
Section 10(b) of the Securities Exchange Act of 1934.
---
This alert was generated by OMNI Datastream via Make.
Troubleshooting
| Problem | Solution |
|---|
| Make webhook shows no data | Click Run once before sending a test event. The scenario must be listening. |
| Data structure not detected | Send the test curl payload from Step 2 while the scenario is in listening mode. |
| Emails not arriving | Check the Email module configuration. Make sure your email service credentials are valid and the recipient is correct. |
| Duplicate enforcement events | Use the Data Store with accession_number as the key field --- duplicates are automatically overwritten. |
| Monitor not triggering | Verify the monitor is active with GET /v1/monitors and that form_types includes the expected values. |
Next steps
- Add Slack in parallel: Use a Router to send both email and Slack alerts for high-priority enforcement actions.
- Enrich with entity data: Add an HTTP module to call
GET /v1/companies?name={company_name} to resolve the company and include ticker/CIK in the alert.
- Filter by keyword: Add a Filter module between the webhook and the email to only alert on specific violation types (e.g., insider trading, accounting fraud).
See the Search Enforcement Actions tutorial for more on querying enforcement data.