SlideShare a Scribd company logo
Fast Integrations for Fun and Profit
Marsh Gardiner and Carlos Eberhardt
Trouble-makers
1
AKA: I Love Webhooks 2015
2
Agenda
1. Brief intro to webhooks
2. Webhook requests deconstructed
3. Webhook registration patterns
4. Developer Experience extra-credit
5. Demo
3©2015 Apigee. All Rights Reserved.
Show of Hands
A quick poll…
4©2015 Apigee. All Rights Reserved.
Brief Intro to Webhooks
5©2015 Apigee. All Rights Reserved.
The Evented Web
6©2015 Apigee. All Rights Reserved.
Three Flavors of Webhooks
1.Callout
2.Callout + Response
3.Plugins (alter app behavior)
7©2015 Apigee. All Rights Reserved.
According to @progrium
Flavor 1: Callout Examples (Notification)
8©2015 Apigee. All Rights Reserved.
New
account
created
Warning:
billing
failure!
Customer A
Customer B
Provider
Flavor 2: Callout + Response Examples
9©2015 Apigee. All Rights Reserved.
Customer A
Customer B
Is this a
valid
token?
Yes!
Carry on.
"droW"
/reverse Word
Provider
Flavor 3: Plug-in
10©2015 Apigee. All Rights Reserved.
Webhooks…
12©2015 Apigee. All Rights Reserved.
… because sometimes polling sucks!
Potential Webhook Alternatives
• WebSockets
• Queuing systems
• PubSub
13©2015 Apigee. All Rights Reserved.
Do You Have Events in Your System?
14
A Plain Old REST API (PORA) is not enough!
… Webhooks could be for you!
Webhook Requests Deconstructed
15©2015 Apigee. All Rights Reserved.
Anatomy of a Webhook EVENT
1. URL (and the usual HTTP suspects)
2. Event ID
3. Token
4. Payload
5. Response
16©2015 Apigee. All Rights Reserved.
Secret: It’s basically just a POST
You already know how to do this.
So does everyone else!
Just hook it up to an event emitter.
17©2015 Apigee. All Rights Reserved.
Payload and Response
18©2015 Apigee. All Rights Reserved.
Extra credit: GET flexibility
19©2015 Apigee. All Rights Reserved.
Webhook Registration Patterns
20©2015 Apigee. All Rights Reserved.
Anatomy of Webhook REGISTRATION
1. Listener URL*
2. Name and description
3. Event filter
4. Token
21©2015 Apigee. All Rights Reserved.
URL and Name/Description
22©2015 Apigee. All Rights Reserved.
Event Filter
23©2015 Apigee. All Rights Reserved.
Token!
24©2015 Apigee. All Rights Reserved.
Extra credit: Security
25©2015 Apigee. All Rights Reserved.
Example: Create/Manage Webhook via API
26©2015 Apigee. All Rights Reserved.
… careful, this might require a scope!
27©2015 Apigee. All Rights Reserved.
Developer Experience Extra-Mile
28©2015 Apigee. All Rights Reserved.
Extra-Credit: Ping Endpoint
29©2015 Apigee. All Rights Reserved.
Extra-Credit: A Simulator
30©2015 Apigee. All Rights Reserved.
Extra-Credit: Awesome On-Boarding
31
Show Me the Code!
32
GitHub Project
DEMO TIME!
Thank you
Carlos Eberhardt
@carloseberhardt
Marsh Gardiner
@earth2marsh

More Related Content

PDF
APIdays Paris 2019 - What Makes an API Product Successful? by Anthony Roux, A...
PDF
Tips To Rock At Hackathons
PPTX
Queue System and Zend\Queue implementation
PPTX
Optimize Search Results
PDF
How To Use IFTTT
PPT
Rs Sdone
PDF
Postman covid-webinar
PDF
TuleapCon2017-Bugzilla-integration
APIdays Paris 2019 - What Makes an API Product Successful? by Anthony Roux, A...
Tips To Rock At Hackathons
Queue System and Zend\Queue implementation
Optimize Search Results
How To Use IFTTT
Rs Sdone
Postman covid-webinar
TuleapCon2017-Bugzilla-integration

What's hot (13)

PDF
TuleapCon2017-CaseStudy_Sleepinnov_Medical_Devices
PDF
State of the API: Insights Into the Future of APIs
PDF
TuleapCon2017-Mattermost-integration
PDF
TuleapCon2017-Case-Study-Orange
PDF
TuleapCon2017-Pack-Stackstorm-Github-issues
PPTX
Different types of window film
PPTX
The Ever Changing Google: Gaining a Maximum Attention for Your SERP Listings
PDF
EclipseCon France-2017-Tuleap-new-big-features
PDF
Enterprise E-Commerce Webinar #3: Bringing Your API to Market
PPT
Google Website Optimizer API integration with Motivity
PPTX
Webinar: Postman 101 for Developers
PDF
Postman Webinar: "API Governance with Postman"
PDF
SalesBites 1 of 4
TuleapCon2017-CaseStudy_Sleepinnov_Medical_Devices
State of the API: Insights Into the Future of APIs
TuleapCon2017-Mattermost-integration
TuleapCon2017-Case-Study-Orange
TuleapCon2017-Pack-Stackstorm-Github-issues
Different types of window film
The Ever Changing Google: Gaining a Maximum Attention for Your SERP Listings
EclipseCon France-2017-Tuleap-new-big-features
Enterprise E-Commerce Webinar #3: Bringing Your API to Market
Google Website Optimizer API integration with Motivity
Webinar: Postman 101 for Developers
Postman Webinar: "API Governance with Postman"
SalesBites 1 of 4
Ad

Similar to Fast integrations for Fun and Profit (20)

PPTX
Are Your Microservices Naked and Afraid?
PDF
apidays LIVE LONDON - Open API Economy: Managing Security and Compliance Risk...
PDF
Bringing API Management to AWS Powered Backends
PPTX
Devoxx - Bug Wars: Episode IV - A New Hope
PDF
PPTX
apidays Paris 2024 - Do not Live in the Shadow (APIs) - Teresa Pereira, Sieme...
PPTX
Unlocking Value From the Internet of Things (IoT) with APIs
PDF
I Love APIs 2015: Crash Course Foundational Topics in Apigee Edge Workshop
PDF
What Does API Monitoring Mean for Product Managers?
PPTX
2022 APIsecure_Making webhook APIs secure for enterprise
PDF
Chat-Ops : PHP Berkshire
PDF
Is Microservices SOA Done Right?
PDF
FOSDEM 2024 - Deploy Fast, Without Breaking Things: Level Up APIOps With Open...
PDF
Webcast: Deep-Dive Apigee Edge Microgateway
PDF
API-first, going beyond SOA, ESB & Integration
PDF
apidays Munich 2025 - The Double Life of the API Product Manager, Emmanuel Pa...
PPTX
Making Hacker’s Life Easier at Hackathons (3scale at Barcelona MusicHackDays)
PPTX
Design-first API Development using Swagger and Node
PDF
Hands-On Lab: Using CA Mobile Application Analytics REST APIs
PDF
Talk to me Goose: Going beyond your regular Chatbot
Are Your Microservices Naked and Afraid?
apidays LIVE LONDON - Open API Economy: Managing Security and Compliance Risk...
Bringing API Management to AWS Powered Backends
Devoxx - Bug Wars: Episode IV - A New Hope
apidays Paris 2024 - Do not Live in the Shadow (APIs) - Teresa Pereira, Sieme...
Unlocking Value From the Internet of Things (IoT) with APIs
I Love APIs 2015: Crash Course Foundational Topics in Apigee Edge Workshop
What Does API Monitoring Mean for Product Managers?
2022 APIsecure_Making webhook APIs secure for enterprise
Chat-Ops : PHP Berkshire
Is Microservices SOA Done Right?
FOSDEM 2024 - Deploy Fast, Without Breaking Things: Level Up APIOps With Open...
Webcast: Deep-Dive Apigee Edge Microgateway
API-first, going beyond SOA, ESB & Integration
apidays Munich 2025 - The Double Life of the API Product Manager, Emmanuel Pa...
Making Hacker’s Life Easier at Hackathons (3scale at Barcelona MusicHackDays)
Design-first API Development using Swagger and Node
Hands-On Lab: Using CA Mobile Application Analytics REST APIs
Talk to me Goose: Going beyond your regular Chatbot
Ad

Recently uploaded (20)

PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
A novel scalable deep ensemble learning framework for big data classification...
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
A comparative study of natural language inference in Swahili using monolingua...
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PPTX
A Presentation on Touch Screen Technology
PPTX
TLE Review Electricity (Electricity).pptx
PPTX
Tartificialntelligence_presentation.pptx
PDF
WOOl fibre morphology and structure.pdf for textiles
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Encapsulation theory and applications.pdf
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Web App vs Mobile App What Should You Build First.pdf
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
Programs and apps: productivity, graphics, security and other tools
A novel scalable deep ensemble learning framework for big data classification...
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
gpt5_lecture_notes_comprehensive_20250812015547.pdf
A comparative study of natural language inference in Swahili using monolingua...
Group 1 Presentation -Planning and Decision Making .pptx
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
A Presentation on Touch Screen Technology
TLE Review Electricity (Electricity).pptx
Tartificialntelligence_presentation.pptx
WOOl fibre morphology and structure.pdf for textiles
Chapter 5: Probability Theory and Statistics
Encapsulation theory and applications.pdf
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Web App vs Mobile App What Should You Build First.pdf
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Heart disease approach using modified random forest and particle swarm optimi...
Univ-Connecticut-ChatGPT-Presentaion.pdf
Unlocking AI with Model Context Protocol (MCP)

Fast integrations for Fun and Profit

Editor's Notes

  • #2: Marsh on Product team. I started working on Apigee 6 years ago this week! Carlos on the SE team. We’re the kind of folks who tend to cause trouble (usually the good kind!)
  • #3: If you’re here today, we’re going to assume that you already love APIs. Over the next 40 minutes, we’re going to talk a lot about webhooks, … and our goal is that if you don’t already, you’ll love webooks by the end of this talk.
  • #4: Everyone here understands the power of APIs. Once you get API religion, you can't stop thinking about how your business should work as a REST API. But too often we think about these APIs from the Pull perspective. While a Pull API is table stakes, sometimes it's the wrong way to think about things (everything looks like a nail). Sometimes a PORA (Plain Old REST API) is not enough. With such a wide range of tools in the world today, it is impossible to accommodate all the ways in which people need data to move. You cannot predict every possible connection. Every new tool adds to the problem. People expect to access data in more places every day. “We have REST APIs!” the tools shout. But is it enough? What makes two APIs talk to each other? (sotto voce: glue code) The workload isn’t going down… in fact it’s going up. We're in the middle of connecting SoR to SoE. SoE is built on engagement. We know that integrations are sticky. Make your service more useful with push! If you expect your customers to come to you, you're dead. You need to be where they are or they will go to someone else. By enabling developers to hook into events, you enable a special kind of integration, an especially sticky one that makes your product more useful with another, which increases retention and drives revenue.
  • #5: How many of you have a REST API today? (keep your hands up…) How many of your APIs have Webhooks live in production today? How many of you have written an of integration that leveraged a Webhook? … was it Slack? (note the joke that we’re polling about webhooks!!!)
  • #7: Jeff Lindsay coined the term around 2007. He asked, “What is the equivalent of the pipe in the age of the web?” “The Unix pipe is simple because it's about linear input and output of text streams. The web is very different […] web hooks achieve the same simplicity but more appropriately for the web.” They’ve been around for EIGHT YEARS and we’re still struggling with how to really use them. (yrs is still better than REST) Also, very important, no capitals unless it starts a sentence or is title cased!
  • #8: https://groups.google.com/forum/#!topic/webhooks/4Wck6B8hsLw Effectively async Basically synchronous, though could be nested in an async client This is like webhook tennis: the original event triggers some logic that calls back into the system, effectively async
  • #9: This is really a notification use-case. Because there is no response, it’s really an event-based asynchronous notification. We’ll touch on this later with Slack, in which this is an outbound webhook, based on trigger word matches. It doesn’t expect anything back.
  • #10: This is very much like a regular API in that there is a call and response that the
  • #11: https://www.twilio.com/platform/webhooks Start recording the call. This is very much like #2, only non-blocking. This is “Webhook Tennis!”
  • #12: https://creativecommons.org/licenses/by/2.0/ from Kyle May: https://www.flickr.com/photos/kylemay/2085998790
  • #13: Cron jobs, cron orphans Parsing, Caching… Also, you can buy this sign here: http://www.safetysign.com/products/p7645/dont-call-us-well-call-you-sign
  • #14: If the events are a constant stream, and HTTP overhead is too much, or it would be better to just be bidirectional Queuing can be an intermediate step, essentially batching events to make the system more efficient. Moving log events is a good example. This is still polling though… PubSub: good if you’d rather have an external system deal with
  • #17: It’s gotta get there somehow… Useful for idempotence, but it’s up to the receiver to do anything with it For verifying the source of the request, but it’s up to the receiver to do anything with it. Information about the event itself Nothing after #1 is required, required, even this What the receiver sends back to the server
  • #19: Really nice documentation. Gives a POST form-data example, very common. Decent info on the response as well.
  • #20: There may not be any server-side state change from the webhook. In that case, why not let developers decide what’s right for them? Why Slack integrations are awesome: Available to all users by default No application or registration required Everyone can see what integrations are enabled Built in token mechanism including regeneration /slash as well as triggers
  • #22: A GitHub Post-receive hook is very much like #1 without the rest of this.
  • #24: Apologies, it’s hard to read because there are A LOT of options—they don’t even fit on this page. It’s probably time for a refactoring! Note: this is a good example of a #1 pattern Slack or HipChat integration. Jira just alerts about new issues and expects no response.
  • #25: This enables devs to deal with security at their own pace. Note, you cannot enforce what devs do here. Consider sample applications.
  • #27: https://www.bugherd.com/api_v2#api_webhook_list BugHerd, GitHub, and Trello all work this way https://developer.github.com/v3/orgs/hooks/
  • #28: See: https://developer.github.com/v3/oauth/#scopes
  • #31: https://developer.paypal.com/developer/webhooksSimulator/
  • #33: FOLLOW ALONG HERE: https://github.com/iloveapis2015/swagger-node-slack