Skip to content

Campaign ​

The Campaign resource lets you manage AWS Pinpoint Campaigns for targeted messaging to selected segments of your audience.

Minimal Example ​

Create a basic Pinpoint campaign with required properties and one optional property.

ts
import AWS from "alchemy/aws/control";

const basicCampaign = await AWS.Pinpoint.Campaign("basicCampaign", {
  applicationId: "your-pinpoint-app-id",
  name: "Welcome Campaign",
  segmentId: "your-segment-id",
  schedule: {
    startTime: "2023-10-01T12:00:00Z",
    endTime: "2023-10-07T12:00:00Z",
    frequency: "ONCE"
  }
});

Advanced Configuration ​

Configure a campaign with additional treatments and message customization.

ts
const advancedCampaign = await AWS.Pinpoint.Campaign("advancedCampaign", {
  applicationId: "your-pinpoint-app-id",
  name: "Special Offer Campaign",
  segmentId: "your-segment-id",
  schedule: {
    startTime: "2023-11-01T12:00:00Z",
    endTime: "2023-11-15T12:00:00Z",
    frequency: "DAILY"
  },
  messageConfiguration: {
    emailMessage: {
      fromAddress: "noreply@yourdomain.com",
      subject: "Exclusive Offer Just for You!",
      htmlBody: "<h1>Don't miss out!</h1><p>Get 20% off your next purchase.</p>",
      textBody: "Don't miss out! Get 20% off your next purchase."
    }
  },
  additionalTreatments: [
    {
      messageConfiguration: {
        smsMessage: {
          body: "Get 20% off your next purchase! Visit our site.",
          senderId: "YourBrand"
        }
      },
      treatmentName: "SMS Treatment"
    }
  ]
});

Paused Campaign ​

Create a campaign that is initially paused.

ts
const pausedCampaign = await AWS.Pinpoint.Campaign("pausedCampaign", {
  applicationId: "your-pinpoint-app-id",
  name: "Paused Campaign",
  segmentId: "your-segment-id",
  isPaused: true,
  schedule: {
    startTime: "2023-12-01T12:00:00Z",
    frequency: "ONCE"
  }
});

Custom Delivery Configuration ​

Configure a campaign with a custom delivery option.

ts
const customDeliveryCampaign = await AWS.Pinpoint.Campaign("customDeliveryCampaign", {
  applicationId: "your-pinpoint-app-id",
  name: "Custom Delivery Campaign",
  segmentId: "your-segment-id",
  schedule: {
    startTime: "2024-01-01T12:00:00Z",
    frequency: "WEEKLY"
  },
  customDeliveryConfiguration: {
    deliveryUri: "http://your-custom-delivery-endpoint.com",
    method: "POST"
  }
});