Webhook by Example

Overview

This option is available for Turbo and Cloud users that run Dux-Soup Expert UI.

With Dux-Soup Webhooks you can now receive details of various events that occur in Dux-Soup while using the automated or manual profile visits and scan functions. Apart from profile details, the webhooks will be sent the details of automated actions, and their results, as they are executed. You can add up to 5 webhooks, allowing you to send different events to different targets.

Webhooks can be enabled in Dux-Soup Options -> Connect Tab [1]. Simply toggle the switch and set the target URL where you want to receive the data:

Target URL

The event data will be sent to this web address.

Send Sample

Press this button to send sample data of the selected event types to the target URL.

Types of Events

Select which of the available events you would like to receive. 

Details of each of these event types follows below.

Visit Event

Visit Events occur when manually and automatically viewing profiles in LinkedIn. 

Visit.Create Event

This event occurs when a profile is initially opened and is recognized by Dux-Soup. It contains most of the profile details. Please also process the corresponding Update Event to ensure all the captured profile details are received.

Example

This example shows the JSON structure that will be sent as an HTTP POST body to the webhook URL

{
  "userid": "117917531760586753354",			// The current Dux-Soup User
  "time": "2019-01-06T08:45:03.239Z",			// When the event was created
  "type": "visit",					// Visit Event
  "event": "create",					// Create Stage
  "data": {						// Profile Details
    "id": "id.11964767",
    "VisitTime": 1546764302571,
    "Profile": "https://www.linkedin.com/in/jamesbrooks3/",
    "Picture": "https://media.licdn.com/dms/image/C4E03AQGS174biYNVOA/profile-displayphoto-shrink_800_800/0?e=1552521600&v=beta&t=yWZVN_trvl0ycueCa4qayoJkVjqhPsuCzgzdQwv90mM",
    "Degree": "1st",
    "First Name": "James",
    "Middle Name": "",
    "Last Name": "Brooks",
    "From": "2018",
    "Title": "CX Innovation",
    "Company": "Capita",
    ...
  }
}

Visit.Update Event

This event occurs when additional profile information becomes available after the initial event was sent. It has the same structure as the Create Event and will include all data from the Create Stage as well as the Update Stage.

Example

{
  "userid": "117917531760586753354",                    // The current Dux-Soup User
  "time": "2019-01-06T08:45:06.233Z",                   // When the event was created
  "type": "visit",                                      // Visit Event
  "event": "update",                                    // Update Stage
  "data": {                                             // Profile Details
    "id": "id.11964767",
    "VisitTime": 1546764302571,
    "Profile": "https://www.linkedin.com/in/jamesbrooks3/",
    "Picture": "https://media.licdn.com/dms/image/C4E03AQGS174biYNVOA/profile-displayphoto-shrink_800_800/0?e=1552521600&v=beta&t=yWZVN_trvl0ycueCa4qayoJkVjqhPsuCzgzdQwv90mM",
    "Degree": "1st",
    "First Name": "James",
    "Middle Name": "",
    "Last Name": "Brooks",
    "From": "2018",
    "Title": "CX Innovation",
    "Company": "Capita",
    ...
  }
}

Scan Event

Scan Events occur as Dux-Soup processes a Profile List, after the user has selected "Scan Profiles".

Scan.Create Event

This event occurs when a profile is scanned by Dux-Soup. Scanning profiles is started by the user via the “Scan Profiles” option in the Dux-Soup drop down menu. Each profile in the list that is scanned will result in a single Webhook event.

Example

This example shows the JSON structure that will be sent as an HTTP POST body to the webhook URL

{
  "userid": "117917531760586753354",                    // The current Dux-Soup User
  "time": "2019-01-06T08:45:06.233Z",                   // When the event was created
  "type": "scan",                                       // Scan Event
  "event": "create",                                    // Create Stage
  "data": {                                             // Scanned Profile Details
    "id": "id.11964767",
    "ScanTime": 1546764302571,
    "Profile": "https://www.linkedin.com/in/jamesbrooks3/",
    "First Name": "James",
    "Middle Name": "",
    "Last Name": "Brooks",
    ...
}

Action Events

Action Events occur when Dux-Soup automations, e.g. auto-invite, auto-endorse, are triggered on a profile.

Action.Create Event

This event occurs when an automated action has completed. The action name can be one of the following, corresponding to the automation actions that are available in Dux-Soup Option:

  •       connectProfile
  •       disconnectProfile
  •       endorseProfile
  •       followProfile
  •       inmailProfile
  •       messageProfile
  •       pdfProfile
  •       saveasleadProfile

Example

This example shows the JSON structure that will be sent as an HTTP POST body to the webhook URL

{
  "userid": "117917536760586753354",			// The current Dux-Soup User
  "time": "2019-01-06T08:45:17.477Z",			// When the event was created
  "type": "action",					// Action Event
  "event": "create",					// Create Stage
  "data": {						// Action Details
    "name": "pdfProfile",
    "targeturl": "https://www.linkedin.com/in/jamesbrooks3/",
    "profileid": "id.11964767",
    "successflag": true,				// Success indicator
    "returnvalue": null					// Return value, if any
  }
}

Message Events

Message Events occur when the Message Bridge has been enabled and new messages are being processed by Dux-Soup.

Message.Received Event

This event occurs when a new received message has been read by the message bridge. The message type can be one of the following, corresponding to the type of message that was read in the LinkedIn inbox.

  • MEMBER_TO_MEMBER
  • INVITATION_ACCEPT

Example

This example shows the JSON structure that will be sent as an HTTP POST body to the webhook URL

{
  "userid": "117917536760586753354",			// The current Dux-Soup User
  "time": "2019-03-21T16:51:25.899Z",			// When the event was created
  "type": "message",					// Message Event
  "event": "received",					// Received message
  "data": {
    "url": 						// the conversation on LinkedIn
	   "https://www.linkedin.com/messaging/thread/64525225672721408/", 	
    "timestamp": "2019-02-15T15:28:20.980Z",		// Timestamp of the message
    "from": 						// Message sender LinkedIn URL
	     "https://www.linkedin.com/in/rodrigo-ramos-a0ab9327", 
    "fromId": "id.26429462492",				// Message sender profile id
    "fromFirstName": "Rodrigo",				// Message sender first name
    "fromLastName": 	"Ramos",			// Message sender last name
    "type": "MEMBER_TO_MEMBER",				// Type of message
    "tags": [	"🦆-default-invited", 
	 	"🦆-default-accepted" , 
		"🦆-default-responded"   ],		// Tags on the profile 
    "text": 						// Message body
	    "Hi man. You’re Welcome. Nice to have you in my contacts" 	
  }
}

Message.Sent Event

This event occurs when a new sent message has been read by the message bridge. The message type is MEMBER_TO_MEMBER.

Example

This example shows the JSON structure that will be sent as an HTTP POST body to the webhook URL

{
  "userid": "117917536760586753354",			// The current Dux-Soup User
  "time": "2019-03-21T16:51:25.899Z",			// When the event was created
  "type": "message",					// Message Event
  "event": "sent",					// Sent message
  "data": {
    "url": 						// the conversation on LinkedIn
	   "https://www.linkedin.com/messaging/thread/64525225672721408/", 	
    "timestamp": "2019-02-15T15:28:20.980Z",		// Timestamp of the message
    "to": 						// Message sender LinkedIn URL
	     "https://www.linkedin.com/in/rodrigo-ramos-a0ab9327", 
    "toId": "id.26429462492",				// Message recipient profile id
    "toFirstName": "Rodrigo",				// Message recipient first name
    "toLastName": 	"Ramos",			// Message recipient last name
    "type": "MEMBER_TO_MEMBER",				// Type of message
    "tags": [	"🦆-default-invited", 
		"🦆-default-accepted"   ],		// Tags on the profile 
    "text": 						// Message body
	    "Hi Rodrigo, what are you up to these days?" 	
  }
}

Remote Control Events

Remote Control Events occur as the Remote Control Robot processes commands.

RCCommand.received Event

This event occurs when a new Remote Control command has been read by the remote control robot.

Example

This example shows the JSON structure that will be sent as an HTTP POST body to the webhook URL

{
  "userid": "117917536760586753354",
  "time": "2019-03-25T14:13:15.814Z",
  "type": "rccommand",
  "event": "received",
  "data": {
    "id": "a5f64143-b847-5f473ac7488d",
    "command": "visit",
    "params": {
      "profile": "https://www.linkedin.com/in/janjanjanjanjan/"
    }
  }
}

RCCommand.completed Event

This event occurs when a Remote Control command has been successfully executed by the remote control robot.

RCCommand.snooze Event

This event occurs when the Remote Control robot is snoozing due to the throttling configuration.

Example

This example shows the JSON structure that will be sent as an HTTP POST body to the webhook URL

{
  "userid": "103329626217674043154",
  "time": "2019-04-20T10:48:35.828Z",
  "type": "rccommand",
  "event": "snooze",
  "data": {
    "reason": "throttling",
    "time": 15000
  }
}

RCCommand.ready Event

This event occurs when the remote control robot is ready to receive commands.

Example

This example shows the JSON structure that will be sent as an HTTP POST body to the webhook URL

{
  "userid": "117917536760586753354",
  "time": "2022-06-25T14:13:15.814Z",
  "type": "rccommand",
  "event": "ready",
  "data": {
      "clientid":"203bc8fa-13e9-4efe-b0e1-26a4067c5c6e",
      "exclusions":{
         "commands":[], // list of commands to be excluded due to throttling
         "campaigns":[	// list of disabled campaign ids
            "default"
         ]
  }
}

RCCommand.ignore Event

This event occurs when a the command has been ignored. This happens when the target profile matches any of the action exclusion rules, e.g. blacklisted.

Example

This example shows the JSON structure that will be sent as an HTTP POST body to the webhook URL

{
    "userid" : "103329626217674043154",
    "time" : "2022-04-28T08:18:14.221Z",
    "type" : "rccommand",
    "event" : "ignore",
    "data" : {
        "id" : "a7f8508d-bae9-2caafac11c66",
        "command" : "message",
        "params" : {
            "profile" : "https://www.linkedin.com/in/janjanjanjanjan/",
            "messagetext" : "Hi _FN_,\n\nThanks for connecting.",
            "campaignid" : "default",
        },
        "reason" : "blacklisted"
    }
}

RCCommand.error Event

This event occurs when an error occurred when trying to execute the Remote Control command.

Example

This example shows the JSON structure that will be sent as an HTTP POST body to the webhook URL

{
    "userid" : "103329626217674043154",
    "time" : "2022-04-28T12:35:03.878Z",
    "type" : "rccommand",
    "event" : "error",
    "data" : {
        "id" : "86082680-b3c1-7e704c999d67",
        "command" : "connect",
        "params" : {
            "profile" : "https://www.linkedin.com/in/janjanjanjanjan/",
            "campaignid" : "playbook",
            "messagetext" : "Hi _FN_,\n\nLet's connect."
        },
        "error" : "selector '*[type=connect-icon],.pvs-profile-actions__action.artdeco-button--primary[0] not found within timeout."
    }
}

[1] Webhooks are available in Dux-Soup Turbo or Cloud Editions.