{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-@l10n/ja/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Realtime Secure Signed Webhook Streaming Export Integration","description":"Treasure Data Product Documentation · Collect and Unify · Segment and Activate · Experiment and Analyze · Decisioning Automate with AI Scale and Trust.","siteUrl":"https://docs.treasuredata.com","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"realtime-secure-signed-webhook-streaming-export-integration","__idx":0},"children":["Realtime Secure Signed Webhook Streaming Export Integration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Secure Signed Webhook (SS Webhook) Streaming Export Integration enables real-time data delivery to external webhook endpoints with cryptographic signature verification as part of Treasure Data's activation workflows."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["With this integration, you can securely send customer data to your webhook endpoints in real-time, with signatures to verify the authenticity and integrity of each request."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"prerequisites","__idx":1},"children":["Prerequisites"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Basic knowledge of Treasure Data"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Basic knowledge of webhook architecture and HTTP/HTTPS protocols"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Understanding of HMAC-SHA256 signature verification"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A publicly accessible HTTPS endpoint that can receive HTTP requests (Supported HTTP Methods: GET, POST, PUT, DELETE, and PATCH)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ability to implement signature verification logic on your webhook receiver"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"use-cases","__idx":2},"children":["Use Cases"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The primary use case for this streaming integration is to incorporate it into a real-time activation workflow to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Send customer profile data to external systems in real-time"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Trigger downstream processes based on customer behavior"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Synchronize customer data with third-party applications"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enable real-time personalization in external platforms"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Here is an overview of how to configure that workflow to trigger a delivery:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Set up your webhook endpoint to receive HTTP requests with JSON payloads (POST is the default method, but other HTTP methods can be configured)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement signature verification logic using HMAC-SHA256 on your webhook receiver."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Create an authentication for this integration with your webhook URL and signing secret."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In a Real-time Journey, select this authentication for a new triggered activation."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"requirements-and-limitations","__idx":3},"children":["Requirements and Limitations"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The webhook endpoint must be accessible via HTTPS (TLS 1.2 or higher recommended)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The endpoint must respond within 30 seconds to avoid timeout errors."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Maximum payload size is 1MB per request."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Rate limits depend on your infrastructure capacity."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The signature is calculated using HMAC-SHA256 and sent in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-TD-Signature"]}," header."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Your webhook must return HTTP status codes 200-299 for successful processing."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"ss-webhook-streaming-export-via-treasure-console","__idx":4},"children":["SS Webhook Streaming Export via Treasure Console"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You must create and configure the data connection in Treasure Data. As part of the data connection, you provide authentication credentials to access the integration."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"create-authentication","__idx":5},"children":["Create Authentication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Perform the following steps to create a new authentication with a set of credentials."]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select Integrations Hub."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select Catalog."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Search for your Integration in the Catalog; hover your mouse over the icon and select Create Authentication."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/ss-webhook-streaming-logo.dda6d183649c595141623038f8c57d55f748e65d1b3184d125904929bfc82a21.e33f8211.png","alt":"SS Webhook connector tile in the Integrations Hub Catalog"},"children":[]}]},{"$$mdtype":"Tag","name":"ol","attributes":{"start":4},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ensure that the Credentials tab is selected and then enter credential information for the integration."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"new-authentication-fields","__idx":6},"children":["New Authentication Fields"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/ss-webhook-streaming-authen.e7b49dd0377abcc0e83b9f169c8a216ca04bb7aed0703d88ae8ff7aa28a534ea.e33f8211.png","alt":"Authentication configuration screen showing the Webhook URL and Authentication Type fields"},"children":[]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["URL Prefix"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The base URL prefix of the webhook HTTPS endpoint that will receive the webhook requests. All triggered activations using this authentication must use URLs that start with this prefix."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Auth Type"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Select the authorization type to secure your webhook endpoint. Supported types: ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Basic Auth"]},", ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bearer Token"]},", ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API Key"]},", ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Treasure API Key"]},", ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Custom Auth"]},", or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["No Auth"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Authentication Type Details:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Basic Auth"]},": HTTP Basic Authentication using username and password"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["User Name: The username for authentication"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Password: The password for authentication"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bearer Token"]},": OAuth 2.0 Bearer Token authentication"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Bearer Token: The authentication token value"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API Key"]},": Custom API key authentication"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["API Key Name: The name of the API key header or parameter"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["API Key: The API key value"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Treasure API Key"]},": Treasure API key authentication"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Uses your Treasure API key for authentication"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Custom Auth"]},": Custom authentication headers"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Configure custom authentication headers as needed"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["No Auth"]},": No authentication required"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use only for testing or publicly accessible endpoints"]}]}]}]},{"$$mdtype":"Tag","name":"ol","attributes":{"start":5},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Continue"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enter a name for your connection."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Done."]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After configuring the SS Webhook Streaming integration, it is now available to be incorporated into real-time customer journey activations. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/assets/triggeredactivation.66e546b8c4cc774c0bdd804d0d099b63cf12b1916181d85d7c715be95bd61810.9e7171ae.png"},"children":["Creating a Real-time Triggered Activation"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"real-time-triggered-activation","__idx":7},"children":["Real-time Triggered Activation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To create or update a triggered activation:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Select the triggered activation you want to configure ",{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/triggeredactivation.66e546b8c4cc774c0bdd804d0d099b63cf12b1916181d85d7c715be95bd61810.9e7171ae.png","alt":""},"children":[]},"."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the triggered activation window, select an activation from the Copy triggered activation from drop-down menu."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Enter a Triggered activation name."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Enter an Optional description of the activation."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["From the Authentication drop-down menu, select the authentication the activation should use."]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Depending on the type of authentication you choose, the details you will need to provide will vary. Refer to the integration-specific table below for more information."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/ss-webhook-streaming-triggered-activation.d28a845a4fe476054db8c0bba7368acd8568cca12bbd2ff2569c7fbb91086e6e.e33f8211.png","alt":"SS Webhook Output Streaming Activation Config"},"children":[]}]},{"$$mdtype":"Tag","name":"ol","attributes":{"start":6},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Verify or provide the information required for the fields on the Details page."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["After the Details are configured, select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create"]}," or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Update"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"integration-parameters","__idx":8},"children":["Integration Parameters"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Values"},"children":["Values"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["HTTP Method"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["optional, default POST"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The HTTP method to use for the request. Supported methods: GET, POST, PUT, DELETE, PATCH"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["URL"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["required"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The complete webhook API endpoint URL. Must start with the URL Prefix configured in the authentication"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Custom Headers"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["optional - JSON Object"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Additional HTTP headers to include in the request. You can add multiple headers with a maximum of 32 headers. The maximum size for each header key and value is 256 bytes each. Example: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{\"Content-Type\": \"application/json\", \"X-Custom-Header\": \"value\"}"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Request Body"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["required - JSON Object"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The JSON payload structure to send to the webhook endpoint."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry Limit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["optional, default 3"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Maximum number of retry attempts before giving up on failed requests"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Connection Timeout (Seconds)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["optional, default 30"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Maximum time in seconds to wait for establishing a connection to the webhook endpoint"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Read Timeout (Seconds)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["optional, default 30"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Maximum time in seconds to wait for reading the response from the webhook endpoint"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Write Timeout (Seconds)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["optional, default 30"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Maximum time in seconds to wait for sending the request payload to the webhook endpoint"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"runtime-expressions-and-crypto-functions","__idx":9},"children":["Runtime Expressions and Crypto Functions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The SS Webhook integration supports dynamic runtime expressions and cryptographic functions that can be used in custom headers and request body."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"runtime-expressions","__idx":10},"children":["Runtime Expressions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use these expressions to dynamically insert values at request time:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Expression"},"children":["Expression"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Example Output"},"children":["Example Output"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["${unix_timestamp}"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Current Unix timestamp in seconds"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1709568000"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["${http_method}"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The HTTP method being used"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["${relative_path}"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The relative path of the URL (path after the domain)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/api/webhook/events"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Example usage in Custom Headers:"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"X-Timestamp\": \"${unix_timestamp}\",\n  \"X-Method\": \"${http_method}\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"crypto-functions","__idx":11},"children":["Crypto Functions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use these cryptographic functions to generate secure signatures for request authentication:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Function"},"children":["Function"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Output Format"},"children":["Output Format"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["${hmac_sha256_hex(secret, string)}"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Generates HMAC-SHA256 signature and returns as hexadecimal string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["a1b2c3d4e5..."]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["${hmac_sha256_base64(secret, string)}"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Generates HMAC-SHA256 signature and returns as Base64-encoded string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["YTFiMmMzZD..."]}]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Example usage for signature generation:"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"X-Signature\": \"${hmac_sha256_hex(my_secret_key, ${unix_timestamp}.${request_body})}\",\n  \"X-Timestamp\": \"${unix_timestamp}\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This allows you to implement custom signature verification on your webhook endpoint similar to the Secure Signed Webhook pattern."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"retry-and-logging-logic","__idx":12},"children":["Retry and Logging Logic"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The connector will retry to send the request when it gets the status code 429, 500, 502, 503, or 504."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If the request is sent successfully before the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry Limit"]}," is reached, the logging will show successfully."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If the request still fails after reaching the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry Limit"]},", the connector will stop the job."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["We will see the error message and the status code in the client's activation table whenever the request sent fails."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry Limit"]}," can be configured in the Activation Config."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"best-practices","__idx":13},"children":["Best Practices"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Idempotency"]},": Design your webhook receiver to handle duplicate requests safely, as retries may occur."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Timeout Handling"]},": Ensure your webhook endpoint responds within 30 seconds. For long-running processes, acknowledge receipt immediately and process asynchronously."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Security"]},": Always verify the signature before processing the payload to prevent unauthorized requests."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Monitoring"]},": Implement logging and monitoring on your webhook endpoint to track successful deliveries and failures."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Error Handling"]},": Return appropriate HTTP status codes (200-299 for success, 4xx for client errors, 5xx for server errors)."]}]}]},"headings":[{"value":"Realtime Secure Signed Webhook Streaming Export Integration","id":"realtime-secure-signed-webhook-streaming-export-integration","depth":1},{"value":"Prerequisites","id":"prerequisites","depth":2},{"value":"Use Cases","id":"use-cases","depth":2},{"value":"Requirements and Limitations","id":"requirements-and-limitations","depth":2},{"value":"SS Webhook Streaming Export via Treasure Console","id":"ss-webhook-streaming-export-via-treasure-console","depth":2},{"value":"Create Authentication","id":"create-authentication","depth":3},{"value":"New Authentication Fields","id":"new-authentication-fields","depth":3},{"value":"Real-time Triggered Activation","id":"real-time-triggered-activation","depth":3},{"value":"Integration Parameters","id":"integration-parameters","depth":3},{"value":"Runtime Expressions and Crypto Functions","id":"runtime-expressions-and-crypto-functions","depth":2},{"value":"Runtime Expressions","id":"runtime-expressions","depth":3},{"value":"Crypto Functions","id":"crypto-functions","depth":3},{"value":"Retry and Logging Logic","id":"retry-and-logging-logic","depth":2},{"value":"Best Practices","id":"best-practices","depth":2}],"frontmatter":{"seo":{"title":"Realtime Secure Signed Webhook Streaming Export Integration"}},"lastModified":"2026-06-01T09:09:59.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/ja/int/ss-webhook-streaming-export-integration","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}