Getting Started

This is an introduction to our Grabber Webhook API. With the Grabber Webhook API you can connect CRM systems for which we do not yet have a special integration to snapADDY. This can be a practical solution for custom or inhouse CRM systems. With our API you can transfer grabbed data to your CRM system.

For working with this API it is assumed that all received and sent data represents valid JSON strings. Please make sure that the corresponding HTTP headers Content-Type and Accept are set accordingly.

Assuming you have already set up a working URI, you simply tell snapADDY Grabber where to send the contact data. This is done by setting your URI in the settings as shown below. This is done in the Grabber.

img

Alternatively, you can globally set your snapADDY API settings in your organization settings. This has the advantage that all your Grabber instances are automatically configured. Additionally, it allows you to specify further webhook settings, such as an authorization header in case your endpoint is secured. The string value you configure is passed as a Authorization: <value> HTTP header.

The picture below shows the global snapADDY API settings.

img

When an address has been grabbed while the API is activated, a JSON object containing the grabbed data will be sent as a POST request to a given URL. You need to implement the HTTP interface in your own system in order to further process the data.

Below you can see an example of POST data that are sent via the API:

{
  "city": "Würzburg",
  "country": "Deutschland",
  "email": "info@snapaddy.com",
  "fax": "+4993146621219",
  "firstName": "Jochen",
  "gender": 0,
  "image": "https://media.licdn.com/mpr/mpr/shrinknp_400_400/AAEAAQAAAAAAAAOGAAAAJGYwZDA3ZDMyLTMwZTEtNGM0NC1iODMzLWQ5M2RiMzk3YjdlNA.jpg",
  "lastName": "Seelig",
  "mobile": "+4961966525375",
  "organization": "snapADDY GmbH",
  "phone": "+4993146621201",
  "position": "Geschäftsführer",
  "xing": "https://www.xing.com/profile/Sebastian_Metzger11",
  "linkedin": "https://www.linkedin.com/in/sebastian-metzger-a8b58634/",
  "state": "",
  "street": "Juliuspromenade 3",
  "title": "",
  "website": "https://snapaddy.com",
  "zip": "97070",
  "vat": "DE815576732",
  "created": "2017-03-17T09:32:13.673Z",
  "createdBy": "s.metzger@snapaddy.com",
  "createdTimestamp": 1489743133673,
  "bcImage": "https://api.snapaddy.com/images/21a80dc2b0811a10bb2445dadce5ec5d2485ae49d01892dc723180fb86ff1ed3d6699d4efdf3dad9.jpg",
  "bcImageBackside": "https://api.snapaddy.com/images/21a80dc2b0811a10bb2445dadce5ec5d2485ae49d01892dc723180fb86ff1ed3d6699d4efdf3dad9.jpg"
}

Most properties should be self-explanatory. However, here are some more details:

  • the property gender can have different values:
    • -1 (unknown)
    • 0 (male)
    • 1 (female)
  • the abbreviations in the properties country and state follow the ISO-3166 standard
  • image properties (image, bcImage and bcImageBackside) can also be base64 data URLs

Handling Exports

After your web handler has received some exported data, you can also respond to the snapADDY Grabber's request. In case of success, you can return with HTTP status code 200 and a callback URI, which will be opened by the grabber instance that made the original request. This can be done by replying with the following data.

{
  "callbackUrl": "http://example.com"
}

You can also respond with an error and a corresponding HTTP error code to signal the snapADDY Grabber instance that some error occurred or the sent data is not processable. For example, providing the HTTP status code 400 and the following response body let's you provide a custom error message. This error message will then be shown in the respective snapADDY Grabber instance.

{
  "message": "My custom error message"
}

Further Help

In case you need more information, please contact our support team.