Webhooks

Overview

Nosto's UGC Webhooks enable callbacks to be made to your HTTP(S) endpoints when specific events have been triggered (often referred to as notifications).

For each of the Webhook types you can enter the URL of your endpoints, and Nosto's UGC will make HTTP POST requests with the relevant data to the endpoints when the events occur. The URLs entered can be different, or the same URL can be configured for all of them and the payload of the POST can be used to determine the Webhook.

To start receiving notifications, simply enter the relevant URLs in the Stackla API > Webhooks area of your Stack's Admin Portal. To stop receiving notifications, simply remove the URL from the Webhook's field.

Webhook notifications are generally in near-realtime, however during times of very high load, there may be a delay of several seconds before the notification arrives.

Security Restrictions

Webhooks may originate from a variety of servers and IP addresses, by default. If you require to whitelist IP address ranges to receive webhooks, please contact our support team or your Customer Success Manager to organize a custom solution.

Nosto's UGC Webhooks also support appending a 'Secret Key' to the Notification if required.

This secret key uses X-Stackla-Webhook-Signature header to sign the request with a secret key.

This secret key can be used to validate the request from the client's webhook endpoint.

We do not support ip ranges, but if a client requests this, they should use ap-southeast-2 ip ranges. https://ip-ranges.amazonaws.com/ip-ranges.json

Notification Data

Notifications will arrive as HTTP POST requests, with Content-Type set to "application/json". This may mean a slightly different strategy for grabbing POST data for languages such as PHP, which will not be able to read directly from $_POST.

Webhook secret key

The secret key is sent in the HTTP header named X-Stackla-Webhook-Signature , and the value is crypto-encrypted

const signature = crypto.createHmac('sha256', secret)
            .update(data)
            .digest('hex');

Webhook Types

Nosto's UGC supports the following types of Webhooks:

TILE_CLAIM

A callback will be made via HTTP POST when an individual Tile has been claimed.

Data

Sample

{"_id":"5e27c2c529a27762badd642b","action":"TILE_CLAIM","sta_feed_id":"690549978851fd782e1ebc2c413f974d","guid":"690549978851fd782e1ebc2c413f974d","network":"social_network","network_id":"690549978851fd782e1ebc2c413f974d","network_user":null,"network_user_id":"550b99e2aa7ba","network_user_name":"Content Creator","original_post_url":"https://www.website.url","original_user_url":"https://www.website.url","stack_id":1234,"claimed_data":{"claimed_at":"1579664135","claimed_by":"Content Creator","message":"Rights Granted"},"updated_time":1579664135}

Back to top

TILE_STATUS_UPDATE

A callback will be made via HTTP POST when an individual Tile's status has been updated.

Data

Sample

{"_id":"5e27c2c529a27762badd642b","action":"TILE_STATUS_UPDATE","sta_feed_id":"690549978851fd782e1ebc2c413f974d","guid":"690549978851fd782e1ebc2c413f974d","network":"social_network","network_id":"690549978851fd782e1ebc2c413f974d","network_user":null,"network_user_id":"550b99e2aa7ba","network_user_name":"Content Creator","custom_fields":[],"original_post_url":"","original_user_url":"https://www.website.url","stack_id":1234,"status":"queued","terms":[12345],"tags":["12345","23456","34567"],"sentiment_score":0,"external_data":{"firstname":"Content","lastname":"Creator","email":"email@address.com", "terms_and_conditions":1,"_id":{"$oid":"5e27c2c4a15d4162ba5d8a7e"}},"old_status":"published","updated_time":1579664379}

Usage Examples

Back to top

TILE_TAGS_UPDATE

A callback will be made via HTTP POST when an individual Tile has had its tags updated.

Data

Sample

{"_id":"5e27c2c529a27762badd642b","action":"TILE_TAGS_UPDATE","sta_feed_id":"690549978851fd782e1ebc2c413f974d","guid":"690549978851fd782e1ebc2c413f974d","network":"social_network","network_id":"690549978851fd782e1ebc2c413f974d","network_user":"Content Creator","network_user_id":"550b99e2aa7ba","network_user_name":"Content Creator","custom_fields":[],"original_post_url":"","original_user_url":"","stack_id":1234,"tags":["12345","23456","34567"],"old_tags":["12345","34567"],"updated_time":1579664376}

Back to top

TILE_VOTES_UPDATE

A callback will be made via HTTP POST when an individual Tile has been voted on.

Data

Back to top

TILE_INGESTED

A callback will be made via HTTP POST when an individual tile has been ingested.

Data

Sample

{"_id":"5e27c2c529a27762badd642b","action":"TILE_INGESTED","sta_feed_id":"690549978851fd782e1ebc2c413f974d","guid":"690549978851fd782e1ebc2c413f974d","network":"sta_feed","network_id":"690549978851fd782e1ebc2c413f974d","network_user":null,"network_user_id":"550b99e2aa7ba","network_user_name":"First Name Last Name","original_post_url":"","original_user_url":"","stack_id":1277,"status":"published","terms":[49349],"tags":["111635","146566"],"sentiment_score":0,"external_data":{"firstname":"First Name","lastname":"Last Name","email":"email@address.com","ip":"59.100.203.78","terms_and_conditions_url":"http://www.stackla.com","terms_and_conditions":1},"created_time":1579664069}

Back to top

TILE_LIKE_DISLIKE

A callback will be made via HTTP POST when an individual tile has been like or dislike.

Data

Usage Examples

Back to top

USER_UPDATE

A callback will be made via HTTP POST when a new user is successfully registered or an existing user profile is updated.

Data

Back to top

ASSET_CREATED

A callback will be made via HTTP POST when

Data

Sample

{"workflow_status":"approved","from":"goconnect","created_at":1579664073,"title":"Content Creator - GoConnect - 22nd Jan 2020 03:34 UTC","note":"","tags":["12345","23456"],"tile":{"_id":"5e27c2c529a27762badd642b","source":"social_network","source_created_at":1579664065,"source_unique_id":"sta_feed:690549978851fd782e1ebc2c413f974d","source_user_id":"550b99e2aa7ba","user":null,"name":"Content Creator","original_url":"https://www.website.url","claimed":true,"message":"Sample Message"},"type":"image","thumbnail":{"url":"https://uploads-cdn.stackla.com/10/stack/2020-01-22/5e27c2b17bd4e/42dd99b4ac68a4f5cbfadf2fb19dafa3-small.jpg","mime":"image/jpeg","size":31438,"width":640,"height":359},"media":{"url":"https://uploads-cdn.stackla.com/10/stack/2020-01-22/5e27c2b17bd4e/42dd99b4ac68a4f5cbfadf2fb19dafa3-medium.jpg","mime":"image/jpeg","size":102029,"width":1280,"height":719,"orientation":"landscape","dimension":"m"},"media_files":[{"url":"https://uploads-cdn.stackla.com/10/stack/2020-01-22/5e27c2b17bd4e/42dd99b4ac68a4f5cbfadf2fb19dafa3-medium.jpg","mime":"image/jpeg","size":102029,"width":1280,"height":719},{"url":"https://uploads-cdn.stackla.com/10/stack/2020-01-22/5e27c2b17bd4e/42dd99b4ac68a4f5cbfadf2fb19dafa3-large.jpg","mime":"image/jpeg","size":226643,"width":1824,"height":1024},{"url":"https://uploads-cdn.stackla.com/10/stack/2020-01-22/5e27c2b17bd4e/42dd99b4ac68a4f5cbfadf2fb19dafa3-small.jpg","mime":"image/jpeg","size":31438,"width":640,"height":359}],"_id":"5e27c2c875986fa79afb6621"}

Back to top

ASSET_UPDATED

A callback will be made via HTTP POST when

Data

Sample

{"workflow_status":"approved","from":"goconnect","created_at":1579664073,"title":"Content Creator - GoConnect - 22nd Jan 2020 03:34 UTC","note":"","tags":["12345","23456"],"tile":{"_id":"5e27c2c529a27762badd642b","source":"social_network","source_created_at":1579664065,"source_unique_id":"sta_feed:690549978851fd782e1ebc2c413f974d","source_user_id":"550b99e2aa7ba","user":null,"name":"Content Creator","original_url":"https://www.website.url","claimed":true,"message":"Sample Message"},"type":"image","thumbnail":{"url":"https://uploads-cdn.stackla.com/10/stack/2020-01-22/5e27c2b17bd4e/42dd99b4ac68a4f5cbfadf2fb19dafa3-small.jpg","mime":"image/jpeg","size":31438,"width":640,"height":359},"media":{"url":"https://uploads-cdn.stackla.com/10/stack/2020-01-22/5e27c2b17bd4e/42dd99b4ac68a4f5cbfadf2fb19dafa3-medium.jpg","mime":"image/jpeg","size":102029,"width":1280,"height":719,"orientation":"landscape","dimension":"m"},"media_files":[{"url":"https://uploads-cdn.stackla.com/10/stack/2020-01-22/5e27c2b17bd4e/42dd99b4ac68a4f5cbfadf2fb19dafa3-medium.jpg","mime":"image/jpeg","size":102029,"width":1280,"height":719},{"url":"https://uploads-cdn.stackla.com/10/stack/2020-01-22/5e27c2b17bd4e/42dd99b4ac68a4f5cbfadf2fb19dafa3-large.jpg","mime":"image/jpeg","size":226643,"width":1824,"height":1024},{"url":"https://uploads-cdn.stackla.com/10/stack/2020-01-22/5e27c2b17bd4e/42dd99b4ac68a4f5cbfadf2fb19dafa3-small.jpg","mime":"image/jpeg","size":31438,"width":640,"height":359}],"_id":"5e27c2c875986fa79afb6621" "updated_at":1579664845,"oldValues":{"workflow_status":"approved","title":"Previous Title - GoConnect - 22nd Jan 2020 03:34 UTC","note":"","tags":["111635","146566"],"updated_at":1579664844}}

Back to top

MANUAL_TILE_UPDATE

A callback will be made via HTTP POST when

Data

Sample

{"_id":"5e27c2c529a27762badd642b","avatar":null,"claimed":true,"claimed_by":"goconnect","created_at":1579664069,"image":"https://uploads-cdn.stackla.com/10/stackla/2020-01-22/5e27c2b17bd4e/42dd99b4ac68a4f5cbfadf2fb19dafa3-medium.jpg","lang":"en","media":"image","message":"Message","tags":["12345","23456","34567"],"updated_at":1579664381,"claimed_data":{"claimed_at":"2020-01-22T03:34:25.000Z","claimed_by":"goconnect","message":"Message"},"network_user_name":"Content Creator","original_post_url":"https://www.website.url","network":"social_network","network_user_id":"550b99e2aa7ba"}

MANUAL_ASSET_UPDATE

A callback will be made via HTTP POST when

Data

Sample

{"_id":"5e27c2c875986fa79afb6621","from":"goconnect","title":"Content Creator - GoConnect - 22nd Jan 2020 03:34 UTC","note":"","tags":[12345,23456],"type":"image","media_files":[{"url":"https://uploads-cdn.stackla.com/10/stackla/2020-01-22/5e27c2b17bd4e/42dd99b4ac68a4f5cbfadf2fb19dafa3-medium.jpg","mime":"image/jpeg","size":102029,"width":1280,"height":719},{"url":"https://uploads-cdn.stackla.com/10/stackla/2020-01-22/5e27c2b17bd4e/42dd99b4ac68a4f5cbfadf2fb19dafa3-large.jpg","mime":"image/jpeg","size":226643,"width":1824,"height":1024},{"url":"https://uploads-cdn.stackla.com/10/stackla/2020-01-22/5e27c2b17bd4e/42dd99b4ac68a4f5cbfadf2fb19dafa3-small.jpg","mime":"image/jpeg","size":31438,"width":640,"height":359}],"created_at":1579664073,"thumbnail":{"url":"https://uploads-cdn.stackla.com/10/stackla/2020-01-22/5e27c2b17bd4e/42dd99b4ac68a4f5cbfadf2fb19dafa3-small.jpg","mime":"image/jpeg","size":31438,"width":640,"height":359},"media":{"url":"https://uploads-cdn.stackla.com/10/stackla/2020-01-22/5e27c2b17bd4e/42dd99b4ac68a4f5cbfadf2fb19dafa3-medium.jpg","mime":"image/jpeg","size":102029,"width":1280,"height":719}}

Last updated