Managing Customers

When creating a reservation or waitlist, you must pass along valid customer information. It is recommended the customers be managed on your end, while passing on an ID that is meaningful to your database. This way, the customer can be tracked even if they change their phone number or email. This is important for the integrity of the restaurant's analytics, and ensuring that customer profile data, such as permanent notes, number of visits, etc., remain attached to the same customer.

public class CustomerInformation
{
    /// <summary>
    /// Optional ID for customer that never changes. This is used to track customer despite information changing.
    /// </summary>
    [StringLength(45)]
    public string Id { get; set; }

    /// <summary>
    /// Customer first name
    /// </summary>
    [Required, Name]
    public string FirstName { get; set; }

    /// <summary>
    /// Customer last name
    /// </summary>
    [Name]
    public string LastName { get; set; }

    /// <summary>
    /// Customer phone number
    /// </summary>
    [Required, Phone]
    public string PhoneNumber { get; set; }

    /// <summary>
    /// Customer email address
    /// </summary>
    [Required, EmailAddress]
    public string Email { get; set; }

    /// <summary>
    /// Image url for the customer
    /// </summary>
    [Url]
    public string ImageUrl { get; set; }

    /// <summary>
    /// Optional member information about the customer.
    /// </summary>
    public MemberInfo MemberInfo { get; set; }
}

Some restaurants have member or loyalty programs. You can optionally pass along the customers member number and tier when creating a reservation or waitlist. This will show up to the host that the customer is a VIP and part of their member program.

public class MemberInfo
{
    /// <summary>
    /// Member/Loyalty number for the customer.
    /// </summary>
    public string MemberNumber { get; set; }

    /// <summary>
    /// Optional. What tier the member number is apart of. Must match configured member tiers for the restaurant.
    /// </summary>
    public string MemberTier { get; set; }
}

Member Tier

Some restaurants have a tiered member program system (e.g. silver, gold, platinum, etc). To see what member tiers are available for a given restaurant, see member tier API. The names of the member tiers returned can be used when creating a reservation/waitlist if you want the host to know that not only is the customer part of the member program, but a gold member as well.

Some business logic is defined for different tier levels, such as getting priority seating. It is important to include the business logic information if it is known.


What’s Next