[DP-6] Lookup Single Record by ID / Keyword

Problem

Status updates on important records are locked away inside business systems that only experts can access

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 6
[object Object]
Gwen11:43 AM

Show me PO782 please.

Moveworks extracts "782" passes to API value:

{"id": "782"}

[object Object]
Moveworks11:43 AM

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

PO782: Logitech
Item Name: Mouse
Quantity: 12

Example Use Cases

  1. Finance: View Purchase Orders by ID
  2. HR: Acronym Lookup
  3. Project Management: View Jira Ticket by ID

Design Considerations

Design time

  • Must return non-200 status code if records are not found
  • 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