[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:
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",
}
One moment, fetching your results. This may take ~10 seconds
Total Recipients: 187,654
Unsubscribe Rate: 0.20%
Date Launched: 07/15/2023
Example Use Cases
- Finance: Get vendor profile by name
- HR: Lookup office address by city
- 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
{ "attribute1": "value1", "attribute2": { "nested_attribute_1": "value2" } }
{ "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