//native
type Buttondown = {
token: string;
};
/**
* Update Automation
*
*/
export async function main(
auth: Buttondown,
id: string,
body: {
name?: string;
status?: "active" | "inactive";
trigger?:
| "subscriber.created"
| "subscriber.unsubscribed"
| "subscriber.changed_email"
| "subscriber.confirmed"
| "subscriber.trial_started"
| "subscriber.trial_ended"
| "subscriber.type.changed"
| "subscriber.tags.changed"
| "subscriber.clicked"
| "subscriber.opened"
| "subscriber.paid"
| "subscriber.churned"
| "subscriber.updated"
| "subscriber.deleted"
| "subscriber.viewed_checkout_page"
| "subscriber.replied"
| "subscriber.paused"
| "subscriber.resumed"
| "subscriber.responded_to_survey"
| "subscriber.referred"
| "subscriber.referred.paid"
| "subscriber.commented"
| "email.created"
| "email.sent"
| "email.updated"
| "email.deleted"
| "email.status.changed"
| "scheduled_email.converted"
| "mention.created"
| "advertising_slot.purchased"
| "social_mention.created"
| "export.created"
| "export.completed"
| "export.failed"
| "automation.invoked"
| "stripe.checkout.session.completed"
| "stripe.subscription.activated"
| "stripe.subscription.churning"
| "stripe.subscription.deactivated"
| "stripe.customer.updated"
| "memberful.subscription.created"
| "memberful.subscription.deleted"
| "memberful.member.updated";
timing?: {
time: "immediate" | "delay";
delay?: {
value: string;
unit: "minutes" | "hours" | "days" | "weeks";
time_of_day?: "" | "morning" | "evening";
};
};
actions?: {}[];
filters?: {
filters: {
field: string;
operator:
| "equals"
| "not_equals"
| "contains"
| "not_contains"
| "is_empty"
| "is_not_empty"
| "greater_than"
| "less_than";
value: string;
}[];
groups: {}[];
predicate: "and" | "or";
};
metadata?: {};
},
) {
const url = new URL(`https://api.buttondown.com/v1/automations/${id}`);
const response = await fetch(url, {
method: "PATCH",
headers: {
"Content-Type": "application/json",
Authorization: "Token " + auth.token,
},
body: JSON.stringify(body),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`${response.status} ${text}`);
}
return await response.json();
}
Submitted by hugo697 428 days ago