Cloudflare R2

R2 gives you the freedom to create the multi-cloud architectures you desire with an S3-compatible object storage.

Integrate the Cloudflare R2 API with the Amazon SES API

Setup the Cloudflare R2 API trigger to run a workflow which integrates with the Amazon SES API. Pipedream's integration platform allows you to integrate Cloudflare R2 and Amazon SES remarkably fast. Free for developers.

Create Email Template with the Amazon SES API

Create a HTML or a plain text email template. See the docs

 
Try it
Get Email Template with the Amazon SES API

Get an email template. See the docs

 
Try it
Send Email with the Amazon SES API

Send an email using Amazon SES. Supports simple email messaging. See the docs

 
Try it
Send Templated Email with the Amazon SES API

Send an email replacing the template tags with values using Amazon SES. See the docs

 
Try it
Update Email Template with the Amazon SES API

Update an email template. See the docs

 
Try it

Overview of Cloudflare R2

The Cloudflare R2 API lets you interact with Cloudflare's object storage service, providing a cost-effective way to store large amounts of data with no egress fees. On Pipedream, you can harness this API to build automated workflows that can store, retrieve, and manage data within your R2 buckets. By combining Cloudflare R2 with Pipedream’s capabilities, you can create serverless workflows that trigger on various events, process data in-flight, and integrate with over 800+ apps available on the platform.

Connect Cloudflare R2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import { S3 } from "@aws-sdk/client-s3";
import { ListBucketsCommand } from "@aws-sdk/client-s3";

export default defineComponent({
  props: {
    cloudflare_r2: {
      type: "app",
      app: "cloudflare_r2",
    }
  },
  async run({ steps, $ }) {
    const cloudflare_r2 = {
      account_id: this.cloudflare_r2.$auth.account_id
    };

    const s3Client = new S3({
        forcePathStyle: false, 
        endpoint: `https://${cloudflare_r2.account_id}.r2.cloudflarestorage.com`, 
        region: "auto",
        credentials: {
          accessKeyId: this.cloudflare_r2.$auth.access_key_id,
          secretAccessKey: this.cloudflare_r2.$auth.access_key_secret
        }
    });

    const data = await s3Client.send(new ListBucketsCommand({}));
    return data.Buckets;
    }
  }
)

Overview of Amazon SES

Amazon Simple Email Service (SES) is a powerful cloud-based email sending service designed to help digital marketers and application developers send marketing, notification, and transactional emails. With the SES API, you can reliably send emails at scale, manage sender reputations, view email sending statistics, and maintain a high deliverability rate. Leveraging Pipedream's capabilities, you can integrate SES seamlessly into serverless workflows, automate email responses based on triggers from other apps, and analyze the effectiveness of your email campaigns by connecting to data analytics platforms.

Connect Amazon SES

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
module.exports = defineComponent({
  props: {
    amazon_ses: {
      type: "app",
      app: "amazon_ses",
    }
  },
  async run({steps, $}) {
    const AWS = require("aws-sdk")
    const { accessKeyId, secretAccessKey } = this.amazon_ses.$auth
    
    const ses = new AWS.SES({
      accessKeyId, 
      secretAccessKey,
      region: 'us-east-1',
    })
    
    const sesParams = {
      Destination: {
        ToAddresses: ["<your email here>"],
      }, 
      Message: {
        Body: {
          Html: {
            Charset: "UTF-8", 
            Data: "<h1>This is a test</h1>",
          }, 
            Text: {
            Charset: "UTF-8", 
            Data: "This is a test",
          }
        }, 
        Subject: {
          Charset: "UTF-8", 
          Data: "Test email",
        }
      },
      Source: "<your from address here", 
    };
    
    this.resp = await ses.sendEmail(sesParams).promise()
  },
})