SendPulse v2

Provides integration with the SendPulse Bulk Email API for managing mailing lists and their contacts. Use it to list, create, rename, and delete mailing lists, look up and search contacts, add contacts with or without list variables, update contact variables and phone numbers, and remove or unsubscribe contacts.

Revision History

0.0.0.2 - Initial release.

Connection

This Connection stores the credentials used by every SendPulse method. Choose an AuthenticationType; only the properties for the selected type are shown.

Property Type Description
AuthenticationType Enum ClientCredentials to authenticate with a SendPulse API client ID and secret, or ApiKey to use a permanent SendPulse API key. Defaults to ClientCredentials.
ClientId String ClientCredentials only. The client ID from your SendPulse API settings.
ClientSecret Masked ClientCredentials only. The client secret from your SendPulse API settings.
ApiKey Masked ApiKey only. A permanent SendPulse API key, sent as a Bearer token. Replace it if it is revoked.
TimeoutSeconds Integer Timeout for each request, in seconds. Defaults to 30 and must be greater than zero.

Setup Notes

  • The SendPulse Node is available on Cloud Runtime clusters.
  • In SendPulse, open your account's API settings and copy the API client ID and secret, or generate a permanent API key.
  • With ClientCredentials, the Node obtains short-lived access tokens and renews them automatically. Tokens are saved with the Connection so later runs can reuse an unexpired token.
  • With ApiKey, the key cannot be renewed automatically. If SendPulse rejects the key, replace it in the Connection.
  • Click Acquire Metadata on the Connection before loading template details or running the Node. This downloads SendPulse's public Bulk Email API description and saves it with the Connection. Run Acquire Metadata again to refresh it. If a refresh fails, the previously saved metadata is kept.
  • Test Connection obtains a fresh access token, when ClientCredentials is selected, and performs a read-only request for one mailing list. It does not require Acquire Metadata and does not change the saved Connection.
  • An HTTP 403 response usually means your SendPulse account or tariff plan does not allow the requested operation.

Methods

Each method exposes templates for a fixed set of SendPulse mailing-list and contact operations. Select a template to populate the stable Operation value and the operation-specific Options and Items fields. Template names come from the SendPulse API, and each template description shows its HTTP method and path.

Read operations use Options only. Write operations use Options for the target mailing list and Items for the request body, with one SendPulse request per row.

Query

Retrieves mailing lists, list variables, and contacts. The Node pages through mailing-list and contact listings automatically and emits one row for each record.

Available templates:

  • getMailingLists (GET /addressbooks) - Lists the mailing lists in your account.
  • getMailingListById (GET /addressbooks/{id}) - Gets one mailing list.
  • getMailingListVariables (GET /addressbooks/{id}/variables) - Lists the variables defined for a mailing list.
  • getEmailsFromMailingList (GET /addressbooks/{id}/emails) - Lists the contacts in a mailing list, including their variable values.
  • getEmailsTotalCount (GET /addressbooks/{id}/emails/total) - Gets the number of contacts in a mailing list.
  • getContactsByVariable (GET /addressbooks/{id}/variables/{variableName}/{searchValue}) - Finds contacts in a mailing list whose variable exactly matches a value.
  • getEmailFromList (GET /addressbooks/{id}/emails/{email}) - Gets one contact from a mailing list by email address.
Parameter Type Description
Connection Connection SendPulse Connection details.
Operation String Stable operation identifier populated by the selected template.
Options Object Path and filter values for the selected operation. Every template except getMailingLists requires the mailing-list id. getContactsByVariable also requires variableName and searchValue, and getEmailFromList requires email. Contact listings can accept optional filters such as order (asc or desc), active, and not_active, as shown by the template.
Return Type Description
Response Array One row per mailing list, variable, or contact returned by SendPulse, or a single row for a count or single-record lookup.

Create

Creates mailing lists or adds contacts to a mailing list, one request for each row in Items.

Available templates:

  • createMailingList (POST /addressbooks) - Creates a mailing list.
  • addEmailsToMailingList (POST /addressbooks/{id}/emails) - Adds email addresses to a mailing list.
  • Add contacts with variables (POST /addressbooks/{id}/emails) - Adds contacts to a mailing list together with values for the list's variables.
Parameter Type Description
Connection Connection SendPulse Connection details.
Operation String Stable operation identifier populated by the selected template.
Options Object The target mailing-list id for the contact templates. Not used by createMailingList.
Items Array One request per row. createMailingList rows contain bookName. addEmailsToMailingList rows contain emails as a comma-separated list of up to 100 addresses. Add contacts with variables rows contain an emails array, where each entry has an email and a variables object holding the mailing list's variable fields.
Return Type Description
Response Array One row per input item, containing the SendPulse response and Flowgear result metadata. createMailingList returns the new mailing list's id.

Update

Renames a mailing list or updates contact details in a mailing list, using each row in Items as one request.

Available templates:

  • updateMailingList (PUT /addressbooks/{id}) - Renames a mailing list.
  • updateContactVariables (POST /addressbooks/{id}/emails/variable) - Updates variable values for a contact.
  • updateContactPhone (PUT /addressbooks/{id}/phone) - Updates the phone number for a contact.
Parameter Type Description
Connection Connection SendPulse Connection details.
Operation String Stable operation identifier populated by the selected template.
Options Object The required mailing-list id.
Items Array One update request per row. updateMailingList rows contain the new name. updateContactVariables rows contain the contact's email and a variables array of name and value pairs. updateContactPhone rows contain the contact's email and the new phone.
Return Type Description
Response Array One row per input item, containing the SendPulse response and Flowgear result metadata.

Delete

Deletes a mailing list or removes contacts from a mailing list.

Available templates:

  • deleteMailingList (DELETE /addressbooks/{id}) - Deletes a mailing list.
  • deleteEmailsFromMailingList (DELETE /addressbooks/{id}/emails) - Removes email addresses from a mailing list.
Parameter Type Description
Connection Connection SendPulse Connection details.
Operation String Stable operation identifier populated by the selected template.
Options Object The mailing-list id. For deleteMailingList, you can omit it when every Items row supplies its own id.
Items Array For deleteEmailsFromMailingList, one request per row, each containing emails as a comma-separated list of up to 100 addresses. For deleteMailingList, optional rows that each contain only the id of a mailing list to delete.
Return Type Description
Response Array One row per request, containing the SendPulse response and Flowgear result metadata.

Unsubscribe

Unsubscribes contacts from a mailing list without removing them. Select the unsubscribeEmailsFromMailingList template (POST /addressbooks/{id}/emails/unsubscribe).

Parameter Type Description
Connection Connection SendPulse Connection details.
Operation String Stable operation identifier populated by the selected template.
Options Object The required mailing-list id.
Items Array One request per row, each containing emails as a comma-separated list of up to 100 addresses.
Return Type Description
Response Array One row per input item, containing the SendPulse response and Flowgear result metadata.

Usage Notes

  • The Node supports SendPulse mailing lists and contacts only. Campaigns, SMTP, SMS, chatbots, double opt-in, tags, the blacklist, account balance, and webhooks are not available.
  • Options accepts only the path and filter values shown by the selected template. Unknown fields are rejected. Paging is managed by the Node, so limit and offset are not available.
  • Options applies to the whole invocation. Every row in Items targets the mailing list identified by Options.id. To work with several mailing lists, run the Node once per list, for example inside a For Each.
  • getContactsByVariable matches searchValue literally. It is not a filter expression. Template samples are not applied unless you enter a value.
  • getEmailsFromMailingList and Add contacts with variables use the variables defined on the selected mailing list. When loading template details, supply Options.id to see that list's typed variable fields. Without it, the template shows the base fields only.
  • Mailing-list variables of type string, number, and date are supported. Any other variable type, or a list with duplicate or unnamed variables, causes an error.
  • Enter emails in addEmailsToMailingList, deleteEmailsFromMailingList, and unsubscribeEmailsFromMailingList as a comma-separated list of no more than 100 addresses per row. Quote values that contain commas, quotes, or line breaks, and double any embedded quotes. Spaces are preserved, and an empty value produces an empty list. Split larger lists across several rows.
  • Contact additions require plain email addresses, for example contact@example.com. Addresses that include a display name or surrounding spaces are rejected before the request is sent.
  • A successful contact addition means SendPulse accepted the request. It does not confirm that every address was added, because SendPulse can process contacts asynchronously or filter them. The Flowgear.Message for these rows is SendPulse accepted the request; contact insertion is not confirmed. Use a Query template to confirm the result when required.
  • deleteMailingList runs once using Options.id when Items is not connected. When Items is connected, each row must contain only the id of the mailing list to delete. An empty Items input deletes nothing.
  • Create, Update, Delete, and Unsubscribe responses include Flowgear.IsSuccess, Flowgear.Message, and Flowgear.Request. Failed rows also include SendPulse's message and error_code when SendPulse returns them.
  • When SendPulse rejects an individual item, for example because of a validation error, the Node returns a failed row and continues with later items. Authentication, permission, connection, and other request-wide failures stop the operation.
  • Query rows return records as SendPulse provides them, without Flowgear metadata. An empty result returns no rows. Numeric contact phone values are returned as strings. getEmailFromList returns contact variables as an array of name, type, and value objects.
  • If SendPulse briefly limits the request rate, the Node waits and retries a limited number of times. If the account quota is exhausted, the operation fails until the quota resets.
  • Writes that time out or return an unexpected response are not retried automatically. Check the mailing list in SendPulse before running the write again.

Known Issues

  • getContactsByVariable returns the results from a single SendPulse response. SendPulse does not document paging for this search, so very large result sets may not be returned in full.

See also