[DP-7] Lookup Single Record by Name

Problem

Exact identifiers are hard to memorize, but users need to check-up on specific assets by name

What does this pattern do?

Enable users to find records based on their identifier. You can visualize this as a filter applied on a table like below:

dp 7
[object Object]
Gwen11:43 AM

What was the most recent marketing campaign we ran for ACME?

Moveworks extracts "ACME" from natural language and maps it to the standardized name: "Acme Corp"


Inbound Request to Middleware:

{
"name": "Acme Corp"
}

Process:
1. Establish a connection to CRM
2. Filter records down to those matching the organization
3. Select the most recent one
4. Return via API

Outbound Response:
{
"Open Rate": "9.87%",
"Total Recipients": "187,654",
"Unsubscribe Rate": "0.20%",
"Date Launched": "07/15/2023",
}

[object Object]
Moveworks11:43 AM

One moment, fetching your results. This may take ~10 seconds

CAMPAIGN-008: Revolutionize your supply chain management with our platform!
Open Rate: 9.87%
Total Recipients: 187,654
Unsubscribe Rate: 0.20%
Date Launched: 07/15/2023

Example Use Cases

  1. Finance: Get vendor profile by name
  2. HR: Lookup office address by city
  3. Engineering: Lookup server health by name

Design Considerations

Design time

  • Must return non-200 status code if records are not found
  • Must provide a list of sample aliases for common names to Moveworks customer support.
  • Must return a JSON dictionary from the API. (No embedded lists)
    SupportedNot Supported
    Copy
    Copied
    {
      "attribute1": "value1",
      "attribute2": { 
        "nested_attribute_1": "value2" 
      }
    }
    Copy
    Copied
    {
      "record": [
        { "attribute1": "value1" },
        {"attribute2": { "nested_attribute_1": "value2" }}
      ]
    }
  • Must display a single record of attributes & values. Multiple records, or related records are not supported in this design pattern.
  • Your automation tools should use the exact ID that's extracted from the user.

Run time

  • Bot will make an API call for each possible ID detected. This will give your users a more robust experience.
  • Bot will not ask for the ID if it is omitted from the utterance