curl --request GET \
--url https://api.doozy.live/v1/introductions/report \
--header 'x-api-key: <api-key>'import requests
url = "https://api.doozy.live/v1/introductions/report"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.doozy.live/v1/introductions/report', 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://api.doozy.live/v1/introductions/report",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.doozy.live/v1/introductions/report"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.doozy.live/v1/introductions/report")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.doozy.live/v1/introductions/report")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"object": "track_introduction_report",
"track_id": "wf_abc123",
"step_id": "step_xyz789",
"summary": {
"total_instances": 10,
"total_matches": 50,
"total_participants": 100,
"meeting_scheduled_count": 35,
"meeting_scheduled_rate": 70,
"calendar_connected_count": 40,
"calendar_connected_rate": 80,
"said_met_count": 25,
"said_met_rate": 50
},
"matches": [
{
"object": "introduction_match",
"id": "match_abc123",
"introduction_id": "intro_abc123",
"instance_id": "inst_abc123",
"participants": [
{
"user_id": "user_abc123",
"slack_user_id": "U1234567890",
"display_name": "John Doe",
"email": "john@example.com",
"department": "Engineering",
"location": "San Francisco, CA",
"manager_name": "Jane Smith",
"manager_email": "jane@example.com"
}
],
"matched_at": "2024-02-01T09:00:00.000Z",
"has_scheduled_event": true,
"scheduled_event_at": "2024-02-01T10:00:00.000Z",
"has_linked_calendar": true,
"has_said_met": false,
"said_met_at": null,
"reminder_sent": true,
"nominated_organiser": {
"user_id": "<string>",
"slack_user_id": "<string>"
},
"feedback": {
"survey_id": "<string>",
"instance_id": "<string>",
"response_count": 123,
"recipient_count": 123,
"status": "scheduled",
"scheduled_at": "<string>",
"delivered_at": "<string>",
"anonymous": true,
"responses": [
{
"id": "<string>",
"respondent": {
"user_id": "user_abc123",
"slack_user_id": "U1234567890",
"display_name": "John Doe",
"email": "john@example.com",
"department": "Engineering",
"location": "San Francisco, CA",
"manager_name": "Jane Smith",
"manager_email": "jane@example.com"
},
"feedback_about": [
{
"user_id": "user_abc123",
"slack_user_id": "U1234567890",
"display_name": "John Doe",
"email": "john@example.com",
"department": "Engineering",
"location": "San Francisco, CA",
"manager_name": "Jane Smith",
"manager_email": "jane@example.com"
}
],
"responded_at": "<string>",
"answers": [
{
"question_id": "<string>",
"question_text": "<string>",
"question_type": "scale_1_to_10",
"value": "<string>",
"comment": "<string>"
}
]
}
]
}
}
],
"has_more": true,
"url": "/v1/introductions/report?track_id=wf_abc123",
"next_cursor": "match_xyz789",
"previous_cursor": "match_abc123"
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: quiz_abc123",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: quiz_abc123",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: quiz_abc123",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}Get track introductions report
Generate an aggregated report for all introduction matches within a specific track (and optionally step). Includes summary statistics (total instances, matches, participants, meeting rates) and a paginated match list.
curl --request GET \
--url https://api.doozy.live/v1/introductions/report \
--header 'x-api-key: <api-key>'import requests
url = "https://api.doozy.live/v1/introductions/report"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.doozy.live/v1/introductions/report', 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://api.doozy.live/v1/introductions/report",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.doozy.live/v1/introductions/report"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.doozy.live/v1/introductions/report")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.doozy.live/v1/introductions/report")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"object": "track_introduction_report",
"track_id": "wf_abc123",
"step_id": "step_xyz789",
"summary": {
"total_instances": 10,
"total_matches": 50,
"total_participants": 100,
"meeting_scheduled_count": 35,
"meeting_scheduled_rate": 70,
"calendar_connected_count": 40,
"calendar_connected_rate": 80,
"said_met_count": 25,
"said_met_rate": 50
},
"matches": [
{
"object": "introduction_match",
"id": "match_abc123",
"introduction_id": "intro_abc123",
"instance_id": "inst_abc123",
"participants": [
{
"user_id": "user_abc123",
"slack_user_id": "U1234567890",
"display_name": "John Doe",
"email": "john@example.com",
"department": "Engineering",
"location": "San Francisco, CA",
"manager_name": "Jane Smith",
"manager_email": "jane@example.com"
}
],
"matched_at": "2024-02-01T09:00:00.000Z",
"has_scheduled_event": true,
"scheduled_event_at": "2024-02-01T10:00:00.000Z",
"has_linked_calendar": true,
"has_said_met": false,
"said_met_at": null,
"reminder_sent": true,
"nominated_organiser": {
"user_id": "<string>",
"slack_user_id": "<string>"
},
"feedback": {
"survey_id": "<string>",
"instance_id": "<string>",
"response_count": 123,
"recipient_count": 123,
"status": "scheduled",
"scheduled_at": "<string>",
"delivered_at": "<string>",
"anonymous": true,
"responses": [
{
"id": "<string>",
"respondent": {
"user_id": "user_abc123",
"slack_user_id": "U1234567890",
"display_name": "John Doe",
"email": "john@example.com",
"department": "Engineering",
"location": "San Francisco, CA",
"manager_name": "Jane Smith",
"manager_email": "jane@example.com"
},
"feedback_about": [
{
"user_id": "user_abc123",
"slack_user_id": "U1234567890",
"display_name": "John Doe",
"email": "john@example.com",
"department": "Engineering",
"location": "San Francisco, CA",
"manager_name": "Jane Smith",
"manager_email": "jane@example.com"
}
],
"responded_at": "<string>",
"answers": [
{
"question_id": "<string>",
"question_text": "<string>",
"question_type": "scale_1_to_10",
"value": "<string>",
"comment": "<string>"
}
]
}
]
}
}
],
"has_more": true,
"url": "/v1/introductions/report?track_id=wf_abc123",
"next_cursor": "match_xyz789",
"previous_cursor": "match_abc123"
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: quiz_abc123",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: quiz_abc123",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: quiz_abc123",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}Authorizations
API key for authentication. Generate keys in the Doozy dashboard.
Query Parameters
Filter to introductions from a specific track (workflow). Required.
"wf_abc123"
Filter to introductions from a specific step within the track. If not provided, includes all introduction steps.
"step_xyz789"
Maximum number of matches to return (default: 25, max: 100)
1 <= x <= 10025
Cursor for pagination
256"match_abc123"
Cursor for pagination (backward)
256"match_xyz789"
Filter matches from this date (ISO 8601)
"2024-01-01T00:00:00.000Z"
Filter matches until this date (ISO 8601)
"2024-12-31T23:59:59.999Z"
Response
Aggregated introduction report for the track
Object type identifier
track_introduction_report "track_introduction_report"
Track ID that was filtered
"wf_abc123"
Step ID that was filtered (null if all steps)
"step_xyz789"
Aggregated report summary metrics
Show child attributes
Show child attributes
Paginated matches with participant details
Show child attributes
Show child attributes
Whether there are more matches available beyond this page
true
The URL for accessing this report
"/v1/introductions/report?track_id=wf_abc123"
Cursor to fetch the next page of matches. Pass as starting_after in subsequent requests.
"match_xyz789"
Cursor to fetch the previous page of matches. Pass as ending_before in subsequent requests.
"match_abc123"
Was this page helpful?