Back to Documentation

Integration Tutorials

PLATFORM GUIDES
WordPressNotionGhostWixShopifySanityWebflowStrapi
Custom Webhook Integration

Connect Any Platform via Webhook

Universal integration for any CMS, platform, or custom endpoint

Quick Setup Overview

Settings

→

Integrations

→

API Webhook

→

Configure & Test

Takes about 3 minutes to configure your custom webhook endpoint.

What is a Webhook Integration?

A webhook allows SEOMate to send your generated blog posts to any custom API endpoint you control. This makes it possible to integrate with:

  • •Custom-built CMS platforms
  • •Internal content management systems
  • •Automation platforms (Make.com, Zapier, n8n)
  • •Any platform with a REST API
  • •Multiple destinations simultaneously

Prerequisites

  • ✓ A webhook endpoint URL (HTTPS recommended)

  • ✓ API credentials (if your endpoint requires authentication)

  • ✓ Ability to receive HTTP POST requests

Webhook Payload Format

When SEOMate publishes to your webhook, it sends a JSON payload with the following structure:

{
  "event": "post.published",
  "timestamp": "2025-01-13T10:30:00.000Z",
  "post": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "title": "Your Blog Post Title",
    "content": "# Full markdown content here...",
    "description": "Post description/excerpt",
    "cover_image": "https://example.com/image.jpg",
    "tags": ["seo", "marketing"],
    "published_at": "2025-01-13T10:30:00.000Z",
    "canonical_url": "https://seomate.ai/blog/articlehub/550e8400..."
  },
  "user_id": "user-uuid-here",
  "seomate_url": "https://seomate.ai/blog/articlehub/550e8400..."
}
Pro tip:

Your endpoint should respond with a 2xx status code to indicate success. Any other status will trigger a retry if you have retries enabled.

Step-by-Step Setup

Step 1: Prepare Your Webhook Endpoint

Before configuring SEOMate, ensure your webhook endpoint is ready:

  1. Set up an HTTPS endpoint that can receive POST requests
  2. Implement JSON parsing to handle the webhook payload
  3. Add authentication handling if you want to secure the endpoint
  4. Test your endpoint with tools like Postman or curl
Security Best Practice:

Always use HTTPS for production webhooks and implement authentication to prevent unauthorized access to your endpoint.

Step 2: Access SEOMate Integrations

  1. Log in to your SEOMate dashboard
  2. Navigate to Settings → Integrations
  3. Find the API Webhook card
  4. Click Connect

Step 3: Configure Webhook Settings

Fill in the webhook configuration form:

Basic Settings

  • Integration Name: A friendly name (e.g., "My Custom CMS")
  • Webhook URL: Your endpoint URL (e.g., https://api.example.com/webhooks/seomate)

Authentication Method

Choose one of four authentication options:

None

No authentication. Use only for testing or if your endpoint is secured by other means (IP whitelist, etc.)

Bearer Token

Adds

Authorization: Bearer YOUR_TOKEN

header. Common for modern APIs.

Basic Auth

Standard HTTP Basic Authentication with username and password. Encoded as Base64.

Custom Header

Send any custom header with your request (e.g., X-API-Key)

Step 4: Advanced Settings (Automatic)

These settings are pre-configured for optimal performance:

  • Retry Attempts: 3 attempts with exponential backoff
  • Timeout: 30 seconds per request
  • Content-Type: application/json
  • User-Agent: SEOMate-Webhook/1.0

Step 5: Test Your Webhook

  1. Click Test Webhook button
  2. SEOMate sends a test payload to your endpoint
  3. Wait for the response
Test Payload:

The test sends a sample blog post with event type "test" to verify your endpoint is working correctly.

Step 6: Save Integration

  1. Once the test succeeds, click Save Integration
  2. Your webhook is now active and ready to receive blog posts!

Integration Complete!

Your custom webhook is now connected to SEOMate. Every time you publish a blog post, it will be automatically sent to your endpoint.

Common Use Cases

1. Integration with Automation Platforms

Connect SEOMate to Make.com, Zapier, or n8n:

  1. Create a webhook trigger in your automation platform
  2. Copy the webhook URL
  3. Use it as your SEOMate webhook endpoint
  4. Build workflows to process and distribute content

2. Custom CMS Integration

For custom-built content management systems:

// Example Express.js endpoint
app.post("/webhooks/seomate", async (req, res) => {
  const { event, post } = req.body;

  if (event === "post.published") {
    // Save to your CMS database
    await db.posts.create({
      title: post.title,
      content: post.content,
      published_at: post.published_at,
    });

    res.json({ success: true, id: "your-post-id" });
  }
});

3. Multi-Destination Publishing

Set up multiple webhooks to publish to different platforms simultaneously:

  • Production website
  • Staging environment
  • Content backup system
  • Analytics tracking

Troubleshooting

Webhook test failing?

  • • Verify your endpoint is publicly accessible

  • • Check authentication credentials are correct

  • • Ensure your server returns 2xx status codes

  • • Validate your endpoint can parse JSON

Publish failing but test works?

  • • Check your endpoint timeout settings (30s default)

  • • Review publishing logs in Settings → Publishing

  • • Verify your endpoint handles larger payloads

Delivery Tracking

All webhook deliveries are automatically tracked in your SEOMate dashboard:

  1. Go to Settings → Publishing
  2. View the Publishing Logs tab
  3. Filter by platform = "webhook"
  4. See delivery status, attempts, and error messages
Retry Logic:

If delivery fails, SEOMate automatically retries up to 3 times with exponential backoff (2s, 4s, 8s delays).

Security Headers

SEOMate sends these headers with every webhook request:

  • Content-Type: application/json
  • User-Agent: SEOMate-Webhook/1.0
  • X-SEOMate-Event: post.published
  • Your configured authentication header

You can use these headers to validate requests are coming from SEOMate.

Ready to Connect Your Webhook?

Set up your custom webhook endpoint and start publishing AI-generated content to any platform you want.

Configure Webhook

API Documentation