NAV Navbar
Logo
shell ruby javascript

API Reference

Welcome to the Crystal Connect API! This API provides access to our Global Personality Database and our Personality Analysis Engine.

API Summary

Global Personality Database

Our global personality database combines public data sources and manually submitted information to build accurate personality profiles for millions of people. Through our APIs, you can utilize the database we’ve accumulated over the years to enrich your profile data with personality attributes and present your users with tips on how to best communicate with their peers, coworkers, customers, and anyone else they interact with.

Personality Analysis Engine

Our API also lets your applications directly use text analysis engine to generate personality profiles. We’ve trained our machine learning algorithms so that, when fed a text sample, the algorithms can instantly produce a personality profile of the author. This allows your application to determine personality traits even when personally identifiable information is not present.

Client SDKs

The easiest and most efficient way to access our API is to use one of our SDKs:

Get Access

Contact us to request an Organization Access Token to start utilizing the API:

Contact the Crystal Team

API Endpoints

Here’s a quick overview of our API endpoints:

Method Endpoint Usage
POST /v1/profiles Request a profile (recommended)
POST /v1/profiles/async Request a profile (async)
GET /v1/profiles/results/:request_id Retrieve status for an (async) profile request
GET /v1/relationships/:profile_one/:profile_two Request relationship between two request_ids
GET /v1/messaging/:sender/:recipient Gives suggestions when writing an email
GET /v1/email/:request_id Returns relevant email temples based on request_id

Authentication

In order to communicate with our API, you must send the following headers with every request:

Header Name Value
X-Org-Token The Organization Access Token provided to you by the Crystal Team.
curl -X "POST" "https://connect.crystalknows.com/v1/.../" \
     -H "X-Org-Token: $YOUR_ORG_TOKEN"
CrystalSDK.key = 'YOUR_ORG_TOKEN'
CrystalSDK.key = 'YOUR_ORG_TOKEN'

Profile

The Profile endpoint returns a personality profile based on the search criteria. For minimum required criteria, see below.

If you have an email, resume, bio, or another text sample written by the person you are searching for, you can include it in your request as a text_sample, along with a text_type, though it is not necessary.

We will use our Personality Analysis Engine to more accurately enrich the personality data returned from the endpoint. Sending a text sample will significantly increase match rates and accuracy.

Summary

Example Request

curl -X "POST" "https://connect.crystalknows.com/v1/profiles" \
     -H "X-Org-Token: $YOUR_ORG_TOKEN" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d $'{
  "first_name": "Drew",
  "last_name": "D\'Agostino",
  "email": "[email protected]",
  "company_name": "Crystal",
  "location": "Nashville, TN",
  "text_type": "various",
  "text_sample": "I, Drew, Founder of Crystal, think that..."
}'
begin
  profile = CrystalSDK::Profile.search({
    first_name: "Drew",
    last_name: "D'Agostino",
    email: "[email protected]",
    company_name: "Crystal",
    location: "Nashville, TN",
    text_sample: "I, Drew, the founder of Crystal, think that ...",
    text_type: "various"
  })

  print "Profile found!"
  print "First Name: #{profile.info.first_name}"
  print "Last Name: #{profile.info.last_name}"
  print "Predicted DISC Type: #{profile.info.disc_scores.type}"
  print "Prediction Confidence: #{profile.info.disc_scores.confidence}"
  print "DISC Image: #{profile.info.disc_image}"

  print "Personality Overview: #{profile.recommendations.overview}"
  print "Personality Qualities: #{profile.recommendations.qualities}"

  print "Likely motivations: #{profile.recommendations.motivations}"
  print "Likely behaviors: #{profile.recommendations.behavior}"

  print "Tips on emailing: #{profile.recommendations.emailing}"
  print "Tips on communication: #{profile.recommendations.communication}"
  print "Tips on building trust: #{profile.recommendations.building_trust}"
  print "Tips on selling: #{profile.recommendations.selling}"
  print "Tips on working together: #{profile.recommendations.working_together}"

rescue CrystalSDK::Profile::NotFoundError
  print "No profile was found"

rescue CrystalSDK::Profile::NotFoundYetError => e
  print "Profile search exceeded time limit: #{e.request.id}"

rescue CrystalSDK::Profile::RateLimitHitError
  print "The organization's API rate limit was hit"

rescue CrystalSDK::Profile::NotAuthedError => e
  print "Org token was invalid: #{e.token}"

rescue StandardError => e
  print "Unexpected error occurred: #{e}"

end
CrystalSDK.Profile.search({
  first_name: "Drew",
  last_name: "D'Agostino",
  email: "[email protected]",
  location: "Nashville, TN",
  company_name: "Crystal",
  text_sample: "I, Drew, the founder of Crystal, think that ...",
  text_type: "various"
})
  .then((profile) => {
    console.log("Profile found!")
    console.log("First Name:", profile.info.first_name)
    console.log("Last Name:", profile.info.last_name)
    console.log("Predicted DISC Type:", profile.info.disc_scores.type)
    console.log("Prediction Confidence:", profile.info.disc_scores.confidence)
    console.log("DISC Image:", profile.info.disc_image)

    console.log("Personality Overview:", profile.recommendations.overview)
    console.log("Personality Qualities:", profile.recommendations.qualities)

    console.log("Likely motivations:", profile.recommendations.motivations)
    console.log("Likely behaviors:", profile.recommendations.behavior)

    console.log("Tips on emailing:", profile.recommendations.emailing)
    console.log("Tips on communication:", profile.recommendations.communication)
    console.log("Tips on building trust:", profile.recommendations.building_trust)
    console.log("Tips on selling:", profile.recommendations.selling)
    console.log("Tips on working together:", profile.recommendations.working_together)

  })
  .catch(CrystalSDK.Profile.NotFoundYetError, (err) => {
    console.log("Profile was not found in time limit: ", err.request.id)

  })
  .catch(CrystalSDK.Profile.NotFoundError, (err) => {
    console.log("Profile was not found")

  })
  .catch(CrystalSDK.Profile.NotAuthedError, (err) => {
    console.log("The organization token is not valid:", err.token)

  })
  .catch((err) => {
    console.log("Unexpected Error:", err)

  })

Method: POST

Endpoint: /v1/profiles

Usage: Returns a personality profile based on the search criteria

Request Type: application/json

Response Type: application/json

Request Format

Example Request Data

{
  "first_name": "Michael",
  "last_name": "Scott",
  "email": "[email protected]",
  "company_name": "Dunder Mifflin",
  "location": "Scranton, PA",
  "text_sample": "Hey there, Jim! \nJust emailing to invite you and Pam to have dinner with Jan and I tonight!",
  "text_type": "email"
}

Example Request Data With Partial Content

{
  "first_name": "Michael",
  "last_name": "Scott",
  "email": "[email protected]",
  "company_name": "Dunder Mifflin"
}
Param Type Description
first_name string First name of the person
last_name string Last name of the person
email string Email address of the person
company_name string Name of the company where the person works
location string Location of person. Formatting is ideally
city, state,
such as Nashville, TN.
text_sample string A paragraph (or more) of text written by the person.
text_type string The origin of the text given in the text_sample. This can be one of:
["email", "various", "bio", "resume"]
  1. first_name and last_name

  2. email

  3. email and text_sample and text_type

Response Format

Example Response Data

{
  "info": {
    "first_name": "Drew",
    "last_name": "D'Agostino",
    "disc_scores": {
      "type": "Ids",
      "confidence": 90
    },
    "disc_image": "https:\/\/www.crystalknows.com\/images\/learn\/disc\/ids_full.png"
  },
  "recommendations": {
    "emailing": {
      "overview": "This person is a gifted communicator who prioritizes relationships, and providing them with a new idea and a time\/place to follow up to discuss verbally will probably result in a fast response.",
      "phrases": [
        "Write with short casual language and abbreviations",
        "Don't take yourself too seriously",
        "Use emotionally expressive language",
        "Appeal to their feelings to drive them to action",
        "Use an emoticon :)"
      ]
    },
    "motivations": {
      "overview": "This person is <b>outgoing<\/b>, <b>optimistic<\/b>, and will encourage their colleagues to work hard, play hard. They thrives in workplaces that encourage <b>creativity<\/b>.",
      "phrases": [
        "New relationships",
        "Peer recognition",
        "Fun & excitement",
        "Feeling accepted",
        "Ambitious goals"
      ]
    },
    "communication": {
      "overview": "This person will appreciate a break in <b>momentum<\/b> to joke around and tell stories while getting to know their colleagues on a more personal level.",
      "phrases": [
        "Emphasize the future",
        "Use self-deprecating humor (don't act like you take yourself too seriously)",
        "Leave a conversation open-ended",
        "Tell a few jokes",
        "Exaggerate about any facts (not even a little bit)"
      ]
    },
    "behavior": {
      "overview": "This person will easily <b>build rapport<\/b> with those surrounding them. <b>Friendly<\/b>, <b>optimistic<\/b> and <b>eager<\/b>, their enthusiasm is contagious.",
      "phrases": [
        "Make a quick purchase decision",
        "Immediately feel comfortable speaking to a new person",
        "Focus on deep & close relationships rather than high quantity",
        "Make a decision more quickly than most people",
        "Forget something important"
      ]
    },
    "building_trust": {
      "overview": "This person might get bored by monotony, structure, and formality. Has a preference for <b>brainstorming<\/b>, often thinks out loud, and will look for feedback from their peers.",
      "phrases": [
        "Introduce them to others in your network",
        "Smile and make eye contact frequently",
        "Remember and ask about their personal details",
        "Challenge them on occasion",
        "Share your feelings frequently"
      ]
    },
    "selling": {
      "overview": "This person is decisive, energized by ideas, and overlooks details, so stick to the big picture and get to your point quickly. ",
      "phrases": [
        "Focus on the future plans for your product",
        "Try to schedule a meeting with other coworkers",
        "Use hyperbole to make a point (\"This is the best product in the world!\")",
        "Tell a past customer story instead of listing features",
        "Tell a story about the company instead of listing facts"
      ]
    },
    "working_together": {
      "overview": "This person is creative, decisive, a bit disorganized, overlooks details, and enjoys working with people.",
      "phrases": [
        "Confront conflict in person rather than via email",
        "Recognize their achievements verbally",
        "Express criticism in person or on the phone",
        "Express criticism via email",
        "Use purely logical appeals if you argue"
      ]
    },
    "overview": "This person is a gifted communicator, prioritizes relationships, and sometimes makes decisions based solely on instinct.",
    "qualities": [
      "Enterprising",
      "Influential",
      "Assertive",
      "Daring",
      "Charming"
    ]
  }
}

Listed below are the properties of a successful search response:

Param Type Description
info string General information about the profile
- first_name string First name on the profile (not always present)
- last_name string Last name on the profile (not always present)
- disc_scores string Contains all of the information regarding the person’s DISC analysis.
- - type string The (text) DISC type of the person.
- - confidence string An integer between 0-100. How confident our algorithms are in the analysis.
- disc_image string A URL of an image that can be displayed to represent the DISC Type
recommendations string All of Crystal’s recommendations for interacting with this person
- overview string Short summary of the personality profile
- qualities array An array of one-word personality traits associated with the profile
- emailing object Contains an overview of how this person reads and interprets emails and provides tips for writing a good email to them.
- - overview string This section provides the information your users need to ensure communication sent via email is written to the preferences of the personality the user is reaching out to. Crystal provides advice for outreach via email to the 4 main DISC personality types and 12 subtypes in order to produce a better response rate. Crystal calls this the “Return on Empathy” and it is proven to develop rapport faster and increase the success of recruiters, sales team, and anyone whose job involves lots of email outreach in their daily work flow.
- - phrases array Your users will be provided with short, punchy information about the personality of the recipient of the email correspondence they are constructing. These phrases are easy to read and can be scanned quickly when used in real-time. Phrase advice can also be used when communication on the phone.
- communication object Contains an overview of how this person communicates and tips on how to best communicate with them.
- - overview string Diction and choice of words is important to improving communication between your users and the people they are interacting with daily. The speaking overviews provide the preferences for reaching out to- and further understanding with the 4 main personality types and 12 subtypes of the DISC personality framework.
- - phrases array The phrases that populate beneath the Communication overviews inform the preferences for communication with the person your user is looking up or interacting with. These short statements provide advice and coaching for better communication in an easy-to-read format.
- motivations object Contains an overview of what motivates this person and a quick breakdown of these motivations.
- - overview string Understanding what motivates the behavior of the 4 main DISC personality types and 12 subtypes informs our behavior and communication preferences. Crystal provides your users with an understanding of these qualities in order to inform all daily interactions with the people that surround them. Understanding what motivates a personality increases the interactions when giving instructions, feedback, praise, and during conflict.
- - phrases array The phrases provided within the Motivations section gives your users shorthand understanding of the primary motivations of the people they are corresponding with. These phrases are written for easy understanding, quick reading and can be very helpful during phone calls.
- behavior object Contains information about how this person behaves in a normal situation and tips on their comfort zone.
- - overview string Each of the 4 main DISC personality types and 12 subtypes embody distinct behaviors. Your users will learn about what behaviors are attributed to the personality they are looking up or interacting with in order to cater to their own behavior to that person’s behavioral preferences.
- - phrases array These short statements provide your users with easy-to-read bullet points that provide a good synopsis of the natural behaviors exhibited by the personality of the person who they are interacting with. These phrases are especially helpful with people you don’t know and during phone calls when there is less time to prepare your talking points.
- building_trust object Contains an overview of how this person builds trust and some tips in building trust.
- - overview string The ability to build trust is crucial to growing relationships and this section provide a user with the information they need in order to build rapport more quickly with each of the 4 main DISC personality types and 12 subtypes. The DISC personality framework is built on supporting each personality’s best qualities and learning how to build trust will inform the support necessary for a user to work to the best of their capabilities.
- - phrases array Building trust is considered one of the most challenging learned behaviors and therefore, Crystal has developed short phrases to help coach your users toward better understanding of the people they interact with. These phrases are provided in easy-to-read bullet points for in order to break down the best way to build trust in an easy-to-read format.
- selling object Contains an overview of how to sell to this personality type and some quick tips.
- - overview string Each of the 4 main DISC types and 12 subtypes have distinct behaviors and communication styles that make up their preferred methods when engaging in a sale. The information provided in this section is especially helpful for recruiters, account managers, executives, and members of a sales team.
- - phrases array The bullet points provided in the Selling phrases portion break down the preferred behaviors and give advice on how to start the sales cycle to the personality a user interacts with. The advice in this section also helps inform the interaction and follow-up behavior or correspondence.
- working_together object Contains an overview of the person’s workplace habits and short tips on how to communicate in the workplace.
- - overview string This section takes all of the information and advice provided by Crystal in order to develop an infrastructure for developing a trusting relationship between two different personalities. This information is applicable to anyone within an office and helps navigate conflict, rapport, communication and general daily interactions.
- - phrases array These short statements provide a brief, easy-to-read understanding of how the two personalities selected will interact and how to enhance the relationship between these two people.
id string The Profile Request ID from the API.

HTTP Status Codes

Listed below are the HTTP Status Codes that might be sent with a response:

Code Title Meaning
200 OK Not an error - just happy things!
202 Not Found Yet Not found before time limit (request_id in response)
404 Not Found No profile was found
401 Unauthorized Organization Token was invalid
429 Rate Limit Hit You’ve hit the rate limit for your plan
500 Unexpected Error An unexpected error occurred

Try It Out

Try what you’ve learned against the live API!

To better understand the inputs, read the request format section.

...

...

Profile (Async)

When requesting large lists of profiles, or when wanting to have more fine-grained control over performance, we recommend using our asynchronous flow.

This flow allows us to process your requests in parallel and get the information back to you more quickly.

Summary

Example Request

curl -X "POST" "https://connect.crystalknows.com/v1/profiles/async" \
     -H "X-Org-Token: $YOUR_ORG_TOKEN" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d $'{
  "first_name": "Cory",
  "last_name": "Finger",
  "email": "[email protected]",
  "company_name": "Crystal",
  "location": "Seattle",
  "text_sample": "Something",
  "text_type": "various"
}'
# Create the query
query = {
  first_name: "Drew",
  last_name: "D'Agostino",
  email: "[email protected]",
  company_name: "Crystal",
  location: "Nashville, TN",
  text_sample: "I, Drew, Founder of Crystal, think that ...",
  text_type: "various"
}

# Send the profile request to Crystal
profile_request = CrystalSDK::Profile::Request.from_search(query)

# You have access to the Request ID (if needed)
profile_request_id = profile_request.id
// Create the query
const query = {
  first_name: "Drew",
  last_name: "D'Agostino",
  email: "[email protected]",
  company_name: "Crystal",
  location: "Nashville, TN",
  text_sample: "I, Drew, Founder of Crystal, think that ...",
  text_type: "various"
}

// Send the profile request to Crystal
CrystalSDK.Profile.Request.fromSearch(query)
  .then((profileRequest) => {

    // You have access to the Request ID (if needed)
    const profileRequestID = profileRequest.id
    ...
  })

Method: POST

Endpoint: /v1/profiles/async

Usage: Starts a profile request and returns the Request ID for later reference.

Request Type: application/json

Response Type: application/json


Note:

The Request Format to this endpoint is exactly identical to Request Format of the Profile Endpoint.

The difference lies in the fact that this (the Async Profile Endpoint) endpoint only starts a profile request and gives you the information needed to check on the status of the request.

The Profile Endpoint endpoint waits until the request has completed (or a reasonable amount of time) before returning a response.

The Request ID from this endpoint can be used with the Async Profile Results endpoint to receive a status (and, if finished, the profile results) of the search.

Request Format

Example Request Data

{
  "first_name": "Michael",
  "last_name": "Scott",
  "email": "[email protected]",
  "company_name": "Dunder Mifflin",
  "location": "Scranton, PA",
  "text_sample": "Hey there, Jim! \nJust emailing to invite you and Pam to have dinner with Jan and I tonight!",
  "text_type": "email"
}
Param Type Description
first_name string First name of the person
last_name string Last name of the person
email string Email address of the person
company_name string Name of the company where the person works
location string Location of person. Formatting is ideally in the format of
Nashville, TN.
text_sample string A paragraph (or more) of text written by the person.
text_type string The origin of the text given in the text_sample. This can be one of:
["email", "various", "bio", "resume"].
  1. first_name and last_name

  2. email

  3. text_sample and text_type

Response Format

Example Response Data

{
  "request_id": "df584bb8-affb-46bb-832e-209315086973"
}

Listed below are the properties of a successful Profile Request creation.

Param Type Description
request_id string Profile Request ID to be used to retrieve the profile results from the Async Profile Results endpoint.

HTTP Status Codes

Listed below are the HTTP Status Codes that might be sent with a response:

Code Title Meaning
200 OK Not an error - just happy things!
401 Unauthorized Organization Token was invalid
429 Rate Limit Hit You’ve hit the rate limit for your plan
500 Unexpected Error An unexpected error occurred

Try It Out

...

...

Profile Results (Async)

Summary

Example Request

curl "https://connect.crystalknows.com/v1/profiles/results/d6e24893-6aaa-493f-ae36-9418f53869f9" \
     -H "X-Org-Token: $YOUR_ORG_TOKEN"
# Create the query
query = {
  first_name: "Drew",
  last_name: "D'Agostino",
  email: "[email protected]",
  company_name: "Crystal",
  location: "Nashville, TN",
  text_sample: "I, Drew, Founder of Crystal, think that ...",
  text_type: "various"
}

# Send the profile request to Crystal
profile_request = CrystalSDK::Profile::Request.from_search(query)

# Pull out the Profile Request ID (string)
profile_request_id = profile_request.id

# Save the Request ID somewhere (DB, Queue, Hard Drive..)
...

# Later, pull up the Request ID and pull information about it
saved_req = CrystalSDK::Profile::Request.new(profile_request_id)

if saved_req.did_finish? && saved_req.did_find_profile?
  profile = saved_req.profile
  ...
end
// Create the query
const query = {
  first_name: "Drew",
  last_name: "D'Agostino",
  email: "[email protected]",
  company_name: "Crystal",
  location: "Nashville, TN",
  text_sample: "I, Drew, Founder of Crystal, think that ...",
  text_type: "various"
}

// Send the profile request to Crystal
CrystalSDK.Profile.Request.fromSearch(query)
  .then((profileRequest) => {

    // Pull out the Request ID
    const profileRequestID = profileRequest.id

    // Save the Request ID somewhere (DB, Queue, Hard Drive..)
    ...
  })

// Later, pull up the Request ID and pull information about it
const savedReq = new CrystalSDK.Profile.Request(profileRequestID)

savedReq.didFinish()
  .then((finished) => (
    finished ?
    CrystalSDK.Profile.fromRequest(savedReq) :
    Promise.reject('Request not finished')
  ))
  .then((profile) => {
    ...
  })
  .catch((err) => console.log("No profile found:", err))

Method: GET

Endpoint: /v1/profiles/results/:request_id

Usage: Retrieve the status of an Async Profile Request

Request Type: Path Parameter

Response Type: application/json

Request Format

Example Request Data

{
  "request_id": "d6e24893-6aaa-493f-ae36-9418f53869f9"
}
Param Type Description
request_id string The ID of the Profile Request to be retrieved

Response Format

Example Response Data

{
  "status": "complete",
  "info": {
    "first_name": "Drew",
    "last_name": "D'Agostino",
    "disc_scores": {
      "type": "Ids",
      "confidence": 90
    },
    "disc_image": "https:\/\/www.crystalknows.com\/images\/learn\/disc\/ids_full.png"
  },
  "recommendations": {
    "emailing": {
      "overview": "This person is a gifted communicator who prioritizes relationships, and providing them with a new idea and a time\/place to follow up to discuss verbally will probably result in a fast response.",
      "phrases": [
        "Write with short casual language and abbreviations",
        "Don't take yourself too seriously",
        "Use emotionally expressive language",
        "Appeal to their feelings to drive them to action",
        "Use an emoticon :)"
      ]
    },
    "motivations": {
      "overview": "This person is <b>outgoing<\/b>, <b>optimistic<\/b>, and will encourage their colleagues to work hard, play hard. They thrives in workplaces that encourage <b>creativity<\/b>.",
      "phrases": [
        "New relationships",
        "Peer recognition",
        "Fun & excitement",
        "Feeling accepted",
        "Ambitious goals"
      ]
    },
    "communication": {
      "overview": "This person will appreciate a break in <b>momentum<\/b> to joke around and tell stories while getting to know their colleagues on a more personal level.",
      "phrases": [
        "Emphasize the future",
        "Use self-deprecating humor (don't act like you take yourself too seriously)",
        "Leave a conversation open-ended",
        "Tell a few jokes",
        "Exaggerate about any facts (not even a little bit)"
      ]
    },
    "behavior": {
      "overview": "This person will easily <b>build rapport<\/b> with those surrounding them. <b>Friendly<\/b>, <b>optimistic<\/b> and <b>eager<\/b>, their enthusiasm is contagious.",
      "phrases": [
        "Make a quick purchase decision",
        "Immediately feel comfortable speaking to a new person",
        "Focus on deep & close relationships rather than high quantity",
        "Make a decision more quickly than most people",
        "Forget something important"
      ]
    },
    "building_trust": {
      "overview": "This person might get bored by monotony, structure, and formality. Has a preference for <b>brainstorming<\/b>, often thinks out loud, and will look for feedback from their peers.",
      "phrases": [
        "Introduce them to others in your network",
        "Smile and make eye contact frequently",
        "Remember and ask about their personal details",
        "Challenge them on occasion",
        "Share your feelings frequently"
      ]
    },
    "selling": {
      "overview": "This person is decisive, energized by ideas, and overlooks details, so stick to the big picture and get to your point quickly. ",
      "phrases": [
        "Focus on the future plans for your product",
        "Try to schedule a meeting with other coworkers",
        "Use hyperbole to make a point (\"This is the best product in the world!\")",
        "Tell a past customer story instead of listing features",
        "Tell a story about the company instead of listing facts"
      ]
    },
    "working_together": {
      "overview": "This person is creative, decisive, a bit disorganized, overlooks details, and enjoys working with people.",
      "phrases": [
        "Confront conflict in person rather than via email",
        "Recognize their achievements verbally",
        "Express criticism in person or on the phone",
        "Express criticism via email",
        "Use purely logical appeals if you argue"
      ]
    },
    "overview": "This person is a gifted communicator, prioritizes relationships, and sometimes makes decisions based solely on instinct.",
    "qualities": [
      "Enterprising",
      "Influential",
      "Assertive",
      "Daring",
      "Charming"
    ]
  }
}

Listed below are the properties of a successful profile request result.

Param Type Description
status string Status of the call. One of the following:
["processing", "complete", "error"]
info string General information about the profile (see Profile Response Format)
recommendations string All of Crystal’s recommendations (see Profile Response Format)

HTTP Status Codes

Listed below are the HTTP Status Codes that might be sent with a response:

Code Title Meaning
200 OK Not an error - just happy things!
404 Not Found No profile was found that matched the search query
401 Unauthorized Organization Token was invalid
500 Unexpected Error An unexpected error occurred

Try It Out

...

...

Relationship

Summary

Example Request

curl --request POST \
  --url https://connect.crystalknows.com/v1/relationships/4245e3d8-efcd-472f-ac65-ecc48e56300a/6c3f32ce-a86f-466c-9521-4548eb36365c \
  --header 'content-type: application/json; charset=utf-8' \
  --header 'x-org-token: CrystalKey'

Method: POST

Endpoint: /v1/relationships/:profile_one/:profile_two

Usage: Request relationship between two request_ids

Request Type: Path Parameter

Response Type: application/json

Request Format

Example Request Data

{
  "profile_one": "4245e3d8-efcd-472f-ac65-ecc48e56300a",
  "profile_two": "6c3f32ce-a86f-466c-9521-4548eb36365c"
}
Param Type Description
profile_one string The request_id of the first person
profile_two string The request_id of the second person

Response Format

Example Response Data

{
 "overview": "Andrew and Cory <b>both analyze subjects deeply</b> and solve complex problems, but Andrew prefers to do so out loud in a group and Cory prefers more space for independent thinking.",
 "change": {
   "phrases": [
     "Andrew is likely to make changes much more swiftly than Cory, and without as much planning. This is great on occasions where quick thinking is necessary, but over time it can make Cory uneasy and tense. <br><br>The key is to distinguish the situations where it's OK to follow Andrew's gut instinct from the situations that necessitate Cory's careful planning.",
     "Andrew needs to feel good about a change before taking action, while Cory needs the change to make sense logically. <br><br>These are very different motivations, and it can make a major change frustrating for one or both when both needs are not addressed.",
     "Andrew tends to make changes without hesitation, once there is enough data to support the change. <br><br>Cory has a similar way of thinking, but may need a nudge to take action instead of over-analyzing.",
     "Andrew expects people to adapt quickly to change, but Cory requires more thoughtful planning. Before making a change, Andrew should articulate the reasons and timing for the change clearly to Cory, giving him time to adjust.",
     "Andrew tends to be quickly decisive and naturally makes immediate change upon discovering a better way. <br><br>Cory, however, prefers to think through all of the potential outcomes and measure risk before making a change, so Cory might feel forced to move too quickly when working with Andrew.",
     "Andrew and Cory both have the ability to turn on a dime if it results in a better outcome. <br><br>Neither of them hold strong ties to existing solutions, and are generally the ones to drive changes forward.",
     "Andrew has a very cautious attitude towards change and likes to plan each step ahead of time, while Cory is more analytical and may take action more quickly, with the confidence to make small adjustments on the fly after acquiring new information. <br><br>To effectively manage change, Cory should use his analytical skills to make Andrew feel comfortable before diving into an unknown situation.",
     "Andrew and Cory both make changes primarily based on logic, and don't trust gut feelings. Therefore, they will share a mutual understanding in a dynamic situation. <br><br>However, Cory is more decisive might push to make a change before Andrew is ready, so he should make sure to provide Andrew with any supporting information he can.",
     "Andrew and Cory both have a cautious attitude towards change and like to plan each step ahead of time before taking action. <br><br>While they can naturally pull off a very smooth transition, there are times when it may take unnecessarily long. It helps to have a hard deadline or a more impatient third party to apply some pressure.",
     "Andrew and Cory share an adventurous spirit and are extremely comfortable with change. The unknown doesn't scare them. If they don't exercise caution occasionally, it could come back to bite them. <br><br>To avoid creating a mess, Andrew and Cory should bring in a third opinion before making a major change, ideally someone with a more logical, methodical nature."
   ]
 },
 "communication": {
   "phrases": [
     "Andrew speaks casually, directly, and thinks out load while Cory communicates more carefully and precisely. This dynamic can create some natural conflicts, especially when Andrew makes statements sarcastically that Cory takes literally, or Cory sends subtle messages that Andrew doesn't pick up on.",
     "Andrew and Cory have similar communication styles and will both prefer long, logical discussion to fully understand a situation. While they will enjoy most conversations together in a social setting, at work it might help to set a specific end goal or deadline to avoid getting bogged down in details.",
     "Andrew and Cory are both naturally conversational, but in starkly different ways, so both will need to adjust to communicate effectively. Andrew has a tendency to shoot from the hip, often thinking out loud with casual language and bold claims. Cory, on the other hand, prefers to communicate with accuracy and logic, and will often feel the urge to correct Andrew or force him to back up a claim with evidence. <br><br>Over time, Andrew will feel frustrated by this and may even avoid deep conversations with Cory to avoid criticism. To maintain a healthy relationship, Cory can try to be more tolerant of Andrew's more improvised style and Andrew can try more written communication to support the verbal.",
     "Andrew and Cory are both naturally relational and place a high value on meaningful conversation, but Andrew can have a tendency to speak more while Cory listens. <br><br>Communication will usually be enjoyable, but it's important for Andrew to ask Cory questions to involve and engage him, rather than simply sharing all of his perspectives.",
     "Andrew might ignore the details when the more analytical Cory describes a situation. Both can reach a more productive middle ground if Andrew can be patient and attentive, while Cory shares only the most relevant information.",
     "Andrew and Cory both are both naturally reserved and choose their words carefully before speaking. In conversation, Cory's tendency is to use raw, objective, at times brutally accurate language, but he should adjust to Andrew's communication style by using more gentle, friendly language to describe a situation.",
     "Andrew and Cory are both talkers, and they will have no trouble getting along and diving into meaningful conversation together. They'll be great in social settings, but at work it may be helpful to have an assertive third-party who isn't afraid to cut them off and bring the conversation to an actionable conclusion.",
     "Andrew and Cory have very different communication styles and should both go out of their way to accommodate each other. Andrew tends to speak in short, direct, sometimes sarcastic bursts while Cory prefers more carefully thought-out language and has a more reserved demeanor. <br><br>Andrew is the one that needs the bigger adjustment - needing to slow down and be more selective with his words to build long-term rapport with Cory.",
     "Andrew and Cory are both naturally reserved, and are likely to be comfortable with silence (in fact, they see silence as a sign of trust in the relationship). In conversation, Andrew will have a slightly more outgoing attitude, and Cory should try to resist the urge to correct minor inaccuracies or exaggerations.",
     "Andrew and Cory will naturally communicate in short, clear sentences that could sound blunt or robotic to others. They share a mutual appreciation for results, and see conversation at work as a means accomplish a goal, rather than a way to get to know each other.<br><br>While they can be very efficient together, it's important that they both slow down and use more friendly language in a group setting so others are not uncomfortable."
   ]
 },
 "conflict": {
   "phrases": [
     "Andrew and Cory both crave accuracy, and will want to correct each other all the time. <br><br>In the event of a serious dispute, they need to avoid the temptation to waste too much time diving into a long, philosophical discussion and accept an imperfect resolution if necessary.",
     "During a conflict Cory will naturally want to put together a well-structured argument in writing, while Andrew will prefer to hash things out verbally, and ideally in-person. <br><br>To resolve the disagreement as smoothly as possible, Andrew should allow Cory to put together an email or document with the main issues and Cory should allow Andrew to reflect and respond to it in a verbal conversation.",
     "When Andrew makes a mistake, it will be much more effective for Cory to point out the resulting cost rather than the reasons for it - \"This is what this mistake will cost you\" vs. \"This is why you're wrong\". <br><br>Cory naturally craves accuracy and logic, so this will be against his natural reaction.",
     "Andrew and Cory both tend to avoid conflict and will almost never get into a verbal argument. <br><br>This results in a peaceful work environment, but can cause unresolved issues to boil for a long time beneath the surface without getting resolved. <br><br>They should make a point to regularly check in with each other to address any concerns or issues the other person may have, openly and without risk of hurt feelings.",
     "There's a chance that Andrew will feel challenged by Cory, being direct enough to engage in frequent debate but not quite as logical. <br><br>This dynamic can be dangerous and cause resentment if it isn't managed well, so Cory needs to restrain his immediate desire to poke holes in an argument in favor of the main point, and Andrew needs to be thoughtful and accurate before engaging.",
     "Andrew has a more extreme temperament than Cory, so he is likely to get excited or angry more quickly, but also move on more quickly after a conflict. <br><br>If Cory can stay engaged during conflict, he can be a steady, calming influence for Andrew.",
     "Andrew tends to avoid conflict most of the time while Cory has the deep need to be accurate. This often puts Cory in a position to correct others. <br><br>If Cory needs to correct Andrew, he must remember to communicate calmness, sincerity, and empathy rather than pure objectivity and accuracy. <br><br>On the other side, Andrew should work through a conflict with Cory by focusing on facts, rather than feelings.",
     "Andrew and Cory both have high emotional intelligence and won't let an argument get too heated before peacefully resetting. <br><br>However, they may occasionally dance around a difficult subject for fear of hurting the other's feelings, so they need to consciously make the effort to specifically address the root causes of the conflict.",
     "Andrew and Cory are both intense, decisive, assertive, and strong-willed, so conflict resolution will be no picnic. <br><br>To effectively resolve a conflict, both need to temporarily let go of control over the situation and slowly go through their arguments logically, step-by-step. <br><br>If Andrew challenges Cory too directly, Cory is likely to retaliate with the same level of intensity, so it's critical to maintain a calm, steady tone and potentially involve an objective third party.",
     "An argument between Andrew and Cory may seem angry or hostile to more reserved outsiders, but perfectly civil to them. <br><br>To effectively resolve a conflict without getting too heated, however, both need to temporarily let go of control over the situation and slowly go through their arguments logically, step-by-step."
   ]
 },
 "feedback": {
   "phrases": [
     "Andrew and Cory will likely be very quick to verbalize feedback, but will tend to gravitate towards new ideas rather than criticism. They're both conversational and relish hearing what others think of them. <br><br>While they can have a fruitful, enjoyable conversation they may need some help to zero in on a set of problems and come up with immediately realistic solutions.",
     "Andrew and Cory will have extremely different reactions to criticism, so it must be handled with care. When expressing criticism to Andrew, Cory's natural inclination will be to point out problems and poke holes. Unfortunately, this will suck the life out of Andrew and might make him lose interest in the project. <br><br>Instead, Cory should make a point to offer better solutions - Andrew is not stubborn and will be quick to change his mind, but needs a positive alternative. However, when Andrew expresses criticism to Cory, he should try to be as specific as possible to point out problems. This allows Cory to be creative and find his own solutions.",
     "Andrew should be thorough, logical, and fair when criticizing Cory's work, and Cory should do the same. Both of them want to be correct, and critical feedback should be used as a mechanism to find the right answer, rather than a negotiation to support one of their own opinions.",
     "Andrew and Cory are a naturally good fit to provide feedback for each other, because both of them are able to separate out emotions from their decision making, which allows them to address problems clearly and logically. <br><br>Cory will tend to go into more detailed criticism, while Andrew might stop at the first major problem, but overall they will come to new solutions quickly.",
     "Andrew will generally appreciate how Cory delivers feedback quickly, without beating around the bush. However, Cory has to be careful not to take over control of the situation, and should leave Andrew with the autonomy to think of new solutions. <br><br>Andrew's feedback style is more conversational than direct, so it may require an adjustment to give Cory a specific problem to solve - rather than a broad idea of how Andrew feels.",
     "Andrew is a naturally critical thinker, and generally quick to find the logical flaws in a project or argument. Cory, however, is a thoughtful planner that prefers a predictable, familiar solution, even if it isn't the optimal one. <br><br>As a result, Andrew will usually be the one to express criticism, and if Andrew does not filter his thoughts, might harm his relationship with Cory by tearing down an object of trust. Andrew should first try to understand Cory's reasons for making a decision, then follow on with thoughtful feedback.",
     "Andrew typically gives feedback directly and broadly, which isn't ideal for Cory, who prefers more detailed, specific instructions on what to improve. <br><br>When Cory needs to provide feedback to Andrew, he should speak in more critical, blunt terms instead of the gentle, positive ones that come naturally.",
     "Andrew and Cory can give each other blunt, harsh feedback without feeling offended in the slightest bit. They both separate the end result from their emotions and relentlessly pursue achievement. <br><br>However, they need to be careful to soften their naturally sharp tone if other people with more reserved personalities are involved in the project.",
     "Andrew is naturally supportive and avoids conflict, so he will tend to avoid criticizing Cory in most situations, even if it's necessary. Cory, on the other hand, will often speak out loud when providing feedback to Andrew, and may not completely organize his thoughts first, causing Andrew to read into some words too deeply. <br><br>It's important for Cory to slow down and structure his constructive criticism before delivering it, and for Andrew to understand that Cory is not likely to take criticism personally - Cory actually loves to change his mind in favor of a better solution.",
     "Andrew and Cory are both so positive, supportive, and non-confrontational in nature that they tend to shy away from criticism, even if it is badly needed. When necessary, they may need a few awkward, forced conversations to address important points of feedback on a project, and rely on their friendly attitudes to maintain the relationship."
   ]
 },
 "group": {
   "phrases": [
     "Andrew thrives off of optimism and feels drained by pessimism. <br><br>Cory's analytical and cautious nature may seem pessimistic (and therefore restrictive) to Andrew, so Cory should take the initiative to occasionally mention the upside when assessing a situation, rather than solely focusing on eliminating the downside.",
     "Andrew tends express absolute confidence in most decisions (right or wrong), which is the polar opposite of Cory's more skeptical and reserved approach. The result can either be powerful, effective partnership or source of mutual frustration. <br><br>To avoid the latter, Andrew should avoid absolute claims without the data to prove it, and Cory should express concerns all at once, rather than nit-picking over an extended period of time.",
     "Andrew will exhibit very little fear of failure and has a natural tendency towards defiance, which can get him into trouble occasionally and make Cory nervous when working together. <br><br>Cory does not like to be hyper-critical, but will usually feel obligated to reduce the risk or chaos that Andrew is so comfortable with. <br><br>In this case, Andrew needs to take a step back and accommodate Cory's desire for predictability by paying attention to potential downsides and negative consequences.",
     "Andrew and Cory prefer to work independently and are comfortable working in isolation for long periods of time. <br><br>They can take on more difficult, complex problems than most people but may have trouble presenting their solutions to others in a concise, understandable way.",
     "Andrew might introduce more conflict into a group and throw off the harmony that Cory prefers to maintain, so it's important for Cory to recognize that Andrew sees argument as a means to a better outcome rather than personal aggression. <br><br>Likewise, Andrew can help Cory feel more comfortable with a calm, diplomatic attitude.",
     "Andrew and Cory both work at an intense pace and are focused on results, ignoring small details most of the time. <br><br>Andrew tends to be more comfortable with the unknown than Cory, so before making a big decision it's helpful for Andrew to give Cory an organized list of potential outcomes, including the negative ones.",
     "Andrew enjoys working independently to solve problems and eliminate risk, while Cory prefers to work as a helpful supporter. <br><br>Sometimes, Cory may feel ignored while Andrew isolates himself. But if they keep communication open and consistent, Andrew and Cory can compliment each other well.",
     "Andrew and Cory are similarly outgoing and friendly, so they will have no problem getting on the same page when they work together. <br><br>They also love exploring new ideas, but may have trouble working through details or the more mundane parts of a project. <br><br>Andrew is slightly more comfortable in the role of a planner, so if he can work through the tactics while Cory focuses on the big picture, they can work effectively together.",
     "Andrew and Cory are both naturally accommodating and most comfortable making detailed plans and eliminating risk, so there won't be many arguments when they work together. <br><br>Though they get along well and make very few mistakes, they may need some external pressure when speed is a priority over perfection, or when an underlying conflict needs to be addressed verbally.",
     "Andrew prefers to involve more people in a project, but when Cory gets frustrated by its pace, he might be tempted to isolate himself and finish it alone. <br><br>Andrew can keep Cory involved by working in small, efficient groups rather than large ones that require lots of cooperation."
   ]
 },
 "instruct": {
   "phrases": [
     "Andrew prefers to focus on the highest level of a task and has a natural aversion to detail, but Cory is the polar opposite and prefers lots of detail, data, and reasoning to go along with a set of instructions. <br><br>If Andrew adjusts to be more methodical and Cory keeps and open mind for flexibility and on-the-fly changes, they can be a strong team. If neither adjusts, they will grow frustrated with each other quickly.",
     "Andrew prefers to focus on the highest level of a task and has a natural aversion to detail, while Cory craves detailed instructions and prefers to know all of the specific steps required to complete a task. <br><br>If neither person adjusts, Cory can feel stressed by Andrew's ambiguity and Andrew can feel confined by Cory's control over structure and timeline.",
     "Andrew tends to give broad instructions, focusing on a goal without going into too much detail about how to accomplish it. Cory actually prefers to have control over how something gets done, and will enjoy the autonomy. <br><br>However, if Cory is in the position to give Andrew instructions, he must be careful to give Andrew enough flexibility to work out his own solution rather than a rigid structure.",
     "Andrew tends to give instructions without too much detail, focusing on the end goal. Cory prefers to have specifically outlined steps to complete a task, so Andrew should adjust to provide more detail than what comes naturally. <br><br>However, when Cory is giving instructions to Andrew, he should do the opposite and give Andrew flexibility to work out his own method.",
     "Andrew and Cory both prefer to focus on the highest level of a task and have a natural aversion to detail. When communicating instructions, they will rarely ask for clarifying questions or more information, and instead dive into the task right away. <br><br>This means they can get things done quickly, but should both be more careful about accuracy and clarity than they would with other people.",
     "Andrew and Cory both crave control on the process of getting something done, so they might butt heads when giving each other instructions. To work most effectively, they should set time limits on their debates before jumping into task and make a clear choice on who makes the final decision in the event of a stalemate.",
     "Andrew likes to control the steps and timeline of a task, down to the granular details. While Cory generally prefers having a rigid set of instructions, he might find it difficult to shift Andrew's position if Cory wants to recommend a change. <br><br>Andrew can make the process much smoother by setting Cory's expectations early for the desired result, but keeps an open mind for adjustments.",
     "Andrew tends to give very rigid, direct instructions and it will probably go against Cory's nature to question or challenge them. If Cory has a better way of doing things, it's important for him to speak out bluntly, which is usually the only way to get Andrew's attention.",
     "Andrew and Cory both give very rigid, direct instructions but also prefer control, which can be an issue when one is managing a project. They can avoid conflict by clearly stating who has final authority and who needs to let go of control. However, it won't come naturally for either of them.",
     "Andrew naturally gives instructions with a single direction, but Cory will respond much better to a list of multiple choices and the power to decide. However, Cory should always tell Andrew what the desired result first, followed by recommendations rather than rigid instructions. As long as the goal is clear, Andrew prefers control over how something gets done."
   ]
 },
 "motivate": {
   "phrases": [
     "Andrew primarily values results and Cory values accuracy, so the best way for Andrew to encourage Cory is to compliment the quality of his work. <br><br>However, if Cory wants to encourage Andrew, he should point out how much has been accomplished, and express faith in Andrew's ability to accomplish more in the future.",
     "Andrew is primarily motivated by recognition from other people, but Cory is motivated by being right. This causes group interactions to play out differently between them, and it may result in a mess if they are leading a team (Andrew wants people to feel good, but Cory would rather everything make logical sense). <br><br>To encourage each other, both need to address the core need of the other - Andrew should compliment the quality of Cory's work, while Cory should sincerely talk about Andrew's strengths as a person.",
     "Andrew is naturally motivated by quality, accuracy, and the satisfaction of a job well done. While Cory is motivated by trust, appreciation, and long-term relationships. <br><br>For Andrew to encourage Cory, he should verbally recognize Cory's commitment. But, Cory should also recognize Andrew's competence and skill.",
     "Andrew and Cory both place a high value on quality and the satisfaction of a job well done, so they share motivation. If Andrew wants to encourage Cory, he can do so by focusing on the task at hand and Cory's skill (and vice versa).",
     "Andrew is motivated by recognition from others, while Cory is motivated by appreciation. In most cases, Cory will naturally provide the recognition Andrew desires, so Andrew will enjoy Cory's company. <br><br>However, it might take a while before Andrew verbally expresses his appreciation for Cory - not out of rudeness or ignorance, but because Andrew expects Cory to understand the appreciation implied by sharing time and experiences. Andrew needs to make the adjustment and simply thank Cory from time to time, even if it feels forced or unnecessary.",
     "Andrew is motivated by results and control, while Cory is motivated by appreciation and stability. While Cory will naturally feel comfortable giving Andrew autonomy to make decisions and feel in control, Andrew is unlikely to vocalize his appreciation for Cory very often. <br><br>After a while, Cory may feel drained if his commitment is not recognized, but Andrew can encourage him by writing a simple letter expressing appreciation.",
     "Andrew and Cory are both heavily motivated by what others think of them, which can be rewarding and exhausting. In a healthy relationship, Andrew will recognize Cory's unique positive qualities, deliver gentle criticism, and Cory will return the gesture in good faith. <br><br>In times of stress or insecurity, however, both Andrew and Cory might try to accommodate too many people at once to earn their approval. This can be avoided with consistent affirmation and recognition.",
     "Andrew and Cory are both motivated by results and control, so to have a healthy relationship, there needs to be a natural give-and-take between the two of them. <br><br>If control swings too much in one direction, the other will be tempted to look elsewhere for a situation they can control.",
     "Andrew and Cory share the same motivation - they both are consistent, loyal supporters and only desire appreciation for their efforts, rather than the spotlight. They will understand each other well, but might not be quick to vocalize their appreciation for each other.",
     "Andrew and Cory have very different motivations, and are likely to experience conflict if they don't address it. Andrew is motivated by results and control, while Cory is almost entirely motivated by other people. <br><br>When working together, they can both stay motivated by focusing on the parts of a task that are most rewarding to them individually - Cory should allow Andrew to call the shots, and Andrew should put Cory in a position to be recognized by the people around him."
   ]
 },
 "personal": {
   "phrases": [
     "Andrew and Cory are both driven by curiosity, so they can develop a strong bond over time by seeking out new ways of thinking together, sharing interesting facts, articles, and ideas with each other. <br><br>They value long conversation and detailed analysis to understand all sides of an issue, but such a conversation may be boring to others around them.",
     "Andrew will usually have a higher risk tolerance than Cory, so it's important for him to periodically slow down and think through all aspect of a decision (as hard as it may be). <br><br>Over time, Cory will appreciate the thoughtfulness and likely express more willingness to take calculated risks.",
     "Andrew and Cory will have an almost instant connection based on intellectual curiosity, and can develop trust over time by objectively seeking answers together. <br><br>They may struggle to discuss more personal topics though, so Andrew should use his more outgoing nature to open up to Cory.",
     "Andrew and Cory are both open, curious, and outgoing and are likely to become friends quickly. <br><br>Cory will appreciate Andrew's assertiveness, and can seek his assistance with tough decisions, while Andrew can learn to be more empathetic and cooperative by spending time with Cory.",
     "Andrew and Cory are both very practical and enjoy structure, so they will work well together most of the time. <br><br>However, Andrew will find it easier to open up personally, and it may take a longer time for Cory to develop trust.",
     "Andrew and Cory both place a high value on relationships, but Andrew likes to know lots of people and Cory prefers a small, close-knit circle. <br><br>They may sense this tension, but with open communication, they can help each other - Andrew can learn to connect more deeply and Cory can learn to explore more of the unknown.",
     "Andrew tends to project confidence, but Cory may perceive it as an air of superiority. <br><br>This can be a healthy dynamic on a team, but if it leaves Cory feeling secondary it's important to address. <br><br>However, Cory will admire and respect Andrew's ability to take decisive action and Andrew will appreciate Cory's steadiness and consistency.",
     "Andrew and Cory can form an extremely efficient and productive relationship if they each yield a bit on their desire for control. <br><br>Andrew feels more comfortable making big decisions, while Cory succeeds in a role of analysis and execution.",
     "Andrew and Cory see life as an opportunity to build, persuade, and achieve, and they are always looking for ways to win. <br><br>Because of their shared values, they can either become close allies or fierce rivals. If they each pursue goals independently, without getting in each other's way, they can make a powerful, dynamic team.",
     "Andrew and Cory are energetic achievers and move at a similarly intense pace in life, so they will likely get on the same page quickly. <br><br>They can build a strong relationship by respecting each other's autonomy and desire for control, while independently pursuing goals."
   ]
 },
 "stress": {
   "phrases": [
     "Andrew is extremely comfortable with chaos, and does his best work under pressure. <br><br>When the situation requires quick decisions with limited data, it may be best for Cory to temporarily let go of control and allow Andrew to use his primary strength - his intuition.",
     "Andrew is more outgoing than Cory and more comfortable with an unpredictable, chaotic environment. <br><br>They can manage a stressful situation well when Andrew can exercise enough restraint to give Cory the time needed to think and make plans.",
     "Andrew usually responds to a stressful or uncertain situation by immediately taking action, and then reacting. Cory, however, prefers to analyze the situation long enough to gain some insight, then plans his next steps. <br><br>This creates inevitable tension, and if Andrew pushes too hard to act, he can make Cory resentful, but if Cory tries to organize too much it will hold back Andrew from gaining his own understanding (by trial and error).",
     "Andrew and Cory are likely to have a very complimentary working relationship under normal circumstances, but a stressful situation might create a rift that needs to be carefully managed. <br><br>The main issue is that Cory reacts to the unknown by relentlessly seeking out answers in isolation, while Andrew reacts by sticking to what has worked in the past and encouraging group cooperation. <br><br>Andrew needs to give Cory the autonomy to navigate the situation and come up with solutions independently, but Cory must communicate his actions clearly to Andrew and anyone else involved to make them feel comfortable.",
     "Andrew and Cory are at their best when things get chaotic and start to fall apart. They have very little need for external stability, and can make clear, quick decisions without getting caught up in analysis. <br><br>Andrew will have a slightly higher tolerance for risk, which Cory may need to restrain, but together they can navigate the unknown with ease.",
     "Andrew and Cory both react to a stressful, chaotic situation by isolating themselves and seeking answers. <br><br>While each of them can make quick progress independently, they need to make sure to communicate regularly with each other to avoid duplication and conflicts.",
     "Andrew and Cory have outgoing personalities and tend to let stress \"roll off their back\" easily, which helps them navigate most unpredictable situations with a calm, collected approach. <br><br>However, if the situation becomes chaotic, they will be tempted to make quick decisions without significant data to back them up beyond what feels right. In this case, Cory needs to play the role of pragmatic planner (although it won't be easy for him). ",
     "In a good mood, Andrew's high energy will be engaging and energizing to Cory and others around him. <br><br>However, in a bad mood or under stress, Andrew can be sarcastic or overly blunt without realizing it. <br><br>In that case, Cory should address the comment immediately and tell Andrew that it is unacceptable in a clear, direct, and confident tone rather than a gentle one.",
     "Andrew is at his best in chaotic, unpredictable situations because he lacks a fear of instability and makes decisions firmly and swiftly. <br><br>Cory is the more outgoing one who may feel more uneasy emotions, so Andrew can be a stabilizing presence by developing a sense of empathy in the toughest moments.",
     "Andrew is likely to be more high-strung on most days, so Cory can have a much-needed calming influence on him in a particularly stressful situation. <br><br>Still, Andrew must resist the natural urge to isolate himself and accept support when it is offered."
   ]
 },
 "work": {
   "phrases": [
     "While both have a creative streak, Cory should focus on the part of a project that requires the most writing. <br><br>Andrew is best suited for parts involving verbal communication or visuals.",
     "Andrew is heavily motivated by challenge. Once past the biggest hurdle of a project, he will be tempted to find a new one and needs help from someone like Cory to tie up the loose ends first.",
     "Andrew is adventurous and eager to dive into new projects after feeling inspired. While Cory prefers to carefully plan projects step by step before starting them. <br><br>There will always be this tension between them when working together, but they can manage the tension by working at the dynamic (and at times chaotic) pace of Andrew with the consistent organization of Cory.",
     "Andrew and Cory are both creative, adventurous individuals that enjoy exploring ideas and acting on gut instinct. They can inject life into a project and innovate more quickly than most people, but might pursue too many things at once when left to their own devices. <br><br>To avoid overcommitting, Andrew and Cory need external pressure to keep them accountable to a deadline. It could come from a boss, coworker, or customer, but needs to have enough influence to force them to temporarily ignore their other numerous ideas.",
     "Andrew is a people-oriented planner at heart, and Cory is an analytical executer. <br><br>If they combine those skills evenly, they can push a project forward with speed, quality, and productive relationships between all parties involved.",
     "Andrew and Cory both prefer analysis and execution over politics, so they will naturally gravitate towards the hands-on tasks of a project and away from the sales or prevention side of it. <br><br>This is a great combination for projects that don't require buy-in from a group of people, but when other stakeholders are involved, it's necessary for one of them to take a more external-facing role or bring someone in who is more comfortable with presentation and persuasion. ",
     "Andrew tends to work at an intense pace and likes to have control over a project. Cory will be happy to let Andrew take the lead, but prefers a steadier, more methodical pace. <br><br>If Andrew can compromise on intensity and be open to more detailed plans, they can be a very effective, efficient team.",
     "Andrew tends to be extremely self-sufficient, but can be much more effective by seeking Cory's help with organization, process, and analysis.",
     "Andrew and Cory are both naturally driven achievers, and will relentlessly push a project to completion. While they can get things done at a faster pace than almost anyone else, they will often do so without any structured process skip over details that they perceive as unnecessary, which could be frustrating and confusing for other team members. <br><br>For any project that requires group input, Andrew and Cory need to make sure to articulate their plans clearly for the people around them.",
     "Andrew and Cory like to plan out projects carefully before starting, so they will make very few mistakes. <br><br>However, they also have a tendency to get lost in details and overanalyze before committing to action, so it might be helpful to involve a more aggressive personality to move things forward."
   ]
 }
}

Listed below are the properties of a successful profile request result.

Param Type Description
overview string A quick overview of the relationship between the two parties
change string An explanation of how the two parties react to change, and their willingness to change
communication string An explanation of how the two parties communicate, especially with each other
conflict string An explanation of how the two parties react to conflict
feedback string An explanation of how the two parties react to feedback, and how to best communicate feedback
group string An explanation of how the two parties act in groups
instruct string An explanation of how to best instruct the two individuals
motivate string An explanation of how to best motivate the two parties
personal string A brief explanation of the two personalities and a few of their traits
stress string An explanation of how the two parties react to stress
work string An explanation of how the two parties work and how to best motivate them to work

HTTP Status Codes

Listed below are the HTTP Status Codes that might be sent with a response:

Code Title Meaning
200 OK Not an error - just happy things!
404 Not Found No profile was found that matched the search query
401 Unauthorized Organization Token was invalid
500 Unexpected Error An unexpected error occurred

Messaging

Summary

Example Request

curl --request POST \
  --url https://connect.crystalknows.com/v1/messaging/4245e3d8-efcd-472f-ac65-ecc48e56300a/6c3f32ce-a86f-466c-9521-4548eb36365c \
  --header 'content-type: application/json; charset=utf-8' \
  --header 'x-org-token: CrystalKey' \
  --data '{ "text": "Warm regards,"}'

Method: POST

Endpoint: /v1/messaging/:sender/:recipient

Usage: Returns recommendations based on text sent

Request Type: Path Parameter

Response Type: application/json

Request Format

Example Request Data

{
  "sender": "4245e3d8-efcd-472f-ac65-ecc48e56300a",
  "recipient": "6c3f32ce-a86f-466c-9521-4548eb36365c"
}
Param Type Description
sender string The request_id of the person to send the message
recipient string The request_id of the person to recieve the message

Response Format

Example Response Data

{
  "start": 0,
  "end": 13,
  "recommendation": "Leave out <b class=\"red\">Warm regards</b> from your email signature, and use something shorter like <b class=\"green\">Best,</b> or <b class=\"green\">Thanks,</b> or just leave your name."
}

Listed below are the properties of a successful profile request result.

Param Type Description
start integer The start index of the text data passed
end integer The end index of the text data passed
recommendation string A set of recommendations based on the message passed

HTTP Status Codes

Listed below are the HTTP Status Codes that might be sent with a response:

Code Title Meaning
200 OK Not an error - just happy things!
404 Not Found No profile was found that matched the search query
401 Unauthorized Organization Token was invalid
500 Unexpected Error An unexpected error occurred

Email Samples

Summary

Example Request

curl -X POST \
  https://connect.crystalknows.com/v1/emails/4969f4c3-6d5e-42e1-bf73-342fe8c8a3f1 \
  -H 'content-type: application/json; charset=utf-8' \
  -H 'x-org-token: CrystalKey'

Method: GET

Endpoint: /v1/emails/:request_id

Usage: Returns relevant email temples based on request_id

Request Type: Path Parameter

Response Type: application/json

Request Format

Example Request Data

{
  "request_id": "4969f4c3-6d5e-42e1-bf73-342fe8c8a3f1",
}
Param Type Description
request_id string The request_id of the person to send the email

Response Format

Example Response Data

[
  {
    "label": "Request for a meeting",
    "description": "<p>Nick will only want to meet if there is a <b>clear purpose</b> for the meeting, and you articulate your <b>motivations</b>. State the <b>action you would like him to take</b> to make scheduling as easy as possible.</p>",
    "text": "Hi Nick,\n<br/>\n<br/>\nI work for ABC company as a product manager. I have been reading your ideas on management, and many of them have resonated with me as I tackle similar challenges in my role.\n<br/>\n<br/>\nI am also located in Boston, and would like to ask a few career-related questions.  Would you like to meet for coffee next week?\n<br/>\n<br/>\nThanks,\n<br/>\n[Your Name]"
  },
  {
    "label": "Compensation discussion",
    "description": "<p>When writing this kind of request to Nick, stick strictly to <b>facts</b>, <b>logic</b>, and validated <b>results</b>. For someone with Nick's personality, a compensation increase is likely justified by improved quality, efficiency, or quantity of your output, but not by your ability to persuade him.</p><p>Avoid expressive language or any appeals to emotion, as they will likely make your request appear more biased than objective.</p>",
    "text": "Nick,\n<br/>\n<br/>\nIt's been a great year and I?m pleased that we've been able to exceed all of the goals that we originally outlined. With all of the challenges we have had to work through, I?m extremely encouraged by the growth of our team and the results we?ve achieved.\n<br/>\n<br/>\nIf you believe my performance justifies it, I would like to discuss my ongoing responsibilities and a potential compensation increase for the next year. As you know, my contributions have increased significantly in areas like Project A and Project B recently, and I believe a modest salary adjustment would be fair and mutually beneficial at this point.\n<br/>\n<br/>\nWould you be open to a conversation about this next week?\n<br/>\n<br/>\nThanks,\n<br/>\n[Your Name]\n"
  },
  {
    "label": "Big Conference Invitation - Boston - 12/5/2015",
    "description": "<p>Make sure your invitation to Nick covers all of the <b>key details</b>, and contains a <b>clear next step</b. for Nick to follow.</p><p>Avoid too much formality or wordiness, keeping the message succinct.</p>",
    "text": "Hi Nick,\n<br/>\n<br/>\nI'd like to to invite you to attend this year?s Big Conference, which will be held on Tuesday, December 5th in Boston.\n<br/>\n<br/>\nAlong with a full schedule of sessions to help accelerate your professional growth (see attached schedule), there will be an excellent lineup of speakers, including several well-known industry veterans like:\n<br/>\n<br/>\n- Suzanne Bartwell, CEO of Active Hotels\n<br/>\n- Jimmy Smith, CEO of SmithMart\n<br/>\n- Melanie Jackson, CMO of SmartDesign\n<br/>\n- Alex Johnson, Founder of Hungry Bear Interactive\n<br/>\n<br/>\nPlease respond before the registration deadline on November 31st, and let me know if you have any questions.\n<br/>\n-[Your Name]"
  },
  {
    "label": "Product management position at FlexCo",
    "description": "<p>Nick will make decisions based on <b>logic</b> and appreciates directness, so be as <b>objective and accurate</b> in your email as possible, using <b>precise, technically descriptive</b> language and avoiding <b>broad, expressive</b> phrases.</p>",
    "text": "Hi Nick,\n<br/>\n<br/>\nI work for FlexCo and I'm writing to about a new product management position that recently opened up on our team.\n<br/>\n<br/>\nOur company is the gadget industry's leading widget provider and is growing very quickly. In the next month, we are looking to add a product manager to our already high-performing R&D team. The primary responsibilities include:\n<br/>\n<br/>\n-Organizing and planning the team's development sprints.\n<br/>\n-Prioritizing new product features.\n<br/>\n-Facilitating communication between engineering and design teams to develop product requirements and set achievable timelines.\n<br/>\n-Communicating goals and progress regularly to internal business stakeholders.\n<br/>\n<br/>\nThis role seems to align very well with your experience. I can schedule a phone call on Thursday or Friday of this week if you would like to talk through some of the details.\n<br/>\n<br/>\nThanks,\n<br/>\n-[Your Name]"
  },
  {
    "label": "Available meeting times",
    "description": "<p>In your follow-up to Nick, include a <b>list of specific time options</b> to schedule your in-person meeting.</p><p>Do not elaborate on the details covered in your initial conversation, or come across as overly friendly.</p>",
    "text": "Hi Nick,\n<br/>\n<br/>\nThank you very much for taking the time to speak today. As for our meeting, please let me know which of the following times work for you:\n<br/>\n- Monday, 10am\n<br/>\n- Monday, 2pm\n<br/>\n- Tuesday, 2pm\n<br/>\n- Wednesday, 9am\n<br/>\n<br/>\nThanks,\n<br/>\n[Your Name]"
  }
]

Listed below are the properties of a successful profile request result.

Param Type Description
label integer The subject of the sample email
description integer Tips and tricks for how to communicate
text string Sample email body text

HTTP Status Codes

Listed below are the HTTP Status Codes that might be sent with a response:

Code Title Meaning
200 OK Not an error - just happy things!
404 Not Found No profile was found that matched the search query
401 Unauthorized Organization Token was invalid
500 Unexpected Error An unexpected error occurred