curl --request PUT \
--url https://production-api.joinrings.com/v1/intros/{intro_uuid} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"details": "<string>",
"intro_date": "<string>",
"introduced": [
{
"entity_uuid": "<string>"
}
],
"introduced_to": [
{
"entity_uuid": "<string>"
}
],
"introducer": {
"entity_uuid": "<string>"
},
"outcome": "<string>",
"source_type": "<string>"
}
'import requests
url = "https://production-api.joinrings.com/v1/intros/{intro_uuid}"
payload = {
"details": "<string>",
"intro_date": "<string>",
"introduced": [{ "entity_uuid": "<string>" }],
"introduced_to": [{ "entity_uuid": "<string>" }],
"introducer": { "entity_uuid": "<string>" },
"outcome": "<string>",
"source_type": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
details: '<string>',
intro_date: '<string>',
introduced: [{entity_uuid: '<string>'}],
introduced_to: [{entity_uuid: '<string>'}],
introducer: {entity_uuid: '<string>'},
outcome: '<string>',
source_type: '<string>'
})
};
fetch('https://production-api.joinrings.com/v1/intros/{intro_uuid}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://production-api.joinrings.com/v1/intros/{intro_uuid}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'details' => '<string>',
'intro_date' => '<string>',
'introduced' => [
[
'entity_uuid' => '<string>'
]
],
'introduced_to' => [
[
'entity_uuid' => '<string>'
]
],
'introducer' => [
'entity_uuid' => '<string>'
],
'outcome' => '<string>',
'source_type' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://production-api.joinrings.com/v1/intros/{intro_uuid}"
payload := strings.NewReader("{\n \"details\": \"<string>\",\n \"intro_date\": \"<string>\",\n \"introduced\": [\n {\n \"entity_uuid\": \"<string>\"\n }\n ],\n \"introduced_to\": [\n {\n \"entity_uuid\": \"<string>\"\n }\n ],\n \"introducer\": {\n \"entity_uuid\": \"<string>\"\n },\n \"outcome\": \"<string>\",\n \"source_type\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://production-api.joinrings.com/v1/intros/{intro_uuid}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"details\": \"<string>\",\n \"intro_date\": \"<string>\",\n \"introduced\": [\n {\n \"entity_uuid\": \"<string>\"\n }\n ],\n \"introduced_to\": [\n {\n \"entity_uuid\": \"<string>\"\n }\n ],\n \"introducer\": {\n \"entity_uuid\": \"<string>\"\n },\n \"outcome\": \"<string>\",\n \"source_type\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://production-api.joinrings.com/v1/intros/{intro_uuid}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"details\": \"<string>\",\n \"intro_date\": \"<string>\",\n \"introduced\": [\n {\n \"entity_uuid\": \"<string>\"\n }\n ],\n \"introduced_to\": [\n {\n \"entity_uuid\": \"<string>\"\n }\n ],\n \"introducer\": {\n \"entity_uuid\": \"<string>\"\n },\n \"outcome\": \"<string>\",\n \"source_type\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"confidence": 123,
"created_at": "<string>",
"created_by_user_uuid": "<string>",
"details": "<string>",
"details_hidden": true,
"direction": "INBOUND",
"intro_date": "<string>",
"introduced": [
{
"entity_type": "PERSON",
"entity_uuid": "<string>",
"name": "<string>"
}
],
"introduced_to": [
{
"entity_type": "PERSON",
"entity_uuid": "<string>",
"name": "<string>"
}
],
"introducer": {
"entity_type": "PERSON",
"entity_uuid": "<string>",
"name": "<string>"
},
"outcome": {
"label": "<string>",
"uuid": "<string>"
},
"source": "MANUAL",
"source_email_activity_object_id": "<string>",
"source_type": {
"group": "<string>",
"label": "<string>",
"uuid": "<string>"
},
"updated_at": "<string>",
"uuid": "<string>"
}Update intro
Common use: record what came of it, e.g. {"outcome": "Meeting held"}.
Sending introducer, introduced or introduced_to replaces the parties
in that role only. outcome: null sets the intro back to pending. Intros
found in an email you can’t access return 404.
curl --request PUT \
--url https://production-api.joinrings.com/v1/intros/{intro_uuid} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"details": "<string>",
"intro_date": "<string>",
"introduced": [
{
"entity_uuid": "<string>"
}
],
"introduced_to": [
{
"entity_uuid": "<string>"
}
],
"introducer": {
"entity_uuid": "<string>"
},
"outcome": "<string>",
"source_type": "<string>"
}
'import requests
url = "https://production-api.joinrings.com/v1/intros/{intro_uuid}"
payload = {
"details": "<string>",
"intro_date": "<string>",
"introduced": [{ "entity_uuid": "<string>" }],
"introduced_to": [{ "entity_uuid": "<string>" }],
"introducer": { "entity_uuid": "<string>" },
"outcome": "<string>",
"source_type": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
details: '<string>',
intro_date: '<string>',
introduced: [{entity_uuid: '<string>'}],
introduced_to: [{entity_uuid: '<string>'}],
introducer: {entity_uuid: '<string>'},
outcome: '<string>',
source_type: '<string>'
})
};
fetch('https://production-api.joinrings.com/v1/intros/{intro_uuid}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://production-api.joinrings.com/v1/intros/{intro_uuid}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'details' => '<string>',
'intro_date' => '<string>',
'introduced' => [
[
'entity_uuid' => '<string>'
]
],
'introduced_to' => [
[
'entity_uuid' => '<string>'
]
],
'introducer' => [
'entity_uuid' => '<string>'
],
'outcome' => '<string>',
'source_type' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://production-api.joinrings.com/v1/intros/{intro_uuid}"
payload := strings.NewReader("{\n \"details\": \"<string>\",\n \"intro_date\": \"<string>\",\n \"introduced\": [\n {\n \"entity_uuid\": \"<string>\"\n }\n ],\n \"introduced_to\": [\n {\n \"entity_uuid\": \"<string>\"\n }\n ],\n \"introducer\": {\n \"entity_uuid\": \"<string>\"\n },\n \"outcome\": \"<string>\",\n \"source_type\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://production-api.joinrings.com/v1/intros/{intro_uuid}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"details\": \"<string>\",\n \"intro_date\": \"<string>\",\n \"introduced\": [\n {\n \"entity_uuid\": \"<string>\"\n }\n ],\n \"introduced_to\": [\n {\n \"entity_uuid\": \"<string>\"\n }\n ],\n \"introducer\": {\n \"entity_uuid\": \"<string>\"\n },\n \"outcome\": \"<string>\",\n \"source_type\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://production-api.joinrings.com/v1/intros/{intro_uuid}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"details\": \"<string>\",\n \"intro_date\": \"<string>\",\n \"introduced\": [\n {\n \"entity_uuid\": \"<string>\"\n }\n ],\n \"introduced_to\": [\n {\n \"entity_uuid\": \"<string>\"\n }\n ],\n \"introducer\": {\n \"entity_uuid\": \"<string>\"\n },\n \"outcome\": \"<string>\",\n \"source_type\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"confidence": 123,
"created_at": "<string>",
"created_by_user_uuid": "<string>",
"details": "<string>",
"details_hidden": true,
"direction": "INBOUND",
"intro_date": "<string>",
"introduced": [
{
"entity_type": "PERSON",
"entity_uuid": "<string>",
"name": "<string>"
}
],
"introduced_to": [
{
"entity_type": "PERSON",
"entity_uuid": "<string>",
"name": "<string>"
}
],
"introducer": {
"entity_type": "PERSON",
"entity_uuid": "<string>",
"name": "<string>"
},
"outcome": {
"label": "<string>",
"uuid": "<string>"
},
"source": "MANUAL",
"source_email_activity_object_id": "<string>",
"source_type": {
"group": "<string>",
"label": "<string>",
"uuid": "<string>"
},
"updated_at": "<string>",
"uuid": "<string>"
}Authorizations
Path Parameters
Body
Free-text background. null clears it.
INBOUND: someone outside the firm introduced something to the firm. OUTBOUND: someone at the firm introduced something to someone outside.
INBOUND, OUTBOUND Date the intro happened, YYYY-MM-DD.
Replaces what was introduced (1-5 parties).
Show child attributes
Show child attributes
Replaces who received the intro (1-5 parties).
Show child attributes
Show child attributes
Replaces the introducer.
Show child attributes
Show child attributes
Outcome of the intro, as a label (case-insensitive, e.g. Meeting held) or an outcome UUID. Valid values come from GET /v1/intros/options. null sets it back to pending.
How the intro came about, as a label (e.g. Warm intro), Group / Label when a label repeats across groups, or a source type UUID. Valid values come from GET /v1/intros/options. null clears it.
Response
One logged intro.
Free-text background. null when details_hidden is true: the intro was found in an email you don't have access to.
INBOUND, OUTBOUND Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
null while the outcome is pending.
Show child attributes
Show child attributes
MANUAL, EMAIL_EXTRACTION, MIGRATED For intros found in email you can access: pass to /v1/activities/{activity_object_id}/body to read the email.
Show child attributes
Show child attributes