Buttondown
Create and list subscribers in your Buttondown newsletter.
On this page
Connect
Auth type: API key (secret_text). Paste the API key (or token) from the provider's settings into the connect dialog. It is encrypted at rest and only decrypted on the server when an action runs.
- In the editor: Backend panel, Integrations tab, then Connect. This connects it for the project.
- For every project in a workspace: Workspace settings, Integrations.
- Owners and admins choose which integrations members may connect in the admin panel (Integrations tab), and can attach their own OAuth app there.
Call it from a workflow
Pass the action name and its input. The call resolves with { success, output, error? }; a missing connection resolves with success false and the reason. See ctx.integrations.invoke and ctx.integrations.call.
// .workflow.js (native ctx)
export async function run(ctx) {
const res = await ctx.integrations.invoke("buttondown", "createSubscriber", {
"email": "<email address>"
});
if (!res.success) throw new Error(res.error);
ctx.log.info("Buttondown answered", { output: res.output });
}// defineWorkflow module (@app/sdk ctx)
import { defineWorkflow } from "@app/sdk";
export default defineWorkflow({
id: "buttondown-createsubscriber",
name: "Buttondown: Create Subscriber",
description: "Calls Buttondown when a row is created.",
trigger: { type: "entity_event", entity: "tickets", event: "created" },
async run(ctx, event) {
const res = await ctx.integrations.call("buttondown", {
"action": "createSubscriber",
"email": "<email address>"
}) as { success: boolean; error?: string };
if (!res.success) throw new Error(res.error);
},
});curl -X POST "$APP_ORIGIN/__appbricx/connector-proxy/buttondown/createSubscriber" \
-H "Authorization: Bearer $APP_KEY" \
-H "content-type: application/json" \
-d '{"props":{"email":"<email address>"}}'Actions
createSubscriberin catalog
Create Subscriber. Create a new subscriber in Buttondown.
Also accepted as create_subscriber.
| Input | Type | Description |
|---|---|---|
emailrequired | text | The email address of the subscriber. |
typeoptional | one of "regular" | "premium" | "unactivated" | "paused" | "trialed" | "upcoming" | "churning" | "churned" | "unsubscribed" | "undeliverable" | "blocked" | "complained" | Set the subscriber status. Use "regular" to bypass double opt-in. |
notesoptional | long text | Internal Notes |
tagsoptional | array | Add one or more tags to assign to the subscriber. |
metadataoptional | JSON | Custom metadata to store on the subscriber (JSON object). |
referrerUrloptional | text | Referrer URL |
utmSourceoptional | text | UTM Source |
utmMediumoptional | text | UTM Medium |
utmCampaignoptional | text | UTM Campaign |
referringSubscriberIdoptional | text | ID of the subscriber who referred this contact. |
ipAddressoptional | text | The original IP address of the subscriber. Helps Buttondown evaluate spam. |
collisionBehavioroptional | one of "overwrite" | "add" | Control how Buttondown handles duplicate email addresses. Leave empty to keep the existing subscriber. |
bypassFirewalloptional | boolean | Set to true when the request originates from a trusted internal system without the subscriber's IP address. |
listSubscribersin catalog
List Subscribers. Retrieve subscribers from Buttondown.
Also accepted as list_subscribers.
| Input | Type | Description |
|---|---|---|
limitoptional | number | Maximum number of subscribers to return (1-1000). |
cursoroptional | text | Provide the cursor value from a previous response to fetch the next page. |
typeoptional | one of "regular" | "premium" | "unactivated" | "paused" | "trialed" | "upcoming" | "churning" | "churned" | "unsubscribed" | "undeliverable" | "blocked" | "complained" | Subscriber Type |
sourceoptional | one of "admin" | "api" | "carrd" | "comment" | "embedded_form" | "form" | "import" | "memberful" | "organic" | "patreon" | "stripe" | "user" | Source |
tagsoptional | array | Filter by subscribers who have at least one of these tags. |
emailAddressoptional | text | Return subscribers whose email address contains this value. |
referrerUrloptional | text | Referrer URL Contains |
orderingoptional | one of "-creation_date" | "creation_date" | "email_address" | "-email_address" | "-last_open_date" | "last_open_date" | Ordering |
custom_api_call
Custom API Call. Make a custom API call to a specific endpoint
| Input | Type | Description |
|---|---|---|
urlrequired | object (depends on other props) | url |
methodrequired | one of "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | "HEAD" | Method |
headersrequired | object | Authorization headers are injected automatically from your connection. |
queryParamsrequired | object | Query Parameters |
body_typeoptional | one of "none" | "json" | "form_data" | "raw" | Body Type |
bodyoptional | object (depends on other props) | Body |
response_is_binaryoptional | boolean | Enable for files like PDFs, images, etc. |
failsafeoptional | boolean | No Error on Failure |
timeoutoptional | number | Timeout (in seconds) |
followRedirectsoptional | boolean | Follow redirects |
sendEmail
Send Email. Send an email to your Buttondown subscribers.
| Input | Type | Description |
|---|---|---|
subjectrequired | text | Subject |
bodyrequired | long text | Write your email content in Markdown or HTML. Buttondown will detect the format automatically. |
statusoptional | one of "about_to_send" | "draft" | "scheduled" | Choose how Buttondown should treat this email after creation. |
publishDateoptional | date-time (ISO) | Required when scheduling an email. Use ISO 8601 format. |
emailTypeoptional | one of "public" | "private" | "premium" | "free" | "churned" | "archival" | Email Type |
descriptionoptional | long text | Description |
canonicalUrloptional | text | Canonical URL |
imageoptional | text | Primary Image URL |
slugoptional | text | Override the automatic slug used for the archive URL. |
metadataoptional | JSON | Custom metadata to attach to the email (JSON object). |
attachmentsoptional | array | IDs of attachments uploaded via the Buttondown API. |
triggerBillingoptional | boolean | Enable when this email should count against pay-per-email billing for paid subscribers. |
Details
- Id
buttondown- Category
- Marketing
- Tags
- email, newsletter, simple, indie
- Package
@activepieces/piece-buttondown@0.0.2- Tier
- Community