thanks.io is a direct mail automation platform that enables users to send personalized postcards, letters, and notecards with handwritten fonts.
thanks.io is a direct mail automation platform that enables users to send personalized postcards, letters, and notecards with handwritten fonts. On Nagent, Thanks.io is exposed as a fully-configurable marketing automation integration that any agent can call — 29 actions, and API key authentication. No code is required to wire Thanks.io into your workflow — connect it once via the External Integrations panel and reuse it across every agent you build.
Agent builders use Thanks.io to automate the kinds of tasks marketing automation teams previously handled manually. Concrete examples — each one is a single agent step in Nagent — include:
Every action and trigger is paired with a structured input/output schema (visible in the sections below), so when you wire Thanks.io into Helix — our agentic agent builder — the editor knows exactly what each step expects and produces. Configure once, deploy anywhere across your Nagent agents.
Every operation an agent can call against Thanks.io, with input parameters and output schema. Drop these into any step of an agent built in Helix.
THANKS_IO_ADD_RECIPIENT_TO_MAILING_LISTTool to add a new recipient to a mailing list. Use after confirming recipient and list IDs.
Input parameters
City of the recipient's address
Full name of the recipient
Recipient's email address
Recipient's phone number
Primary street address of the recipient
Country code of the recipient's address (ISO 3166-1 alpha-2)
Additional address information (e.g., apartment or suite number)
State or province of the recipient's address
Postal or ZIP code of the recipient's address
ID of the mailing list to which the recipient will be added
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_CREATE_MAILING_LISTTool to create a new mailing list. Use when you need to group contacts under a fresh list before adding recipients.
Input parameters
Name of the new mailing list
Brief description of the mailing list (required by API)
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_DELETE_MAILING_LISTTool to delete a mailing list. Use when you need to remove an entire mailing list by its ID. Confirm the list ID before calling. Example: "Delete the mailing list with ID 123e4567-e89b-12d3-a456-426614174000".
Input parameters
The UUID of the mailing list to delete.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_DELETE_RECIPIENT_FROM_MAILING_LISTTool to remove a recipient from a mailing list. Use after confirming the recipient's ID.
Input parameters
Unique identifier of the recipient to remove
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_DELETE_SUB_ACCOUNTTool to delete a specific sub-account by ID. Use when you need to remove an existing sub-account. Confirm the ID before calling.
Input parameters
The unique ID of the sub-account to delete.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_EXECUTE_STORED_SENDTool to execute a previously created stored send. Use after creating a stored send to trigger delivery. The response body is empty; success is indicated by a 200 or 204 status.
Input parameters
UUID of the stored send resource to execute
Type of stored send to execute
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_LIST_HANDWRITING_STYLESTool to retrieve available handwriting styles. Use when selecting a style for handwritten personalization.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_LIST_IMAGE_TEMPLATESTool to retrieve a list of available image templates. Use when you need to browse or select a template for mailings.
Input parameters
Page number to retrieve (1-indexed). Defaults to 1.
Number of items to return per page. Default is 25.
Filter results by Sub Account ID.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_LIST_MAILING_LISTSTool to list all mailing lists. Use when you need to fetch existing lists before managing recipients.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_LIST_MESSAGE_TEMPLATESTool to list available message templates. Use when selecting a template for a mailing.
Input parameters
Number of items to return per page. Default is 25.
Filter results by Sub Account ID.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_MAILING_LISTS_BUY_RADIUS_SEARCHTool to buy or append a radius search mailing list based on address and radius. Use when you need targeted mailing lists around a specified address.
Input parameters
Full address to use as the center of the radius search
Append phone and email to each record for an additional fee
Postal code for the search
Number of nearest neighbors to search for (1-10000)
Type of records to search for
Include condos in search results
Optional ID of existing mailing list to append results to. If not provided, a new list will be created.
Use property owner's address when searching for commercial record types
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_ORDER_PREVIEW_LETTERTool to preview a letter send as PDF. Use when you need to confirm letter content before placing the final order. Returns PDF preview URLs.
Input parameters
Handwritten message content to appear on the letter cover page.
Must be true to generate and return PDF preview URLs instead of placing an order.
List of recipients for the letter. Required if mailing_lists not provided.
City for the return address.
Name to print on the return address block.
State or province for the return address.
IDs of mailing lists to preview. Required if recipients not provided.
Street address line 1 for the return address.
Street address line 2 for the return address.
URL to a PDF file containing additional pages to include in the letter. Up to 10 pages allowed, printed double-sided.
ID of the handwriting style to use for the letter body.
Postal or ZIP code for the return address.
URL to the background image for the letter (JPEG/PNG).
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_ORDER_PREVIEW_NOTECARDTool to preview a notecard send. Use when you need front and back images before placing an actual notecard order.
Input parameters
Handwritten message content to place inside the notecard.
Must be true to return preview images instead of sending.
List of recipient objects for the notecard preview.
ID of a pre-saved notecard image template.
ID of the handwriting style to use.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_ORDER_PREVIEW_WINDOWLESS_LETTERTool to preview a windowless letter send. Use when you need a PDF preview of the cover-only letter before placing an order.
Input parameters
Handwritten message content. Required if 'message_template' not set
Must be true to return a PDF preview of the letter send
List of recipients for the preview send
URL to the cover image for the windowless letter
ID of a stored message template. Required if 'message' not set
Ink color for handwriting (e.g., 'blue','black', or hex code)
ID of handwriting style to use
URL to a single-page PDF to print on back of cover image
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_ORDERS_LISTTool to list recent orders. Use after placing orders to fetch the latest history, optionally filtering by sub-account or limiting the result count.
Input parameters
Number of items to return per page (default: 25).
Filter orders by this sub-account ID.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_ORDERS_SEARCH_BY_ADDRESSTool to search orders by recipient street address. Use when you need to find all orders sent to a specific street address.
Input parameters
Page number for paginated results, default is 1.
Street address to search orders by.
Number of results per page, between 1 and 100, default is 50.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_RECIPIENTS_CREATE_MULTITool to create multiple recipients at once in a mailing list. Use when batching recipient additions for efficiency.
Input parameters
ID of the mailing list to which recipients will be added
List of recipients to create at once in the mailing list
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_RECIPIENTS_DELETE_BY_ADDRESSTool to delete a recipient by address and postal code. Use when you need to remove a recipient without their ID.
Input parameters
Full street address of the recipient
Postal or ZIP code of the recipient's address
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_RECIPIENTS_GET_DETAILSTool to get details for a specific recipient by ID. Use to verify a recipient’s full address and custom fields.
Input parameters
Unique identifier of the recipient to retrieve
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_RECIPIENTS_SEARCH_BY_EMAILTool to search recipients by email across mailing lists. Use when you need to find all recipients matching an email in specific lists. Example: "Find recipients with email test@test.com in lists \[1,2,3\]."
Input parameters
Email address to search for.
Maximum number of recipients to return; defaults to server limit if unset.
Array of mailing list IDs to search in.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_RECIPIENTS_UPDATETool to update existing recipient details by recipient ID. Use when modifying recipient data after confirming the recipient exists.
Input parameters
City of the recipient's address
Full name of the recipient
Email address of the recipient
Phone number of the recipient
Primary street address of the recipient
Country code of the recipient's address (ISO 3166-1 alpha-2)
Custom field 1 for the recipient
Custom field 2 for the recipient
Custom field 3 for the recipient
Custom field 4 for the recipient
Additional address information (e.g., apartment or suite number)
State or province of the recipient's address
Postal or ZIP code of the recipient's address
Unique identifier of the recipient to update
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_SEND_POSTCARDTool to send a customized postcard. Use when you need to dispatch a physical postcard with a chosen image and handwritten message.
Input parameters
Postcard size; defaults to '4x6'
Handwritten message content (required if 'message_template' is not provided)
If true, returns a preview of the postcard without sending. Useful for validation.
URL to auto-generate a QR code on the back of the postcard
Explicit recipient objects
City for the return address
Name for the return address
ID of the sub-account to bill this order
State for the return address
List of mailing-list IDs to send to
Parameters for a radius-based address search.
ID of a pre-saved front-image template (required if 'front_image_url' is not provided)
Street address for the return address
URL to the image for the front of the postcard (required if 'image_template' is not provided)
Additional street address information
Email address to receive order alerts (e.g., QR scan notifications)
ID of a pre-saved message template (required if 'message' is not provided)
Handwriting ink color (e.g., 'blue', 'black', '#4287f5')
ID of the handwriting style to use
Postal code for the return address
If true, sends as USPS Standard Mail postage class
Whether to use a custom background image
URL to a custom background image (1875×1275 px)
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_STORED_SEND_NOTECARDTool to create a stored send for a notecard. Use when you need to schedule mailing of a personalized notecard at a later time after preparing payload.
Input parameters
Handwritten message content for the notecard
URL to generate a QR code inside the notecard
List of recipient mailing details
ID of the sub-account to use for this order
URL to the image for the front of the notecard
Email to send order alerts (e.g., QR scan notifications)
Handwriting color name or hex code
ID of the handwriting style to use
Set to true to send via standard mail postage
Whether to use a custom background image
URL to custom background (1650×2475px required)
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_STORED_SEND_POSTCARDTool to create a stored send for a postcard. Use when you need to prepare and schedule postcard orders for later execution; returns a URL to finalize and send.
Input parameters
Postcard size
Handwritten message content
If true, return preview images instead of scheduling send
URL to auto-generate a QR code on back
List of recipients
List of mailing list IDs
ID of front-image template
URL to front image
ID of message template
Handwriting ink color
ID of handwriting style to apply
URL to custom background image
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_STORED_SEND_WINDOWLESS_LETTERTool to create a stored send for a windowless letter. Use when you need to prepare a letter order for later execution.
Input parameters
Handwritten message content
List of recipients to schedule the stored send for
URL to the cover image for the windowless letter
ID of the handwriting style to use
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_SUB_ACCOUNTS_CREATETool to create a new sub-account. Use when you need to manage separate profiles with distinct return addresses and settings.
Input parameters
Name of the sub-account
City for the return address (optional)
Name for the return address (optional)
State for the return address (2-letter code, optional)
Primary return street address (optional)
Secondary return street address (optional)
Postal code for the return address (optional)
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_SUB_ACCOUNTS_LISTTool to list all available sub-accounts. Use when you need to select a sub-account for operations requiring a sub-account context.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_SUB_ACCOUNTS_SHOWTool to retrieve details for a specific sub-account by ID. Use when you need full configuration of a sub-account before performing sub-account scoped operations.
Input parameters
Unique identifier of the sub-account to retrieve
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
THANKS_IO_SUB_ACCOUNTS_UPDATETool to update details for a specific sub-account. Use when modifying title or return address details of a sub-account. Confirm sub-account ID before calling.
Input parameters
New name for the sub-account.
New city for the return address.
New return recipient name.
New state/province for the return address (2-letter code).
New primary return street address.
Unique identifier of the sub-account to update.
New secondary return address (optional).
New postal code for the return address.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
No publicly available marketplace agent is found using this tool yet. There are 38 agents privately built on Nagent that already use Thanks.io.
Build on Nagent
Connect Thanks.io to any Nagent agent in minutes — no API key management, no boilerplate. Just configure and deploy.
The five questions agent builders ask before adopting a new integration.
Open the External Integrations panel inside Nagent (app.nagent.ai/externalIntegration), find Thanks.io, and click "Connect Now." You'll authenticate with an API key — Nagent handles credential storage and refresh automatically. Once connected, Thanks.io is available to any agent in your workspace.
No. Nagent provides no-code integration for every tool. Once Thanks.io is connected, you configure its 29 actions directly in the agent builder UI — no API calls, no boilerplate, no schema management.
Helix — Nagent's agentic agent builder — lets you drop Thanks.io steps into any workflow visually. Pick an action (e.g., one of those listed above), fill in the inputs (Helix knows the required vs. optional schema for each parameter), and connect it to upstream/downstream steps. Triggers run as the entry point of an agent, so when a Thanks.io event fires, the agent kicks off automatically.
Every Thanks.io action and trigger ships with a fully-typed schema — input parameters with name, type, required flag, and description, plus the output payload shape. The schemas are documented in the sections above. Helix uses these schemas to validate your configuration at build time and to type-check the data flowing between steps.
Yes. While Thanks.io ships with 29 pre-built marketing automation actions, you can layer custom logic around them inside Helix — pre/post-processing steps, conditional branches, retries, or stitching Thanks.io together with other connected tools. For deeper customization, talk to our team about Nagent's Agentic AI Lab — forward-deployed engineers who build Thanks.io-based workflows tailored to your business.