Skip to main content
POST
/
v2
/
layouts
/
{layoutId}
/
preview
PHP
declare(strict_types=1);

require 'vendor/autoload.php';

use novu;
use novu\Models\Components;

$sdk = novu\Novu::builder()
    ->setSecurity(
        'YOUR_SECRET_KEY_HERE'
    )
    ->build();

$layoutPreviewRequestDto = new Components\LayoutPreviewRequestDto(
    previewPayload: new Components\LayoutPreviewPayloadDto(
        subscriber: new Components\SubscriberResponseDtoOptional(
            channels: [
                new Components\ChannelSettingsDto(
                    providerId: Components\ChatOrPushProviderEnum::Mattermost,
                    credentials: new Components\ChannelCredentials(
                        webhookUrl: 'https://example.com/webhook',
                        channel: 'general',
                        deviceTokens: [
                            'token1',
                            'token2',
                            'token3',
                        ],
                        alertUid: '12345-abcde',
                        title: 'Critical Alert',
                        imageUrl: 'https://example.com/image.png',
                        state: 'resolved',
                        externalUrl: 'https://example.com/details',
                    ),
                    integrationId: '<id>',
                ),
            ],
        ),
    ),
);

$response = $sdk->layouts->generatePreview(
    layoutId: '<id>',
    layoutPreviewRequestDto: $layoutPreviewRequestDto

);

if ($response->generateLayoutPreviewResponseDto !== null) {
    // handle response
}
{
  "previewPayloadExample": {
    "subscriber": {
      "_id": "<string>",
      "firstName": "<string>",
      "lastName": "<string>",
      "email": "<string>",
      "phone": "<string>",
      "avatar": "<string>",
      "locale": "<string>",
      "channels": [
        {
          "credentials": {
            "webhookUrl": "https://example.com/webhook",
            "channel": "general",
            "deviceTokens": [
              "token1",
              "token2",
              "token3"
            ],
            "alertUid": "12345-abcde",
            "title": "Critical Alert",
            "imageUrl": "https://example.com/image.png",
            "state": "resolved",
            "externalUrl": "https://example.com/details"
          },
          "_integrationId": "<string>",
          "integrationIdentifier": "<string>"
        }
      ],
      "topics": [
        "<string>"
      ],
      "isOnline": true,
      "lastOnlineAt": "<string>",
      "__v": 123,
      "data": {},
      "timezone": "<string>"
    }
  },
  "result": {
    "type": "email",
    "preview": {
      "body": "<string>"
    }
  },
  "schema": {}
}

Authorizations

Authorization
string
header
required

API key authentication. Allowed headers-- "Authorization: ApiKey <novu_secret_key>".

Headers

idempotency-key
string

A header for idempotency purposes

Path Parameters

layoutId
string
required

Body

application/json

Layout preview generation details

controlValues
object

Optional control values for layout preview

previewPayload
object

Optional payload for layout preview

Response

Created

previewPayloadExample
object
required

Preview payload example

result
object
required

Preview result

schema
object

The payload schema that was used to generate the preview payload example