Overview
Showpad offers multiple ways to share content, including plugins for Gmail and Outlook. A CRM connector extends these capabilities by letting users search CRM contacts, log sharing activity, and receive content recommendations - all without leaving Showpad.
- Out-of-the-box CRM? Use pre-built integrations for Salesforce, MS Dynamics, or SAP Sales Cloud
- Custom CRM? Build a middleware that implements Showpad's webhook endpoints
- How it works? Showpad sends HTTP requests to your endpoints; you return JSON responses
When to use a custom CRM connector
| Contact Search | Activity Logging | Content Recommendations | Business Object Linking |
|---|---|---|---|
| Let users search CRM contacts when sharing content. | Log shares and views back to CRM as activities. | Surface relevant content based on CRM context. | Associate shares with opportunities, accounts, or custom objects. |
- Plan: Contact Showpad to enable custom CRM connectors
- Permissions: Administrator access to Showpad's Admin App
- Technical: Ability to host and maintain a middleware service
What you'll learn
- How Showpad communicates with custom CRM connectors via HTTP
- The webhook endpoints your middleware must implement
- Authentication and security requirements
- How to configure your connector in the Admin App
How it works
Showpad connects to your CRM through a middleware layer that you build and host. When a user performs an action in Showpad (like searching for a contact), Showpad sends an HTTP request to your middleware, which translates it into CRM API calls and returns the appropriate response.

Quick look
Here's what your middleware receives when a user searches for contacts, and how to handle it:
- cURL
- JavaScript
- Python
Request from Showpad
POST /v1/recipientsearch HTTP/1.1
Content-Type: application/json
x-showpad-signature-v1: FLauBV44UFC2oeY8AHcvGiUaL1Bx+FU5o+6ZM8KBdo0=
x-showpad-signature-timestamp: 1668017345
{
"showpadInfo": {
"subdomain": "myorg",
"username": "user@company.com",
"crmInstanceId": "dsflkj2349fddd9asdf"
},
"query": "john"
}
Your response
{
"count": 2,
"items": [
{ "type": "contact", "id": "003abc", "email": "john@acme.com", "name": "John Smith" },
{ "type": "lead", "id": "00Qxyz", "email": "john.doe@example.com", "name": "John Doe" }
]
}
Handle the request in Express
const express = require('express');
const crypto = require('crypto');
const app = express();
app.post('/v1/recipientsearch', express.json(), (req, res) => {
// Verify signature (see Fundamentals for full implementation)
const { showpadInfo, query } = req.body;
// Search your CRM for contacts matching the query
const results = searchCRM(query, showpadInfo.username);
res.json({
count: results.length,
items: results.map((r) => ({
type: r.type,
id: r.id,
email: r.email,
name: r.name,
})),
});
});
Handle the request in Flask
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/v1/recipientsearch', methods=['POST'])
def recipient_search():
# Verify signature (see Fundamentals for full implementation)
data = request.get_json()
showpad_info = data['showpadInfo']
query = data['query']
# Search your CRM for contacts matching the query
results = search_crm(query, showpad_info['username'])
return jsonify({
'count': len(results),
'items': [{'type': r.type, 'id': r.id, 'email': r.email, 'name': r.name} for r in results]
})
See the Endpoint Reference for all available endpoints and response schemas.
Build your middleware
Your middleware must implement two core components:
Webhook endpoints - Showpad calls these endpoints with JSON payloads when users interact with CRM features. See the Endpoint Reference for the complete specification.
Authentication - Validate incoming requests using the signature key configured in Showpad. See Authorization and Security for implementation details.
Pre-built integrations
For common CRM platforms, Showpad provides out-of-the-box integrations:
| Platform | Documentation |
|---|---|
| Salesforce | Download and install Showpad for Salesforce |
| MS Dynamics | Guide to integrating Showpad and MS Dynamics |
| SAP Sales Cloud | Enabling Showpad and SAP Sales Cloud integration |
Next steps
- Fundamentals - Understand authentication, payloads, and error handling
- Configuration - Set up your connector in the Admin App
- Endpoint Reference - Complete API specification
Was this page helpful?