You can send event to Suprsend platform by using the supr_client.track_event method. When you call supr_client.track_event, the SDK internally makes an HTTP call to SuprSend Platform to register this request, and you’ll immediately receive a response indicating the acceptance status. The actual processing/execution of event happens asynchronously.
Copy
Ask AI
from suprsend import Suprsendfrom suprsend import Eventsupr_client = suprsend.Suprsend("workspace_key", "workspace_secret")distinct_id = "distinct_id" # Mandatory, Unique id of user in your applicationevent_name = "event_name" # Mandatory, name of the event you're trackingbrand_id = "brand_id" # Mandatory, name of the event you're tracking# Properties: Optional, default=None, a dict representing event-attributesproperties = {"key1":"value1","key2":"value2"}event = Event(distinct_id=distinct_id, event_name=event_name, properties=properties, idempotency_key="__uniq_request_id__", brand_id="default")# Track eventresponse = supr_client.track_event(event)print(response)
Parameter
Description
Format
Obligation
distinct_id
distinct_id of user performing the event
int, bigint, string, UUID
mandatory
event_name
string identifier for the event like product_purchased
string
mandatory
properties
a dictionary representing event attributes like first_name Event properties can be used to pass template variables in case of event based trigger
Dictionary
optional
Event naming guidelines:Event Name or Property Name should not start with or , as we have reserved these symbols for our internal events and property names.
SuprSend supports idempotency to ensure that requests can be retried safely without duplicate processing. If Suprsend receives and processes a request with an idempotency_key, it will skip processing requests with same idempotency_key for next 24 hours. You can use this key to track webhooks related to workflow notifications.Idempotency key should be unique that you generate for each request. You may use any string up to 255 characters in length. Any space at start and end of the key will be trimmed.Here are some common approaches for assigning idempotency keys:
Generate a random UUID for each request.
Construct the idempotency key by combining relevant information about the request. This can include parameters, identifiers, or specific contextual details that are meaningful within your application. e.g., you could concatenate the user ID, action, and timestamp to form an idempotency key like user147-new-comment-1687437670
Request-specific Identifier: If your request already contains a unique identifier, such as an order ID or a job ID, you can use that identifier directly as the idempotency key.
To add one or more Attachments to a Notification (viz. Email), you can just append the filepath of attachment to the event instance.
Call event.add_attachment() for each file with an accessible URL.
Ensure that file_path is a publicly accessible URL. Since event API size can’t be > 100 KB, local file paths can’t be passed in event attachment.
Copy
Ask AI
from suprsend import Eventdistinct_id = "0fxxx8f74-xxxx-41c5-8752-xxxcb6911fb08"event_name = "invoice_generated"properties = {...}event = Event(distinct_id=distinct_id, event_name=event_name, properties=properties)# this snippet can be used to add attachment to eventfile_path = "https://www.adobe.com/sample_file.pdf"event.add_attachment(file_path)response = supr_client.track_event(event)print(response)
Please add public accessible URL only as attachment file otherwise it will throw an error 404 not found and workflow will not be triggered