with Mailgun and Data Stores?
Emit new event when the email recipient could not be reached.
Emit new event when the email recipient clicked on a link in the email. Open tracking must be enabled in the Mailgun control panel, and the CNAME record must be pointing to mailgun.org. See more at the Mailgun User's Manual Tracking Messages section
Emit new event when the email recipient clicked on the spam complaint button within their email client. Feedback loops enable the notification to be received by Mailgun.
Emit new event when an email is sent and accepted by the recipient email server.
Emit new event when an email can't be delivered to the recipient email server.
Add or update a single record in your Pipedream Data Store
Add or update multiple records to your Pipedream Data Store
Delete a mailing list member by address. See the docs here
The Mailgun API on Pipedream is a potent tool for automating email operations without the overhead of managing a full-fledged email server. It offers capabilities to send, receive, track, and store emails with ease. With Pipedream's serverless platform, you can trigger workflows using Mailgun events, such as inbound emails or delivery status changes, and connect them to hundreds of other services to streamline communication, marketing, and notification systems within your ecosystem.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
mailgun: {
type: "app",
app: "mailgun",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://${this.mailgun.$auth.region && this.mailgun.$auth.region === "EU" ? "api.eu" : "api"}.mailgun.net/v3/domains`,
auth: {
username: `api`,
password: `${this.mailgun.$auth.api_key}`,
},
})
},
})
Data Stores are a key-value store that allow you to persist state and share data across workflows. You can perform CRUD operations, enabling dynamic data management within your serverless architecture. Use it to save results from API calls, user inputs, or interim data; then read, update, or enrich this data in subsequent steps or workflows. Data Stores simplify stateful logic and cross-workflow communication, making them ideal for tracking process statuses, aggregating metrics, or serving as a simple configuration store.
export default defineComponent({
props: {
myDataStore: {
type: "data_store",
},
},
async run({ steps, $ }) {
await this.myDataStore.set("key_here","Any serializable JSON as the value")
return await this.myDataStore.get("key_here")
},
})