JavaScript
import Courier from '@trycourier/courier';
const client = new Courier({
apiKey: process.env['COURIER_API_KEY'], // This is the default and can be omitted
});
const notificationContentMutationResponse = await client.notifications.putContent('id', {
content: { version: '2022-01-01', elements: [{ type: 'channel' }] },
state: 'DRAFT',
});
console.log(notificationContentMutationResponse.id);import os
from courier import Courier
client = Courier(
api_key=os.environ.get("COURIER_API_KEY"), # This is the default and can be omitted
)
notification_content_mutation_response = client.notifications.put_content(
id="id",
content={
"version": "2022-01-01",
"elements": [{
"type": "channel"
}],
},
state="DRAFT",
)
print(notification_content_mutation_response.id)package main
import (
"context"
"fmt"
"github.com/trycourier/courier-go"
"github.com/trycourier/courier-go/option"
"github.com/trycourier/courier-go/shared"
)
func main() {
client := courier.NewClient(
option.WithAPIKey("My API Key"),
)
notificationContentMutationResponse, err := client.Notifications.PutContent(
context.TODO(),
"id",
courier.NotificationPutContentParams{
NotificationContentPutRequest: courier.NotificationContentPutRequestParam{
Content: courier.NotificationContentPutRequestContentParam{
Elements: []shared.ElementalNodeUnionParam{{
OfElementalTextNodeWithType: &shared.ElementalTextNodeWithTypeParam{
ElementalBaseNodeParam: shared.ElementalBaseNodeParam{},
},
}},
},
},
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", notificationContentMutationResponse.ID)
}package com.courier.example;
import com.courier.client.CourierClient;
import com.courier.client.okhttp.CourierOkHttpClient;
import com.courier.models.ElementalTextNodeWithType;
import com.courier.models.notifications.NotificationContentMutationResponse;
import com.courier.models.notifications.NotificationContentPutRequest;
import com.courier.models.notifications.NotificationPutContentParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
CourierClient client = CourierOkHttpClient.fromEnv();
NotificationPutContentParams params = NotificationPutContentParams.builder()
.id("id")
.notificationContentPutRequest(NotificationContentPutRequest.builder()
.content(NotificationContentPutRequest.Content.builder()
.addElement(ElementalTextNodeWithType.builder().build())
.build())
.build())
.build();
NotificationContentMutationResponse notificationContentMutationResponse = client.notifications().putContent(params);
}
}require "courier"
courier = Courier::Client.new(api_key: "My API Key")
notification_content_mutation_response = courier.notifications.put_content("id", content: {elements: [{}]})
puts(notification_content_mutation_response)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Courier\Client;
use Courier\Core\Exceptions\APIException;
use Courier\Notifications\NotificationTemplateState;
$client = new Client(apiKey: getenv('COURIER_API_KEY') ?: 'My API Key');
try {
$notificationContentMutationResponse = $client->notifications->putContent(
'id',
content: ['elements' => [['type' => 'channel']], 'version' => '2022-01-01'],
state: NotificationTemplateState::DRAFT,
);
var_dump($notificationContentMutationResponse);
} catch (APIException $e) {
echo $e->getMessage();
}using System;
using TryCourier;
using TryCourier.Models;
using TryCourier.Models.Notifications;
CourierClient client = new();
NotificationPutContentParams parameters = new()
{
ID = "id",
Content = new()
{
Elements =
[
new ElementalChannelNodeWithType()
{
Type = ElementalChannelNodeWithTypeIntersectionMember1Type.Channel,
},
],
Version = "2022-01-01",
},
};
var notificationContentMutationResponse = await client.Notifications.PutContent(parameters);
Console.WriteLine(notificationContentMutationResponse);courier notifications put-content \
--api-key 'My API Key' \
--id id \
--content '{elements: [{}]}'curl --request PUT \
--url https://api.courier.com/notifications/{id}/content \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"content": {
"version": "2022-01-01",
"elements": [
{
"type": "channel",
"channel": "email",
"elements": [
{
"type": "meta",
"title": "Welcome!"
},
{
"type": "text",
"content": "Hello {{data.name}}."
}
]
}
]
},
"state": "DRAFT"
}
'{
"id": "nt_01kx4h2jdafq8bk9aftxak4b40",
"version": "2022-01-01",
"elements": [
{
"id": "elem_1",
"checksum": "abc123"
},
{
"id": "elem_2",
"checksum": "def456"
}
],
"state": "DRAFT"
}{
"type": "invalid_request_error",
"message": "content: Required"
}{
"type": "invalid_request_error",
"message": "Notification template nt_01kx4kepxgfq9ty3r3wyf61n5t not found"
}Notification Templates
Put Notification Content
Replace the elemental content of a notification template. Overwrites all elements in the template with the provided content. Only supported for V2 (elemental) templates.
PUT
/
notifications
/
{id}
/
content
JavaScript
import Courier from '@trycourier/courier';
const client = new Courier({
apiKey: process.env['COURIER_API_KEY'], // This is the default and can be omitted
});
const notificationContentMutationResponse = await client.notifications.putContent('id', {
content: { version: '2022-01-01', elements: [{ type: 'channel' }] },
state: 'DRAFT',
});
console.log(notificationContentMutationResponse.id);import os
from courier import Courier
client = Courier(
api_key=os.environ.get("COURIER_API_KEY"), # This is the default and can be omitted
)
notification_content_mutation_response = client.notifications.put_content(
id="id",
content={
"version": "2022-01-01",
"elements": [{
"type": "channel"
}],
},
state="DRAFT",
)
print(notification_content_mutation_response.id)package main
import (
"context"
"fmt"
"github.com/trycourier/courier-go"
"github.com/trycourier/courier-go/option"
"github.com/trycourier/courier-go/shared"
)
func main() {
client := courier.NewClient(
option.WithAPIKey("My API Key"),
)
notificationContentMutationResponse, err := client.Notifications.PutContent(
context.TODO(),
"id",
courier.NotificationPutContentParams{
NotificationContentPutRequest: courier.NotificationContentPutRequestParam{
Content: courier.NotificationContentPutRequestContentParam{
Elements: []shared.ElementalNodeUnionParam{{
OfElementalTextNodeWithType: &shared.ElementalTextNodeWithTypeParam{
ElementalBaseNodeParam: shared.ElementalBaseNodeParam{},
},
}},
},
},
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", notificationContentMutationResponse.ID)
}package com.courier.example;
import com.courier.client.CourierClient;
import com.courier.client.okhttp.CourierOkHttpClient;
import com.courier.models.ElementalTextNodeWithType;
import com.courier.models.notifications.NotificationContentMutationResponse;
import com.courier.models.notifications.NotificationContentPutRequest;
import com.courier.models.notifications.NotificationPutContentParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
CourierClient client = CourierOkHttpClient.fromEnv();
NotificationPutContentParams params = NotificationPutContentParams.builder()
.id("id")
.notificationContentPutRequest(NotificationContentPutRequest.builder()
.content(NotificationContentPutRequest.Content.builder()
.addElement(ElementalTextNodeWithType.builder().build())
.build())
.build())
.build();
NotificationContentMutationResponse notificationContentMutationResponse = client.notifications().putContent(params);
}
}require "courier"
courier = Courier::Client.new(api_key: "My API Key")
notification_content_mutation_response = courier.notifications.put_content("id", content: {elements: [{}]})
puts(notification_content_mutation_response)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Courier\Client;
use Courier\Core\Exceptions\APIException;
use Courier\Notifications\NotificationTemplateState;
$client = new Client(apiKey: getenv('COURIER_API_KEY') ?: 'My API Key');
try {
$notificationContentMutationResponse = $client->notifications->putContent(
'id',
content: ['elements' => [['type' => 'channel']], 'version' => '2022-01-01'],
state: NotificationTemplateState::DRAFT,
);
var_dump($notificationContentMutationResponse);
} catch (APIException $e) {
echo $e->getMessage();
}using System;
using TryCourier;
using TryCourier.Models;
using TryCourier.Models.Notifications;
CourierClient client = new();
NotificationPutContentParams parameters = new()
{
ID = "id",
Content = new()
{
Elements =
[
new ElementalChannelNodeWithType()
{
Type = ElementalChannelNodeWithTypeIntersectionMember1Type.Channel,
},
],
Version = "2022-01-01",
},
};
var notificationContentMutationResponse = await client.Notifications.PutContent(parameters);
Console.WriteLine(notificationContentMutationResponse);courier notifications put-content \
--api-key 'My API Key' \
--id id \
--content '{elements: [{}]}'curl --request PUT \
--url https://api.courier.com/notifications/{id}/content \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"content": {
"version": "2022-01-01",
"elements": [
{
"type": "channel",
"channel": "email",
"elements": [
{
"type": "meta",
"title": "Welcome!"
},
{
"type": "text",
"content": "Hello {{data.name}}."
}
]
}
]
},
"state": "DRAFT"
}
'{
"id": "nt_01kx4h2jdafq8bk9aftxak4b40",
"version": "2022-01-01",
"elements": [
{
"id": "elem_1",
"checksum": "abc123"
},
{
"id": "elem_2",
"checksum": "def456"
}
],
"state": "DRAFT"
}{
"type": "invalid_request_error",
"message": "content: Required"
}{
"type": "invalid_request_error",
"message": "Notification template nt_01kx4kepxgfq9ty3r3wyf61n5t not found"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Notification template ID (nt_ prefix).
Body
application/json
Response
Content replaced.
Shared mutation response for PUT content, PUT element, and PUT locale operations. Contains the template ID, content version, per-element checksums, and resulting state.
⌘I