WO2011100246A1 - System and method for managing contacts and calendars within an online card system - Google Patents

System and method for managing contacts and calendars within an online card system Download PDF

Info

Publication number
WO2011100246A1
WO2011100246A1 PCT/US2011/024059 US2011024059W WO2011100246A1 WO 2011100246 A1 WO2011100246 A1 WO 2011100246A1 US 2011024059 W US2011024059 W US 2011024059W WO 2011100246 A1 WO2011100246 A1 WO 2011100246A1
Authority
WO
WIPO (PCT)
Prior art keywords
stationery
contacts
user
card
recipient
Prior art date
Application number
PCT/US2011/024059
Other languages
French (fr)
Inventor
Kelly Berger
Adnan Asar
Kevin Chang
Original Assignee
Tiny Prints. Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tiny Prints. Inc. filed Critical Tiny Prints. Inc.
Priority to CA2788123A priority Critical patent/CA2788123A1/en
Priority to EP11742686.6A priority patent/EP2534625A4/en
Publication of WO2011100246A1 publication Critical patent/WO2011100246A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0282Rating or review of business operators or products

Definitions

  • This invention relates generally to the field of network data
  • the invention relates to an improved architecture and method for managing contacts and calendars within an online stationery system.
  • Figures 1a-c illustrate screenshots from one particular stationery Website (www.qreetz.com) which provides options for manually entering a new name/address of a recipient 100 or importing a group of addresses from an Excel spreadsheet 101 .
  • Figure 1 b upon selecting an Excel spreadsheet from the user's local hard drive, the user is prompted with a plurality of drop-down menus 102 to identify the data fields for the address lines.
  • a list of recipients 103 is provided as shown in Figure 1 c. The end user is permitted to delete names from the list (by selecting a trash icon) but no other mechanism is provided for editing or otherwise managing the list of recipients on the online stationery service.
  • a system and method are described for managing a contacts and calendar database within an online stationery/card service.
  • a system implemented by an online stationery/card service for personalizing and sending non-electronic cards comprising: a stationery/card contacts module to manage an end user's contacts data stored within a contacts database, the contacts data including relationship data specifying a relationship between the end user and one or more of the contacts; a stationery/card calendar module to automatically generate stationery/card calendar events in the user's calendar database based on the contacts data stored within the contacts database, the stationery/card calendar events including milestones associated with each of the contacts, wherein at least some of the calendar events are generated based on the specified relationship between the user and each of the contacts; a stationery/card personalization engine executed in response to the user selecting one of the calendar events, the stationery personalization engine providing the end user with a set of selectable stationery templates related to a selected event from the calendar database, the stationery
  • personalization engine receiving an indication that an end user has selected a particular one of the stationery templates, and generating personalized stationery with the selected template based on user input;
  • stationery/card service contacts manager identifying address information for each of a set of user-selected contacts to receive the personalized stationery; and a print module to generate and transmit a print job to print the personalized stationery/cards and envelopes containing the address information for the user-selected contacts.
  • FIGS. 1a-c illustrates a prior art stationery service in which stationery recipients are identified.
  • FIG. 2 illustrates a system architecture according to one embodiment of the invention.
  • FIG. 3 illustrates a computer-implemented method according to one embodiment of the invention.
  • FIG. 4 illustrates a graphical user interface (GUI) for importing various different online and offline contact databases.
  • GUI graphical user interface
  • FIG. 5 illustrates one embodiment of a GUI window for importing contacts from different contact groups.
  • FIG. 6 illustrates a graphical user interface for associating imported contacts with data fields.
  • FIG. 7 illustrates one embodiment of the invention for merging existing and imported contacts.
  • FIG. 8 illustrates one embodiment of an address book for viewing and managing a contacts database.
  • FIG. 9 illustrates households comprised of multiple contacts according to one embodiment of the invention.
  • FIG. 10 illustrates one embodiment of a GUI for incorporating contacts into households.
  • FIG. 11 illustrates another embodiment of a GUI for incorporating contacts into households and/or merging contacts.
  • FIG. 12 illustrates a window displaying household details according to one embodiment of the invention.
  • FIG. 13 illustrates a window displaying contact details according to one embodiment of the invention.
  • FIG. 14 illustrates windows for confirming mailing addresses according to one embodiment of the invention.
  • FIG. 15 illustrates GUI features employed in one embodiment of the invention for sending address request email messages.
  • FIGS. 16a-b illustrate exemplary address confirmation requests transmitted to contacts in one embodiment of the invention.
  • FIG. 17 illustrates reminder emails transmitted to an end user according to one embodiment of the invention.
  • FIGS. 18a-b illustrate GUI features employed in one embodiment of the invention for selecting new addresses and addresses from within a contacts list.
  • FIG. 19 illustrates GUI features employed in one embodiment of the invention for selecting options for directly mailing stationery to contacts and for mailing stationery to the end user of the stationery service.
  • FIG. 20a-c illustrate GUI features for selecting default and custom messages to be printed on stationery and mailed contacts within an address book.
  • FIG. 21 illustrates a method according to one embodiment of the invention for processing a stationery order.
  • FIG. 22 illustrates one embodiment of a system architecture which integrates contacts and calendar data and includes a reminder service and a recommendation engine.
  • FIG. 23 illustrates a Web-based graphical user interface ("GUI") for managing stationery/greeting card contacts, calendars, reminders, recommendations and for selecting and personalizing stationery/greeting cards.
  • GUI graphical user interface
  • FIG. 24 illustrates a Web-based GUI having two different tabs for reviewing scheduled and previously sent greeting cards.
  • FIG. 25 illustrates a Web-based GUI for filtering and selecting greeting cards among a plurality of templates.
  • FIG. 26a-b illustrates a Web-based GUI comprising a reminder list and a greeting card calendar.
  • FIG. 27 illustrates a Web-based GUI comprising a greeting card calendar.
  • FIGS. 28 illustrates a Web-based GUI for adding a new greeting card event.
  • FIG. 29 illustrates a Web-based GUI comprising a plurality of selectable options for greeting card subscriptions.
  • FIG. 30 illustrates a Web-based GUI comprising filtering logic for filtering greeting card templates.
  • FIG. 31 illustrates a Web-based GUI for managing user selections of greeting card templates.
  • FIG. 32 illustrates a Web-based GUI for selecting greeting card templates for a particular recipient and occasion.
  • FIG. 33 illustrates a Web-based GUI comprising a plurality of selectable filtering options for selecting a greeting card.
  • FIGS. 34-35 illustrates a Web-based GUI providing a detailed view of a stationery template.
  • FIG. 36 illustrates a Web-based GUI for collecting information related to a greeting card recipient.
  • FIGS 37-39 illustrate a Web-based GUI for personalizing a greeting card template.
  • FIGS. 40-42 illustrates a Web-based GUI for previewing a
  • FIG. 43-45 illustrates a Web-based GUI for selecting between sending a greeting card to the card sender or card recipient and for personalizing a greeting card envelope.
  • FIG. 46 illustrates a Web-based GUI for selecting among a list of contacts to whom to send a personalized greeting card.
  • FIG. 47 illustrates a Web-based GUI for selecting an electronic message to be sent in addition to a personalized non-electronic greeting card.
  • stationery may refer to greeting cards (e.g., holiday cards, birthday cards), invitations (e.g., wedding, birthday invitations, etc), and any other form of nonelectronic communication and/or images printed on a medium (e.g., paper, fabric, etc) using any form of printing device.
  • greeting cards e.g., holiday cards, birthday cards
  • invitations e.g., wedding, birthday invitations, etc
  • any other form of nonelectronic communication and/or images printed on a medium e.g., paper, fabric, etc
  • Figure 2 illustrates one embodiment of a system architecture for importing and managing contacts within an online stationery service 200 and Figure 3 illustrates a corresponding method.
  • One embodiment of the online stationery service 200 merges contact data from multiple different sources and then converts the contact data into a format which is optimized for online stationery mailing functions.
  • a brief overview of the method illustrated in Figure 3 will now be provided within the context of the architecture shown in Figure 2. It should be noted, however, that the underlying principles of the invention are not limited to the specific
  • a contacts import module 209 manages the importation of contacts from various local and/or online contact databases identified by the end user.
  • the contacts import module 209 comprises a format conversion module 204 and a conflict detection and resolution module 205.
  • the format conversion module 204 reads contacts data from online contacts databases 201 -202; local contacts databases 203 (i.e., "local" to the user's client computer 240); and/or existing contacts 21 1 already stored on the online stationery service 200 (e.g., the end user may have already established an account on the online stationery service 200 to send stationery and may have entered information for a set of contacts 21 1 ).
  • the format conversion module converts the contacts to a format optimized for use on an online stationery service 200.
  • the format conversion module 204 parses the contact data in source data structure (e.g., the CSV file, vCard file, etc), extracts the data, and assigns the data to appropriate data fields in the new data structure.
  • source data structure e.g., the CSV file, vCard file, etc
  • the contacts data is stored in its new format within a contacts database 210 on the stationery service.
  • Various features associated with this new data format are described in detail below (see, e.g., Figures 12-20c and associated text).
  • a conflict detection and resolution module 205 merges the local and/or online contacts with existing contacts 21 1 already stored on the online stationery service 200 and detects any conflicts which may result from the merge operation.
  • a conflict may result if one or more contacts being imported are already stored within the existing contacts database 21 1 .
  • the conflict detection and resolution module 205 resolves the conflicts at 305 using a set of conflict resolution rules (described below). Once all conflicts have been resolved, the data is persisted within the contacts database 210 and made accessible to end users via the stationery service contacts manager 212.
  • the contacts database 210 is implemented using mySQL. However, various different database formats may be employed while still complying with the underlying principles of the invention (e.g., Microsoft SQL, IBM SQL, etc).
  • the user identifies one or more "households" within the stationery service contacts database 210.
  • households are specialized groups of contacts who live at the same address.
  • the concept of a "household” is a particularly useful abstraction for an online stationery service 200 which mails stationery on behalf of a user.
  • stationery service contacts database 210 is used for persistent storage of contacts data containing the features described herein and the stationery service contacts manager 212 is the application-layer program code used to perform operations on the stationery service contacts database 210 as described below.
  • the presentation and session management logic 206 comprises the program code for maintaining user sessions and for dynamically generating Web pages containing (among other things) the graphical user interface (GUI) features for manipulating contacts data as illustrated herein.
  • GUI graphical user interface
  • the user selects and personalizes a stationery design.
  • a stationery personalization engine 220 such as that described in copending application entitled SYSTEM AND METHOD FOR DESIGNING AND GENERATING ONLINE STATIONERY, Serial No. 12/188,721 , filed August 8, 2008, which is assigned to the assignee of the present application and which is incorporated herein by reference.
  • the stationery personalization engine 220 performs all of the functions described in the co-pending application as well as the additional functions described herein (e.g., selecting contacts/households for a stationery mailing via the stationery service contacts manager 212, selecting between a default message or a personal message for the contacts/households, etc).
  • the end user creates a default message to be used for a stationery mailing and, at 309, the contacts and/or households for the mailing are identified by the end user. If the user wishes to include a personalized message in lieu of the default message for one or more contacts/ households, determined at 310, then the user selects a
  • contact/household at 31 1 enters the personalized message for the contact/household at 312. If any additional personalized messages are to be included, determined at 313, then steps 31 1 and 312 are repeated until all personalized messages have been entered.
  • all of the information related to the stationery order are formatted for printing by a print module 250 which generates a print job 255.
  • the formatting may include converting the stationery data mentioned above into a format usable by a particular printer.
  • a letter press printer may require different formatting than a digital press printer.
  • the specifications for the print job are encapsulated as metadata in an
  • the XML document includes a hyperlink (e.g., a URL) to the formatted print job 255 on the online stationery service 200.
  • the print service 252 then accesses the print job by selecting the hyperlink.
  • the formatted print job 255 is transmitted to either an internal printer 251 or an external print service 252 (e.g., over the Internet).
  • the online stationery service 200 or the print service 252 mails the stationery to the contacts and/or households identified by the end user.
  • GUI graphical user interface
  • presentation and session management logic 206 executed on the online stationery service.
  • various well known functional modules associated within the presentation and session management logic 206 are executed to receive input, process the input, interact with one or more other modules shown in Figure 2, and dynamically generate Web pages containing the results.
  • the Web pages are then transmitted to the user's client computer 240 and rendered on a browser 245.
  • the Web pages may be formatted according to the well known HyperText Markup Language (“HTML”) or Extensible HTML (“XHTML”) formats, and may provide navigation to other Web pages via hypertext links.
  • HTML HyperText Markup Language
  • XHTML Extensible HTML
  • Dynamic HTML a collection of technologies used together to create interactive Web sites by using a combination of a static markup language (e.g., HTML), a client-side scripting language (e.g., JavaScript), a presentation definition language (e.g., CSS), and the Document Object Model (“DOM").
  • a static markup language e.g., HTML
  • a client-side scripting language e.g., JavaScript
  • a presentation definition language e.g., CSS
  • DOM Document Object Model
  • the user is prompted to identify online and offline contacts databases via a series of hyperlinks 401 - 402 (see, e.g., step 302 in Figure 3).
  • the three online links 401 include Facebook, Gmail and Yahoo! contacts.
  • a set of five links 402 are provided for importing contacts from different types of CSV files and a set of two links 403 are provided for importing contacts from different vCard files.
  • FIG. 5 illustrates a graphical user interface (GUI) window generated in one embodiment of the invention following the selection of a particular contact database 201 -203.
  • GUI graphical user interface
  • the user may select contacts from different, predefined contact groups 501 -503. In the example shown in Figure 5, the groups include "all contacts" 501 ,
  • a set of available contacts 505 to be imported is displayed within region 510.
  • Each contact has a check box associated with it to indicate whether the contact should be included in (or excluded from) the import.
  • the default state of the check boxes is "unchecked” and the user must manually select contacts by checking the corresponding check boxes.
  • the contacts which correspond to contacts already stored in the user's address book 21 1 on the online stationery service 200 are identified by the conflict detection and resolution module 205 and highlighted (e.g., bolded in Figure 5).
  • "matches" to existing contacts are those contacts which have the same name AND one of the following: same email, phone, date, OR mailing address.
  • Check-boxes 51 1 and 512 are also provided to import group names with the contacts and to add the imported contacts to a specific group within the user's existing address book 21 1 .
  • the specific group is identified via a drop-down menu containing a list of available groups. Once the set of contacts are selected within region 510 the user imports the contacts by selecting an import button 515.
  • Figure 6 illustrates a GUI window which allows the user to review and confirm field assignments to be used for the imported contacts data.
  • a plurality of "field type" drop-down menus 601 are provided to allow the user to select the fields to be used.
  • the corresponding values for each contact are displayed within a plurality of rows 602, as illustrated.
  • a conflict detection and resolution module 205 identifies existing contacts 21 1 which match contacts being imported from the various sources 201 -203 and attempts to resolve any conflicts which may exist between the data.
  • each conflict is identified to the end user and the user is prompted to specify how to resolve the conflict.
  • Figure 7 illustrates a Web-based graphical user interface presented to the user which shows the contact data contained in the existing contacts database 701 , the contact data to be imported 702, and the merged contact data which would result from the import 703.
  • the differences between the existing and imported data is highlighted.
  • the user is given the option to select the existing version 701 , the imported version 702 or the merged version 703 using a mouse, keyboard, and/or other cursor control device.
  • a checkbox option 720 is also provided to allow the user to apply the choice to all remaining contacts to be reviewed. If the checkbox 720 is not selected, the user will review and select each conflict individually.
  • FIG. 8 illustrates a graphical user interface (GUI) for viewing and managing contacts stored within the stationery service contacts database 210 according to one embodiment of the invention.
  • the GUI includes a first region 810 for listing various contact groups; a second region 81 1 for listing contacts and/or households associated with the currently selected group; and a third region 812 for performing operations related to selected contacts and/or households.
  • the groups listed within the GUI include an "all contacts" group 801 , user-specified groups 802 and one or more "smart groups” 803 which are automatically generated by the stationery service contacts manager 212.
  • the smart groups 803 are groups of contacts and/or households arranged according to upcoming
  • the smart groups include a "reminders” group which includes reminders for contacts and/or households arranged in chronological order; an "upcoming birthdays” group comprised of contacts arranged in order of upcoming birthdays; an "anniversaries” group comprised of contacts arranged in order of upcoming anniversaries; and a "recent purchases” group comprised of contacts arranged in an order of stationery purchases made by the end user.
  • a listing of contacts is provided in region 81 1 in a chronological order of upcoming birthdays (e.g., with the contact with the first upcoming birthday at the top of the list).
  • the end user is provided with the ability to add smart groups based on any date-based variable associated with the contacts database.
  • Other types of smart groups may include "requested addresses” containing a listing of those contacts for whom mailing addresses have been requested (as described below); a "recently confirmed” smart group containing a listing of those contacts who have responded and confirmed their addresses; and a "last import” smart group comprised of those contacts included in the last contacts import.
  • Multiple contacts and/or households may be highlighted in region 81 1 (e.g., by holding CTRL and selecting with a mouse) and processed by selecting options in region 812. For example, a drop-down menu of available groups 823 allows the user to associate the highlighted contacts with a group.
  • An export button 821 allows the user to export the contacts to a file (e.g., a CSV or vCard file).
  • a "merge into household" button 820 when selected, allows the end user to create a new household comprised of the selected contacts. Upon selection of this button, the end user is presented with a field for entering a new household name. As illustrated in Figure 9, once a new household is created, the household 901 is displayed within the second region 81 1 of the GUI along with other contacts and/or households. As illustrated, the contacts 902 associated with the household are displayed beneath the household entry 901 and indented.
  • a user may select one or more contacts 1 105 (e.g., by holding down the CTRL key) and drag the contacts over another contact 1 106 in the contact list. Doing so will provide the user the option to either merge the contacts (by selecting a merge button 1 101 ) or to create a new household with the contacts (by selecting a "new household” button 1 102).
  • region 812 also includes a selectable option to "send cards" to the contacts selected in region 81 1 . Selecting this option causes the stationery personalization engine 220 to begin the stationery design process using contacts identified by the stationery service contacts manager 212 (e.g., starting at step 309 in Figure 3). For example, the user will be provided the option to select a stationery template and enter a default message and/or a personalized message for certain contacts. After the mail order is completed, the print module 250 will transmit the stationery order to one of the internal printers 251 or the external print service 252 and, after printing, the stationery order will be mailed to the selected contacts.
  • Figure 12 illustrates one embodiment of a household details window which is generated by, for example, double-clicking on the household within the contacts/households region 81 1 .
  • the window includes a first region 1201 for listing the contacts within the household, with hyperlinks linking to each of the contacts, a second region 1202 for displaying upcoming dates associated with the members of the household (as well as links 1203, 1204 for sending a card to each of the household members).
  • a dropdown menu 1210 is provided which is automatically populated with all of the different addresses associated with each of the household members. As shown at 121 1 , each entry in the drop-down menu includes an address, an indication of the contact associated with the address and a classification of the address type (e.g., work, home, etc).
  • Links 1205-1207 are provided and dynamically updated for each address to map the address 1205 (e.g., by linking to Google Maps); to validate the address 1206 (as described herein); and to send a card 1207 (as described herein). In circumstances where a single address is associated with all of the household members, the dropdown is not provided as indicated at 1212.
  • Figure 13 illustrates a window for displaying and manipulating contact details according to one embodiment of the invention.
  • the contact details window is generated in response to a user double-clicking on a contact in region 81 1 .
  • Multiple addresses are provided for the contact and, for each address, a link is provided to "validate" the address 1301 and 1303.
  • the stationery service contacts manager 212 transmits a query containing the current address to an address validation service such as those available from the US postal service (USPS).
  • USPS US postal service
  • the USPS in response to selection of the "validate" link, the USPS either suggests corrections, as indicated by highlighted regions 1410 of selection box 1401 or validates the address, as indicated in selection box 1402.
  • a "send card” link 1302, 1304 is provided for each address in the contact details window which initiates the process of selecting, designing and mailing stationery for the contacts associated with the address (e.g., as described above with respect to the "send card” button in region 812 of Figure 8).
  • a "reminder" region 1315 is provided within the contact details window to provide reminders of upcoming dates such as birthdays and anniversaries for contacts within the user's contacts list.
  • the layout within the region comprises an indicator of the type of reminder (e.g., birthday), followed by the date of the reminder, followed by a brief description (e.g., 40 years old in 6 months).
  • certain contact data such as birthdays and anniversaries are identified by the stationery service contacts manager 212 as reminders.
  • links are provided 1305,1307 to configure automated reminders for the end user.
  • the stationery service contacts manager 212 upon setting a reminder for a particular event, will transmit an email, instant message, or SMS message to remind the end user of the event and/or will update the user's calendar with the event.
  • a "send card" link 1302, 1304 is provided to initiate the process described above to design and mail stationery to the contact associated with the reminder.
  • a purchase history region 1320 is provided within the contact details window to display the recent purchase history of the end user.
  • entries within the purchase history include images of the stationery designs 1309 and 1310 recently purchased by the end user, along with an indication of the stationery type and message, and the date that the stationery was purchased.
  • one embodiment of the invention confirms current mailing addresses by transmitting email messages to contacts. As illustrated in Figure 15, in response to the selection of a particular contact, a window 1501 is
  • a default request message is used unless the user selects the checkbox for adding a personal message. If this checkbox is selected a window such as 1502 appears to allow the user to enter a personal message. In one embodiment, upon selection of "add a personal message" check box, the message field is pre-populated with the default message, which may then be edited by the user.
  • a GUI for selecting multiple contacts is illustrated at 1503.
  • contacts to receive the email request are selected via checkboxes.
  • certain contacts who have specifically asked not to receive requests and/or for whom the user does not have an email address are grayed out (thereby preventing selection via a checkbox).
  • User selection of a "send request(s)" button from 1503 or a "send request” button within window 1501 will cause the confirmation request email to be sent to the selected contacts.
  • Both window 1501 (for a single request) and 1503 (for multiple requests) include a "view sample email" link to display a sample request email.
  • the sample request email may be displayed in a new window, a new DHTML layer, or as an in-line DIV (HTML ⁇ div> element).
  • Figure 16a illustrates one embodiment of a confirmation request email to be sent to contacts for whom no address currently exists in the user's address book.
  • a hyperlink 1601 may be selected from within the email message to open a Web page on the online stationery service 200 and enter the contact's address information.
  • the URL 1601 is unique for each individual contact (e.g., containing a sequence of characters uniquely identifying the contact to whom the email was sent).
  • Figure 16b illustrates one embodiment of a confirmation request email to be sent to contacts for whom an address currently exists on the online stationery service 200.
  • the address which is stored on the online stationery service 200 is provided within the body of the email 1602.
  • a first hyperlink 1603 is provided to allow the contact to confirm that the address information is correct and a second hyperlink 1604 is provided to allow the contact to review and update the address information and/or other personal information related to the contact.
  • Selection of the first hyperlink 1603 generates a thank you message indicating that the current address information has been confirmed and selection of the second hyperlink 1604 generates a series of data entry fields within a Web page for the user to update the address information.
  • the data fields are pre-populated with the existing address information.
  • a reminder email in which upcoming dates are listed in chronological order and, for each reminder, links are provided to generate a subsequent reminder 1701 -1702 (e.g., "remind me again in 3 days").
  • a "send a card” link 1703-1704 is provided which, when selected, initiates the stationery design process on the online stationery service 200 for the associated contact(s) (as described above).
  • a secondary listing 1705 is provided for those contacts for which the user has not specifically requested a reminder.
  • the online stationery service 200 will mail stationery to selected contacts on behalf of the end user.
  • Figures 18a-b illustrate one embodiment of the invention for selecting contacts for a stationery mailing.
  • Two tabs 1801 -1802 are provided for specifying contacts.
  • the first tab 1801 generates a series of data entry fields 1805 for specifying a new contact name and address (for someone not found in the user's address book).
  • the second tab 1802 provides a list of selectable contacts 1804 from the user's address book 210.
  • a drop-down menu 1803 is provided to select specific groups of contacts to be displayed within the list 1804. Individual contacts within the list 1804 are selected via check boxes, as illustrated.
  • the user selects an "add" button 1807 to add the contact information to the set of contacts for the stationery order.
  • Contacts may be added to one of two different groups: a "mail for me” group 1810 which includes contacts to whom the online stationery service 200 will mail stationery directly; and a "address + ship to me” group 181 1 which includes contacts for whom the online stationery service will print stationery/envelops and then mail the order to the end user.
  • the "mail for me group” is opened, thereby displaying those contacts selected for a direct-mail option.
  • the "address + ship to me” group may be displayed in a similar manner upon selection of a hyperlink 181 1 , as illustrated in Figure 19.
  • two separate lists are compiled: a "mail for me” list 1901 and a "address + ship to me” list 1902.
  • Contacts may be added to each of the lists via two corresponding add buttons 1903 and 1904.
  • contacts may be moved between the lists by highlighting a contact from one of the lists and selecting a "move" button 1910.
  • two different options 1801 -1802 are provided for selecting contacts and two different delivery options (“mail for me” or "address + mail to me”) are provided for delivering the stationery order.
  • Figure 20a illustrates one embodiment of a Web-based GUI for specifying a default message.
  • a greeting field 2001 is provided for entering a default greeting (e.g., "Hi,” “Hey,” “Dear,” etc.) and a selectable option 2002 is provided to mail merge the greeting when possible (e.g., using contact information from the user's address book 210).
  • a drop down menu 2004 is provided to indicate whether the first or last name of the contact should be used. "First name” is selected in Figure 20a, indicating that the greeting will be placed in front of the first name of the stationery recipient (e.g., "Hey Albert").
  • a message field 2005 is provided for entering a default message and a signature field 2006 is provided for entering a default signature (e.g., "Best Regards, Tom").
  • a default signature e.g., "Best Regards, Tom”
  • options are provided for entering a picture 2009; selecting a default font 2007; and selecting a default font size 2008.
  • Figures 20b-c illustrate a GUI for reviewing the messages
  • a separate contact entry 201 1 -2013 is provided for each contact.
  • a "preview" link associated with each contact entry allows the end user to preview the current greeting 2021 , message 2022 and signature 2023 for each contact.
  • the preview for contact 201 1 is illustrated in Figure 20b and the preview for contact 2013 is illustrated in Figure 20c.
  • radio selection options 2020 are provided to allow the user to select the "standard message,” a "custom message,” or "no message.”
  • a standard greeting, message, and signature is selected for contact 201 1 and a custom greeting, message, and signature is provided for contact 2013.
  • the user may edit each of the messages directly (e.g., by placing a cursor within data entry fields 2040, 2041 or 2042). All of the contact entries may be opened and displayed via an "expand all" link 2010. Following the review of all greetings, messages and signatures, an approval region is provided in which the user enters his/her initials 2017 to approve the final results.
  • FIG. 21 A method for selecting stationery purchase options according to one embodiment of the invention is illustrated in Figure 21 . In one embodiment, the method is implemented within the context of the GUI and system described above.
  • a user selects stationery delivery options.
  • the options include "mail all for me” 2102 indicating that the stationery service will be responsible for printing and mailing the stationery order directly to recipients; "ship all to me” 2103 indicating that the stationery service will print and ship the order directly to the end user; and "ship some for me and mail some for me” 2104 indicating that the stationery service will be responsible for printing and mailing a portion of the stationery order directly to recipients and will ship the remainder of the order to the end user.
  • the user indicates to the stationery service whether return addresses are to be printed on envelopes.
  • the user indicates whether mailing labels are to be used.
  • the stationery service identifies the recipient and user addresses from its database and, at 21 08, generates a print job to print the stationery and envelopes containing the addresses according to the user's specified preferences (e.g., using mailing labels, return addresses, etc). The stationery order (stationery and envelopes) is then printed.
  • the stationery service mails the stationery directly to the recipients.
  • the stationery service ships the stationery order directly to the end user.
  • the stationery service mails some of the stationery order to recipients on behalf of the user and ships the remainder of the stationery order to the end user.
  • the stationery order is generated and sent to a printing service as described in the co-pending US patent application entitled SYSTEM AND METHOD FOR PROCESSING PERSONALIZED STATIONERY DESIGNS AND SELECTING FULFILLMENT ORDER SITES, Serial No. 1 2/638,851 , filed December 1 5, 2009, which is assigned to the assignee of the present patent application and which incorporated herein by reference.
  • Figure 22 illustrates one embodiment of a system architecture which integrates contacts and calendar data and includes additional modules for generating reminders, filtered recommendations, and for scheduling delivery of greeting cards/stationery.
  • this embodiment includes a calendar service 2201 , a reminder service 2202, a recommendation engine with filtering logic 2203 and a scheduling service 2204.
  • the stationery/card service illustrated in Figure 22 also includes a stationery service calendar database 2210 for storing calendar data, a scheduled orders database 2205 for storing order schedule data, a user database 2210 for storing user data (e.g., user stationery/card preferences, configuration options, etc.), and an accounts database 2250 for storing user account data.
  • the various databases shown in Figure 22 are not actually separate databases but, rather, separate data structures (e.g., tables) within a relational database.
  • the calendar database 2210 stores calendar data for each user of the online stationery/greeting card service 200 and the calendar service 2201 comprises executable program code for managing the calendar data (e.g., reading, adding, deleting, and modifying calendar entries).
  • the calendar service 2201 also acts as an interface to the calendar data to other system modules 212, 2202, 2203, and 2204 (e.g., by exposing a calendar data API).
  • the reminder service 2202 generates graphical or audible reminders of upcoming calendar events and may prioritize the events based on a set of prioritization rules.
  • the calendar events are prioritized chronologically but some events are given relatively higher priority than other events based on the relationship between the user and the
  • card/stationery recipients e.g., the user's parents may be given a higher priority than the user's friends, notwithstanding the event dates. For example, an entry corresponding to Mother's Day may be prioritized at the top of the list even though other events (e.g., Labor Day) are nearer in time.
  • the highest prioritized event is either the next event created by the user (birthday, anniversary, other, etc) OR the next significant Holiday where "significant" holidays are identified in the online
  • the stationery/card system may change over time.
  • the "significant" holidays are Mother's Day, Father's Day, and Christmas.
  • the recommendation engine with filtering logic 2203 generates stationery/card recommendations to the end user based on the user's preferences and allows the user to filter the results according to user- specified filtering criteria.
  • the recommendations are categorized based on certain stationery/card characteristics and visually displayed to the end user in different categories (e.g., "new designs," "with pictures,” etc).
  • the recommendation engine 2203 recommends stationery designs based on the preferences of the user and/or the preferences of the recipient (if known).
  • the scheduling service 2204 implements a scheduling algorithm to ensure that stationery/card orders are delivered within a specified delivery window and/or on a specific date. For example, the user may specify that a stationery/card order is to arrive 3-4 days prior to a recipient's birthday. In such a case, the user does not want the card to arrive to soon (e.g., 2 weeks prior to the birthday) or too late (after the birthday).
  • the scheduling service 2204 evaluates the time required by the print services required to fulfill the order (e.g., thermography, digital press, etc.), the delivery type (e.g., regular mail, FedEx, etc), and the end user preferences.
  • processing time may be based on the type of order.
  • processing time can be 0 days for greeting cards and several days for some stationery cards (e.g., those which require additional review by the online card/stationery service prior to fulfillment).
  • the processing time is based on business days so it must factor in non-business days such as Holidays and Weekends to determine the number of calendar days required for processing.
  • Fulfillment time is the number of days required to print, finish and ship/mail the order and is typically between 1 -3 days (e.g., depending on the printing requirements). This time is based on business days for the fulfillment site which, in one embodiment, may be different than business days for the processing site.
  • Shipping transit time is estimated based on the fulfillment site physical location and the shipping address of the recipient.
  • the shipping transit time is based on business days for the shipping carrier and may be different than business days for the processing site and fulfillment site.
  • the system after computing the sum of the three data points, the system has the number of calendar days required for the order and determines the date that the order must be sent to the processing site in order to be delivered on the specified delivery date.
  • Presentation and session management logic 206 generates the Web-based graphical user interface (GUI) features described below, allowing the end user to view and edit the calendar data, contacts data, filtered card recommendations, and scheduling data. As illustrated in GUI, GUI
  • Embodiments of the Web-based GUI features generated by the presentation and session management logic 206 are set forth below.
  • each of the functional modules illustrated in Figure 22 exposes an application programming interface (API) to provide access to data managed by that module.
  • API application programming interface
  • the contacts manager 212 exposes an API allowing the calendar service 2201 (and other modules) to access contacts data and vice versa.
  • each of the functional modules may access the database(s) 215 directly.
  • the calendar service 2201 automatically generates calendar events based on the contacts data stored within the contacts database 210.
  • the calendar events may include birthdays, anniversaries, and other significant milestones associated with each of the contacts in the contacts database 210.
  • the contacts manager 212 stores relationship data identifying the relationship between the user and each of the contacts in the user's contacts database 210 (e.g., identifying the user's spouse, siblings, parents, children, etc.).
  • the calendar service 2201 uses the relationship data to generate calendar events. For example, if the relationship data identifies the user's mother and father, then the calendar data may associate Mother's Day and Father's Day, respectively, with those contacts. Similarly, if the user is married with children the calendar service may associate his/her spouse with Mother's Day or Father's Day and/or the user's wedding anniversary.
  • the reminder service 2202 automatically generates reminders for upcoming events. For example, if a friend's birthday is approaching, then the reminder service 2202 will notify the user a specified number of days/weeks ahead of time, so that the user has time to send a card.
  • the specific timing of the reminder notifications may be specified by the end user and stored along with other user preferences within the user database 221 1 .
  • the reminders are generated and displayed within a Web-based GUI when the user logs in to the online stationery/card service 200 ⁇ see, e.g., Figure 23) and/or may be sent to the user in the form of an email message or mobile text message. If sent in an email, links to the online stationery/card service website may be embedded within the message to encourage the user to design a new card ⁇ see, e.g., Figure 17 and associated text).
  • the recommendation engine 2203 generates greeting card/stationery recommendations based on the occasion, the identity of the contact associated with the occasion, and the end user's preferences. For example, if a particular contact's birthday is approaching, the recommendation engine 2203 may recommend certain greeting card styles (e.g., modern, classical, etc.) based on the contact's preferences and/or the user's preferences.
  • the filtering logic allows the recommendations to be filtered based on specified variables (e.g., theme, color, card format, card size, number of photos, etc.).
  • FIG 23 illustrates one embodiment of a Web-based graphical user interface ("GUI") for managing a user's contacts, calendars, and greeting card orders.
  • GUI Web-based graphical user interface
  • the GUI is dynamically generated for each user by the presentation and session management logic 206 illustrated in Figure 22.
  • the GUI includes a region 2301 for browsing greeting cards, a region 2305 for managing calendar entries and reminders, a region 2310 for reviewing and managing scheduled orders and previously- sent orders, and a region 2315 for reviewing card recommendations.
  • the browse region 2301 includes a first plurality of selectable hyperlinks 2302 to allow the end user to browse greeting cards based on a specified occasion (e.g., Birthday, irritation, Anniversary, Thank You, St. Patrick's Day, etc.) and a second plurality of selectable hyperlinks 2303 to allow the end user to browse greeting cards based on a specified recipient (e.g., For Her, For Him, For kids).
  • the occasion hyperlinks 2302 are dynamically generated based on the current date and, in one
  • the nearest upcoming holiday is placed at the top of the list.
  • the region for recipients 2303 is subdivided into categories identified by an expandable and contractible icon ("For Him,” “For Her,” “For kids”). Selecting the icon causes a listing of selectable recipients to appear beneath the expandable and contractible icon. For example, selecting the "for Kids” icon causes a listing of children in the user's contacts database to appear with the user's own children at the top of the list (if the user has children).
  • selecting a particular occasion or recipient from the browse region 2301 causes recommendations associated with the selection to appear within the recommendations region 2315.
  • selecting a particular event from the reminder/calendar region 2305 causes recommendations associated with the event to appear within the recommendations region 2315.
  • recommendations are automatically provided for the entry at the top of the user's reminder list 2305.
  • FIG. 24 Additional details associated with the region 2310 for reviewing and managing scheduled orders and previously-sent orders, are provided in Figure 24.
  • a first tab 2402 is provided to allow the user to view scheduled card orders and a second tab 2402 is provided to allow the end user to view previously-sent orders.
  • scheduled or sent cards are displayed below the tab.
  • the sent tab 2402 has been selected thereby displaying a set of thumbnail images 2403 and associated descriptions 2404 of previously-sent greeting cards.
  • a "see all" link is provided to allow the end user to view all scheduled or previously-sent cards.
  • the recommendations region 2315 includes a plurality of selectable drop-down menus 2501 -2504 for filtering the recommendations including a recipient menu 2501 (for identifying a particular recipient), an occasion menu 2502 (for identifying a particular occasion), a theme menu 2503 (for selecting a particular theme), and a style menu 2504 (for selecting a particular stationery/card style).
  • the recommendation engine with filtering logic 2203 shown in Figure 22 responsively filters the set of recommendations displayed for the user.
  • the recipient menu 2501 is populated with entries from the user's contacts database.
  • a set of the users "favorite" stationery/card designs for a particular selected occasion are provided in a region 2505 directly beneath the drop-down menus 2501 -2504. For example, if the occasion selected in the occasion menu 2402 is "birthday” then a set of the user's favorite birthday cards is displayed within region 2505.
  • the recommendations provided to the end user are categorized into groups 2506-2508.
  • the groups include a photo card group 2506 (displaying photo cards only), a group of designs which do not require personalization 2507 (i.e., which can simply be selected and mailed to the end user), and new designs 2508 provided by the online stationery service.
  • FIGS 26a-b illustrate one embodiment of the region for managing a reminder list and calendar.
  • a reminder list tab 2601 and a calendar tab 2602 are provided for selecting between the reminder list and calendar, respectively.
  • the reminder list 2603 includes a plurality of entries populated by the reminder service 2202 using data from the calendar database 2210 and contacts database 210.
  • the reminder list 2603 is ordered chronologically, with the nearest approaching dates at the top of the list.
  • the reminder service 2202 may order a portion of the reminder list 2603 chronologically but may also prioritize certain entries and place them at the top of the list (notwithstanding the chronology). For example, in one embodiment, all birthdays or birthdays for a specified individual may be placed at the top of the reminder list 2603 (within a specified window of time). Similarly, the user may designate certain recipients as "high priority" (e.g., a spouse, parent, etc.). The reminder service 2202 will then place any entries related to this recipient at the top of the list (when the date associated with the entry is within a certain window of time). In one embodiment, any of the variables associated with the contacts in the contacts database may be used to prioritize the reminder list 2601 .
  • the reminder list is broken down by year, with each year having its own expandable and contractible icon.
  • the current year is provided at the top and is initially expanded (2009 in the example). Later and previous years are not initially expanded but will expand when selected by the user.
  • only events on the current day or future dates will be shown in the reminder list.
  • the event that is currently selected (next, or user selected) will have a highlight behind it.
  • the reminder list is initially pre-populated with holiday reminders so it will never be empty. The user may delete holiday reminders if they want.
  • a "card scheduled" icon or link 2607 is provided. Clicking this link will take the user to a Web page showing the details associated with the card/stationery order.
  • An "add an event” button 2620 is also provided to enable the user to add a new stationery/card event to the reminder list.
  • one embodiment of the "add an event" window includes a plurality of data entry fields including an event name field 2801 , an occasion field 2802, a date field 2803, a contact name field 2804, and a link 2805 to change the current reminder scheduling.
  • reminders are scheduled for 2 weeks prior and 2 days prior to the event. Clicking on the "change" link allows the user to modify this reminder schedule.
  • the occasion data field 2802 includes a drop-down menu containing a set of predefined occasions (birthdays, anniversaries, etc.) and the date field 2803 comprises a selectable calendar graphic for selecting a particular date.
  • the selectable calendar graphic is the same or similar to the graphic shown in Figure 26b.
  • the recommendation engine 2203 selects card
  • recommendations for the recommendations region 2315 based on the entry at the top of the list. For example, if the entry at the top of the list is a birthday for a particular recipient, then the recommendations region 2315 will contain recommendations for a birthday for that particular recipient (e.g., with entries from drop down menus 2501 -2502 shown in Figure 25
  • Figure 26b illustrates a calendar GUI generated in response to selection of the calendar tab 2602.
  • the calendar when selected by the user, the calendar opens to the current month with the current day 2612 highlighted. Links 2630 and 2631 are used to jump to previous month or subsequent month, respectively. Graphics with different colors and shapes are used to identify different greeting card events and the status of those events. For example, in Figure 26b, a red diamond 261 1 is used to identify events in the past, a green flag 2613 is used to identify events for which a card has been scheduled, and a yellow triangle 2610 is used to identify events for which a card has not been scheduled.
  • dates with a user-entered event will have a slightly darkened background and the event currently selected is highlighted.
  • a small non-modal hover window 2701 is displayed that shows more details of the event. The event title is on top and the date is beneath. If no card is scheduled, "No card yet! is displayed as shown in Figure 27a but if a card has been scheduled, then a "Card Scheduled” link is provided as shown in Figure 27b. Once again, the "Card Scheduled” link directs the user to an order details Web page containing the details associated with the card order.
  • An edit button (“e") is provided to link the user to the add/edit event window shown in Figure 28 which opens with data fields pre-populated with existing data.
  • a "Delete Reminder” button (“x”) is also provided which allows the end user to delete the calendar reminder.
  • the mouseover window 2703 shows each event on its own line, with the date beneath them all.
  • Each event comprises a hyperlink to the Add/Edit Event screen for that event ( Figure 28).
  • the "add another link” will open the Add event window ( Figure 28).
  • One embodiment of the online stationery/card service 200 allows the user to purchase an online stationery/card subscription plan which allows the user to send a specified number of stationery/cards for a fixed fee.
  • the plan selected by a given user and the current status of the user's account (e.g., number of cards ordered, current payment due date, etc.) is maintained within an accounts database 2250 on the online stationery service 200.
  • FIG. 29 A graphical user interface for selecting among a plurality of different plans is illustrated in Figure 29.
  • This embodiment provides a plurality of selectable options 2901 representing different plans.
  • One option is to purchase on a one-time basis.
  • Other plans illustrated in Figure 29 includes an option of $3.99/year to purchase unlimited cards at $3.49; an option of $9.99/year to purchase unlimited cards at $2.99; and an option of $29.99/year to purchase unlimited cards at $1 .99.
  • Various other/additional options may be provided while still complying with the underlying principles of the invention. For example, one option (not shown) allows the user to pay a flat fee for a specified number of cards during the year at no additional charge.
  • a series of data entry fields 2902 are provided in which the user may enter credit card or other payment or billing
  • additional data entry fields are provided to allow the user to an establish an account with a new User ID (e.g., the user's email address) and a password.
  • a new User ID e.g., the user's email address
  • Figures 30-35 illustrate additional embodiments of a Web- based GUI for stepping the user through the process of selecting an appropriate stationery/card design.
  • This embodiment includes a region 3001 for filtering stationery results by selecting filtering check boxes; a region 3000 for selecting options from drop-down menus; and a region 3003 for displaying the filtered recommended stationery designs.
  • Figure 30 starts with a single drop down menu 3002 within region 3000 for selecting a particular occasion (e.g., birthday, anniversary). Once a particular occasion has been selected, one or more additional dropdown menus are generated to further refine the results 3003.
  • the menu fields are pre-filled with the recipient, occasion and relationship information.
  • Figure 31a illustrates one example in which, after the user has selected "Birthday" as the occasion, a data entry field 3101 is provided asking for a name and a drop-down menu is provided asking for the relationship between the recipient and the user (e.g., mother, wife, sibling, etc.).
  • a drop down menu is displayed below the entry field with matches from the user's contacts database 210 allowing the user to select a recipient with just a few entered characters.
  • a dropdown menu may be provided in lieu of, or in addition to, data entry field 3101 to allow the user to select individuals from the user's contacts database 210.
  • An additional filtering region 3001 is provided to allow the user to filter the cards in the recommendation region further. Details of one embodiment of the filtering region 3001 are provided in Figure 33.
  • the user may select among a plurality of selection boxes grouped into categories including "Theme” (e.g., humorous, sentimental, religious); “Color” (providing a plurality of color options); "Card Format” (e.g., flat, folded); “Card Size” (e.g., 5x7, 5.25x5.25, 3.5x5, etc); “Number of Photos” (e.g., none, or 1 , or more); and “Other” (e.g., new, available as-is (without personalization), best-selling, recently purchased, etc).
  • Theme e.g., humorous, sentimental, religious
  • “Color” providing a plurality of color options
  • Card Format e.g., flat, folded
  • Card Size e.g., 5x7, 5.25x5.25, 3.5x
  • Selecting among any one or more options in the filtering region 3001 causes the filtering logic of the recommendation engine 2203 filter the cards provided in the recommendation region 3003 based on the selection. For example, selecting the 5" x 7" card size option will cause only cards of this size to be displayed.
  • clicking on one of the designs within the recommendations region 3003 takes the end user to the product Web page for that design and allows the user to personalize and send the design. Mousing over one of the designs within the recommendations region 3003 generates a quick view window with additional information related to the design.
  • a pick icon is provided 31 10 to allow the user to add the design to a "my picks" region 3120.
  • Figure 31 b illustrates one embodiment of region 3000 in which, once a specific recipient has been selected ("JD" in the example), cards which the user has previously sent to the recipient are listed within a region 3130 beneath the recipient data entry field.
  • Figure 32 illustrates details for different embodiments of the "my picks” region 3120.
  • Each "my picks" region includes a link 3210 to empty the picks from the region and a link 321 1 to compare designs within the region.
  • a hide link 3212 is also provided to hide the "my picks" region.
  • a scroll bar 3213 appears (as shown in the
  • mousing over a design automatically generates a pop-up window 3214 containing a larger image of the design and a set of selectable options 3215 including
  • Figure 34 provides a detailed view 3401 of the card from the front and Figure 35 provides a detailed view 3501 of the inside of the card.
  • the front view window includes a "see inside” link 3402 and the inside view window includes a "see front” link 3502 for moving between the two different views.
  • both views include an "add to cart” button 3404 which will add the design to the user's shopping cart and a "personalize” button 3403 which will take the user to the personalization pages such as those illustrated in Figures 36-39.
  • Figure 36 illustrates a first window displayed when the user selects the "personalize" button 3403.
  • a data entry field 3601 for the recipient's name 3601 and a data entry field 3602 for the recipient's birthdate are provided.
  • the recipient's name may be selected from a list generated from the user's contacts database or autofilled as the user enters text. The birthdate may then be automatically filled in using data associated with that contact.
  • a continue button 3603 Upon selection of a continue button 3603, the user is taken to the GUI shown in Figure 37, which shows an image of the front of the selected card and an indication of those text regions 3703 which are editable.
  • a set of selectable links 3704, 3705, and 3706 are provided at the top of the GUI to jump between the front, inside and back of the card, respectively.
  • a photos region 3701 provides a set of photos which may be added to the card (e.g., by clicking and dragging into a designated region). The photos may be local to the user (e.g., on the user's hard drive) and/or may have been previously uploaded to the online stationery/card service 200.
  • a selectable button 3702 is provided to add and/or remove photos from the set (e.g., by highlighting a photo and selecting the button to remove).
  • Figure 38a illustrates the inside of an exemplary card design. Additional regions 3802 and 3803 for personalized text are provided as well as a region 3804 for typing a signature. In one embodiment, the text entry region 3803 is initially opened with a message which the user may edit. Additional message options may be provided and, in one embodiment, a forward arrow 381 1 and a backward arrow 3810 are provided for scrolling through the additional message options. A link 3812 is provided to allow the user to visually display all available messages within a single window.
  • Figure 38b illustrates an exemplary window for displaying a list 3850 of available messages. Each entry in the list comprises the text of the message.
  • a Use This Message button 3851 is generated for selected entries within the list. Selecting the button causes the text for the message to be incorporated into the text window 3803, which may then be edited by the user.
  • Figure 38b also illustrates a set of filtering options 3852 for filtering the results in the list of available messages 3850.
  • a link 3805 is provided for uploading a user's signature.
  • selecting the link 3805 generates a dialog box which allows the user to move through folders and identify a signature file (e.g., a JPEG, Bitmap, or other signature file type) on the user's computer.
  • the signature is stored in the user account database and retrieved for subsequent card personalization.
  • a photo region 3801 is provided into which photos from region 3701 may be clicked and dragged. The selected photo will then be visually displayed within the photo region 3801 .
  • Figure 39 illustrates the back of the exemplary card design with an additional photo region 3901 and an additional text entry region 3905. These two regions comprise the "Personal Seal" for the user and are stored in the user account database and retrieved for subsequent card personalization.
  • bar code 3902 and/or a URL 3903 are provided to allow the recipient to connect to a unique dynamically generated page representing a relationship between the end user and the recipient(s).
  • the Web page may include, for example, pictures, contact data, public address data, personal messages, and other information shared between the user and recipient(s).
  • the user is permitted to enter a personal URL on the back of the card (e.g., in the place where [code] is indicated in Figure 39).
  • Figures 40-42 A series of preview pages are generated such as those shown in Figures 40-42.
  • a set of selectable links 4001 , 4002, and 4003 are provided at the top of the GUI to jump between a preview of the front, inside and back of the card, respectively.
  • Figure 40 illustrates a preview of the front of the card 4010
  • Figure 41 illustrates a preview of the middle of the card 41
  • Figure 42 illustrates a preview of the back of the card 4210.
  • the user is asked to verify the content of each portion of the card prior to completing the purchase. In Figures 40-42, this is
  • a verification check box 401 1 located adjacent to the preview image of each portion of the card. To complete the order, the user must select the verification check box next to each preview image for each card portion.
  • Figure 43 illustrates one embodiment of a Web-based graphical user interface for designing an envelope to be sent directly to the recipient of the card.
  • a design template for the envelope is stored within the stationery/card & envelope design templates 230 on the stationery/card service database 215, as indicated in Figure 22.
  • Two selectable tabs are provided at the top of the Web-based GUI - one for sending the card directly to the recipient 4302 and another for sending the card directly to the end user 4301 .
  • tab 4302 is selected, thereby producing an image of the envelope 4300 with a first plurality of data fields for entering the user's return address information 4310 and a second plurality of data fields for entering the name and mailing address of the recipient 431 1 .
  • a contacts hyperlink 4312 is provided adjacent to the second set of data entry fields 431 1 to provide the user with access to the user's contacts data.
  • a contacts list 4601 shown in Figure 46 appears, from which the user may select a particular contact from the contacts database.
  • radio buttons are used to select a particular contact from the list.
  • various other types of graphical selection elements may be used while still complying with the underlying principles of the invention.
  • the contact name is autofilled from the contacts database as the user enters text.
  • Figure 43 also illustrates a link 4313 which the user may select if he/she does not know the address of the recipient.
  • a data entry field 4501 is provided, as shown in Figure 45, in which the user may enter the recipient's email address along with a text entry region 4510 in which the user may compose an email message to the recipient requesting the recipient's email address.
  • a "choose" link 4502 is provided allowing the user to select the email address via the user's contacts database.
  • the online stationery/card service sends an email to the recipient requesting the recipient's address
  • the request email includes a link 1601 which will connect recipient to the online stationery service 200 to enter the address
  • Figure 44 illustrates the Web-based GUI with the "send to me" tab 4301 selected.
  • This embodiment includes a quantity selector 4400 to indicate the number of cards; the user's name and mailing address 4401 (which is filled in automatically by the online stationery service if the user has an account and is logged in); a selection box 4402 to indicate that the user wants his/her return address printed on the envelopes; a selection box 4403 to indicate that the user wants stamps on the envelopes; a selection box 4404 to indicate that the user wants the recipient's address(es) printed on the envelopes; a delivery date field 4405 to indicate a date on which the card should be delivered (including a calendar widget, such as those discussed above); and a selection box 4406 for specifying an additional electronic message to be sent to the recipient.
  • a drop-down menu is associated with selection box 4406 from which the user may specify different electronic message types (e.g., email, instant message, SMS, etc).
  • Figure 47 illustrates a Web-based GUI generated when the user chooses to send the recipient an electronic message (e.g., by selecting boxes 4406 or 4322).
  • a data entry field 4701 allows the user to specify an email address or other electronic address (dependent on the particular type of electronic message specified by the end user).
  • the user specifies a date on which the electronic message is to be sent in data field 4702. To do so, the user may operate a calendar GUI/widget 4703 such as those described above.
  • the user is also provided with the option to specify an image 4705 and a text message within text entry box 4704. Selecting the "send" button then causes the electronic message to be sent on the specified date and the paper card to be sent for delivery on or before the date entered in field 4320.
  • Dynamic HTML a collection of technologies used together to create interactive Web sites by using a combination of a static markup language (e.g., HTML), a client-side scripting language (e.g., JavaScript), a presentation definition language (e.g., CSS), and the Document Object Model (“DOM").
  • a static markup language e.g., HTML
  • a client-side scripting language e.g., JavaScript
  • a presentation definition language e.g., CSS
  • DOM Document Object Model
  • the Web server used to implement the embodiments of the invention is a Ngnix, Apache web server running on Linux with software programmed in PHP using a MySQL database.
  • Embodiments of the invention may include various steps as set forth above.
  • the steps may be embodied in machine-executable instructions which cause a general-purpose or special-purpose processor to perform certain steps.
  • these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
  • Elements of the present invention may also be provided as a machine-readable medium for storing the machine-executable instructions.
  • the machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media or other type of media/machine-readable medium suitable for storing electronic instructions.
  • the present invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
  • a remote computer e.g., a server
  • a requesting computer e.g., a client
  • a communication link e.g., a modem or network connection

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Game Theory and Decision Science (AREA)
  • Data Mining & Analysis (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A computer implemented system and method are described in which stationery/card calendar events are automatically generated in a user's calendar database based on the contacts data stored within a contacts database, the stationery/card calendar events including milestones associated with each of the contacts. At least some of the calendar events are generated based on a relationship between the user and each of the contacts. In response to the user selecting one of the calendar events, the end user is provided with a set of selectable stationery templates related to a selected event from the calendar database. In response to user selection, personalized stationery is generated with the selected template, address information is identified from the contacts database for contacts to receive the personalized stationery, and a print job is generated to print the personalized stationery/cards and envelopes containing the address information for the user-selected contacts.

Description

SYSTEM AND METHOD FOR MANAGING CONTACTS
AND CALENDARS WITHIN AN ONLINE CARD SYSTEM
BACKGROUND
Claim to Priority
[0001] This application is a continuation-in-part of the following co-pending U.S. Patent Applications:
[0002] U.S. Application Serial No. 12/638,819, filed December 15, 2009 entitled, "System And Method For Managing Contacts Within An Online Stationery System"; and
[0003] U.S. Application Serial No. 12/638,833, filed December 15, 2009 entitled, "System And Method For Managing Contacts Within An Online Stationery System"; and
[0004] U.S. Application Serial No. 12/638,844, filed December 15, 2009 entitled, "Graphical User Interface, System And Method For Managing Contacts Within An Online Stationery System".
Field of the Invention
[0005] This invention relates generally to the field of network data
processing systems. More particularly, the invention relates to an improved architecture and method for managing contacts and calendars within an online stationery system.
Description of the Related Art
[0006] Web-based systems for designing stationery such as wedding invitations, birth announcements, thank you cards, birthday party invitations, etc, are currently available over the Internet. These services allow a user to enter a personalized message on a stationery template via a Web browser. The service then prints the stationery with the personalized message and mails the printed stationery and envelopes to the end user. The end user then mails the stationery to one or more recipients. [0007] Some online stationery services will also mail stationery directly to recipients on behalf of the end user. In order to do so, the user must provide the stationery service with the names and addresses of the recipients. Figures 1a-c illustrate screenshots from one particular stationery Website (www.qreetz.com) which provides options for manually entering a new name/address of a recipient 100 or importing a group of addresses from an Excel spreadsheet 101 . As illustrated in Figure 1 b, upon selecting an Excel spreadsheet from the user's local hard drive, the user is prompted with a plurality of drop-down menus 102 to identify the data fields for the address lines. Once the import is complete, a list of recipients 103 is provided as shown in Figure 1 c. The end user is permitted to delete names from the list (by selecting a trash icon) but no other mechanism is provided for editing or otherwise managing the list of recipients on the online stationery service.
[0008] Consequently, what is needed is an improved system and method for importing and managing contacts within an online stationery service.
SUMMARY
[0009] A system and method are described for managing a contacts and calendar database within an online stationery/card service. For example, a system implemented by an online stationery/card service for personalizing and sending non-electronic cards is described, the system comprising: a stationery/card contacts module to manage an end user's contacts data stored within a contacts database, the contacts data including relationship data specifying a relationship between the end user and one or more of the contacts; a stationery/card calendar module to automatically generate stationery/card calendar events in the user's calendar database based on the contacts data stored within the contacts database, the stationery/card calendar events including milestones associated with each of the contacts, wherein at least some of the calendar events are generated based on the specified relationship between the user and each of the contacts; a stationery/card personalization engine executed in response to the user selecting one of the calendar events, the stationery personalization engine providing the end user with a set of selectable stationery templates related to a selected event from the calendar database, the stationery
personalization engine receiving an indication that an end user has selected a particular one of the stationery templates, and generating personalized stationery with the selected template based on user input; the
stationery/card service contacts manager identifying address information for each of a set of user-selected contacts to receive the personalized stationery; and a print module to generate and transmit a print job to print the personalized stationery/cards and envelopes containing the address information for the user-selected contacts.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] A better understanding of the present invention can be obtained from the following detailed description in conjunction with the following drawings, in which:
[0011] FIGS. 1a-c illustrates a prior art stationery service in which stationery recipients are identified.
[0012] FIG. 2 illustrates a system architecture according to one embodiment of the invention.
[0013] FIG. 3 illustrates a computer-implemented method according to one embodiment of the invention.
[0014] FIG. 4 illustrates a graphical user interface (GUI) for importing various different online and offline contact databases.
[0015] FIG. 5 illustrates one embodiment of a GUI window for importing contacts from different contact groups.
[0016] FIG. 6 illustrates a graphical user interface for associating imported contacts with data fields.
[0017] FIG. 7 illustrates one embodiment of the invention for merging existing and imported contacts.
[0018] FIG. 8 illustrates one embodiment of an address book for viewing and managing a contacts database. [0019] FIG. 9 illustrates households comprised of multiple contacts according to one embodiment of the invention.
[0020] FIG. 10 illustrates one embodiment of a GUI for incorporating contacts into households.
[0021] FIG. 11 illustrates another embodiment of a GUI for incorporating contacts into households and/or merging contacts.
[0022] FIG. 12 illustrates a window displaying household details according to one embodiment of the invention.
[0023] FIG. 13 illustrates a window displaying contact details according to one embodiment of the invention.
[0024] FIG. 14 illustrates windows for confirming mailing addresses according to one embodiment of the invention.
[0025] FIG. 15 illustrates GUI features employed in one embodiment of the invention for sending address request email messages.
[0026] FIGS. 16a-b illustrate exemplary address confirmation requests transmitted to contacts in one embodiment of the invention.
[0027] FIG. 17 illustrates reminder emails transmitted to an end user according to one embodiment of the invention.
[0028] FIGS. 18a-b illustrate GUI features employed in one embodiment of the invention for selecting new addresses and addresses from within a contacts list.
[0029] FIG. 19 illustrates GUI features employed in one embodiment of the invention for selecting options for directly mailing stationery to contacts and for mailing stationery to the end user of the stationery service.
[0030] FIG. 20a-c illustrate GUI features for selecting default and custom messages to be printed on stationery and mailed contacts within an address book.
[0031] FIG. 21 illustrates a method according to one embodiment of the invention for processing a stationery order.
[0032] FIG. 22 illustrates one embodiment of a system architecture which integrates contacts and calendar data and includes a reminder service and a recommendation engine. [0033] FIG. 23 illustrates a Web-based graphical user interface ("GUI") for managing stationery/greeting card contacts, calendars, reminders, recommendations and for selecting and personalizing stationery/greeting cards.
[0034] FIG. 24 illustrates a Web-based GUI having two different tabs for reviewing scheduled and previously sent greeting cards.
[0035] FIG. 25 illustrates a Web-based GUI for filtering and selecting greeting cards among a plurality of templates.
[0036] FIG. 26a-b illustrates a Web-based GUI comprising a reminder list and a greeting card calendar.
[0037] FIG. 27 illustrates a Web-based GUI comprising a greeting card calendar.
[0038] FIGS. 28 illustrates a Web-based GUI for adding a new greeting card event.
[0039] FIG. 29 illustrates a Web-based GUI comprising a plurality of selectable options for greeting card subscriptions.
[0040] FIG. 30 illustrates a Web-based GUI comprising filtering logic for filtering greeting card templates.
[0041] FIG. 31 illustrates a Web-based GUI for managing user selections of greeting card templates.
[0042] FIG. 32 illustrates a Web-based GUI for selecting greeting card templates for a particular recipient and occasion.
[0043] FIG. 33 illustrates a Web-based GUI comprising a plurality of selectable filtering options for selecting a greeting card.
[0044] FIGS. 34-35 illustrates a Web-based GUI providing a detailed view of a stationery template.
[0045] FIG. 36 illustrates a Web-based GUI for collecting information related to a greeting card recipient.
[0046] FIGS 37-39 illustrate a Web-based GUI for personalizing a greeting card template.
[0047] FIGS. 40-42 illustrates a Web-based GUI for previewing a
personalized greeting card. [0048] FIG. 43-45 illustrates a Web-based GUI for selecting between sending a greeting card to the card sender or card recipient and for personalizing a greeting card envelope.
[0049] FIG. 46 illustrates a Web-based GUI for selecting among a list of contacts to whom to send a personalized greeting card.
[0050] FIG. 47 illustrates a Web-based GUI for selecting an electronic message to be sent in addition to a personalized non-electronic greeting card.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
[0051] Described below is a system and method for managing contacts and calendars within an online stationery/card system. Throughout the description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form to avoid obscuring the underlying principles of the present invention.
[0052] It should be noted that the terms "stationery," "cards" and "greeting cards" are used interchangeably herein. For example, the term "stationery" may refer to greeting cards (e.g., holiday cards, birthday cards), invitations (e.g., wedding, birthday invitations, etc), and any other form of nonelectronic communication and/or images printed on a medium (e.g., paper, fabric, etc) using any form of printing device.
[0053] Figure 2 illustrates one embodiment of a system architecture for importing and managing contacts within an online stationery service 200 and Figure 3 illustrates a corresponding method. One embodiment of the online stationery service 200 merges contact data from multiple different sources and then converts the contact data into a format which is optimized for online stationery mailing functions. A brief overview of the method illustrated in Figure 3 will now be provided within the context of the architecture shown in Figure 2. It should be noted, however, that the underlying principles of the invention are not limited to the specific
architecture shown in Figure 2.
[0054] At 301 , a contacts import module 209 manages the importation of contacts from various local and/or online contact databases identified by the end user. In the illustrated embodiment, the contacts import module 209 comprises a format conversion module 204 and a conflict detection and resolution module 205. As shown in Figure 2, the format conversion module 204 reads contacts data from online contacts databases 201 -202; local contacts databases 203 (i.e., "local" to the user's client computer 240); and/or existing contacts 21 1 already stored on the online stationery service 200 (e.g., the end user may have already established an account on the online stationery service 200 to send stationery and may have entered information for a set of contacts 21 1 ). If the online/local contact formats are supported, determined at 302, then at 303, the format conversion module converts the contacts to a format optimized for use on an online stationery service 200. To perform the format conversion, the format conversion module 204 parses the contact data in source data structure (e.g., the CSV file, vCard file, etc), extracts the data, and assigns the data to appropriate data fields in the new data structure. Various well known techniques for converting data from one format to another may be employed by the format conversion module 204. Once converted (and following conflict detection described below), the contacts data is stored in its new format within a contacts database 210 on the stationery service. Various features associated with this new data format are described in detail below (see, e.g., Figures 12-20c and associated text).
[0055] At 304, a conflict detection and resolution module 205 merges the local and/or online contacts with existing contacts 21 1 already stored on the online stationery service 200 and detects any conflicts which may result from the merge operation. A conflict may result if one or more contacts being imported are already stored within the existing contacts database 21 1 . In such a case, the conflict detection and resolution module 205 resolves the conflicts at 305 using a set of conflict resolution rules (described below). Once all conflicts have been resolved, the data is persisted within the contacts database 210 and made accessible to end users via the stationery service contacts manager 212. In one embodiment, the contacts database 210 is implemented using mySQL. However, various different database formats may be employed while still complying with the underlying principles of the invention (e.g., Microsoft SQL, IBM SQL, etc).
[0056] At 307, the user identifies one or more "households" within the stationery service contacts database 210. As described below, households are specialized groups of contacts who live at the same address. The concept of a "household" is a particularly useful abstraction for an online stationery service 200 which mails stationery on behalf of a user.
[0057] As illustrated in Figure 2, in one embodiment, all operations to the stationery service contacts database 210 occur through the stationery service contacts manager 212. That is, the stationery service contacts database 210 is used for persistent storage of contacts data containing the features described herein and the stationery service contacts manager 212 is the application-layer program code used to perform operations on the stationery service contacts database 210 as described below. The presentation and session management logic 206 comprises the program code for maintaining user sessions and for dynamically generating Web pages containing (among other things) the graphical user interface (GUI) features for manipulating contacts data as illustrated herein.
[0058] Returning to the method of Figure 3, at 307, the user selects and personalizes a stationery design. In one embodiment, this is accomplished with a stationery personalization engine 220 such as that described in copending application entitled SYSTEM AND METHOD FOR DESIGNING AND GENERATING ONLINE STATIONERY, Serial No. 12/188,721 , filed August 8, 2008, which is assigned to the assignee of the present application and which is incorporated herein by reference. In one embodiment, the stationery personalization engine 220 performs all of the functions described in the co-pending application as well as the additional functions described herein (e.g., selecting contacts/households for a stationery mailing via the stationery service contacts manager 212, selecting between a default message or a personal message for the contacts/households, etc).
[0059] At 308, the end user creates a default message to be used for a stationery mailing and, at 309, the contacts and/or households for the mailing are identified by the end user. If the user wishes to include a personalized message in lieu of the default message for one or more contacts/ households, determined at 310, then the user selects a
contact/household at 31 1 and enters the personalized message for the contact/household at 312. If any additional personalized messages are to be included, determined at 313, then steps 31 1 and 312 are repeated until all personalized messages have been entered.
[0060] At 314, all of the information related to the stationery order, including the selected stationery design, default messages, personalized messages and associated contacts and households are formatted for printing by a print module 250 which generates a print job 255. The formatting may include converting the stationery data mentioned above into a format usable by a particular printer. By way of example, a letter press printer may require different formatting than a digital press printer. In one embodiment, the specifications for the print job are encapsulated as metadata in an
Extensible Markup Language ("XML") document and transmitted to an external print service 252. In one embodiment, the XML document includes a hyperlink (e.g., a URL) to the formatted print job 255 on the online stationery service 200. The print service 252 then accesses the print job by selecting the hyperlink. Regardless of how the print job is accessed, at 315, the formatted print job 255 is transmitted to either an internal printer 251 or an external print service 252 (e.g., over the Internet). Once printing is complete, the online stationery service 200 or the print service 252 mails the stationery to the contacts and/or households identified by the end user.
[0061] Having provided an overview of the method set forth in Figure 3 and the architecture illustrated in Figure 2, various specific details associated with managing contacts, generating print jobs and mailing stationery from an online stationery service 200 will now be provided. It should be noted, however, that the underlying principles of the invention are not limited to the particular architecture shown in Figure 2 or the particular method set forth in Figure 3.
[0062] In one embodiment, the different graphical user interface (GUI) features described herein are generated by presentation and session management logic 206 executed on the online stationery service. In one embodiment, various well known functional modules associated within the presentation and session management logic 206 are executed to receive input, process the input, interact with one or more other modules shown in Figure 2, and dynamically generate Web pages containing the results. The Web pages are then transmitted to the user's client computer 240 and rendered on a browser 245. The Web pages may be formatted according to the well known HyperText Markup Language ("HTML") or Extensible HTML ("XHTML") formats, and may provide navigation to other Web pages via hypertext links. One embodiment utilizes Dynamic HTML ("DHTML"), a collection of technologies used together to create interactive Web sites by using a combination of a static markup language (e.g., HTML), a client-side scripting language (e.g., JavaScript), a presentation definition language (e.g., CSS), and the Document Object Model ("DOM").
[0063] Turning now to Figure 4, in one embodiment, the user is prompted to identify online and offline contacts databases via a series of hyperlinks 401 - 402 (see, e.g., step 302 in Figure 3). In the example shown, the three online links 401 include Facebook, Gmail and Yahoo! contacts. A set of five links 402 are provided for importing contacts from different types of CSV files and a set of two links 403 are provided for importing contacts from different vCard files.
[0064] In one embodiment, when importing online address books such as those available from Facebook, Gmail and Yahoo!, the user is asked to provide authentication data such as a user name and a password. The online stationery service 200 then uses the authentication data to log in to the online service and retrieve the contacts list on behalf of the user. [0065] Figure 5 illustrates a graphical user interface (GUI) window generated in one embodiment of the invention following the selection of a particular contact database 201 -203. In one embodiment, the user may select contacts from different, predefined contact groups 501 -503. In the example shown in Figure 5, the groups include "all contacts" 501 ,
"colleagues" 502, and several "smart groups" 503 (described in detail below). A set of available contacts 505 to be imported is displayed within region 510. Each contact has a check box associated with it to indicate whether the contact should be included in (or excluded from) the import. In one embodiment, the default state of the check boxes is "unchecked" and the user must manually select contacts by checking the corresponding check boxes. In addition, in one embodiment, the contacts which correspond to contacts already stored in the user's address book 21 1 on the online stationery service 200 are identified by the conflict detection and resolution module 205 and highlighted (e.g., bolded in Figure 5). In one embodiment, "matches" to existing contacts are those contacts which have the same name AND one of the following: same email, phone, date, OR mailing address.
[0066] Check-boxes 51 1 and 512 are also provided to import group names with the contacts and to add the imported contacts to a specific group within the user's existing address book 21 1 . The specific group is identified via a drop-down menu containing a list of available groups. Once the set of contacts are selected within region 510 the user imports the contacts by selecting an import button 515.
[0067] Figure 6 illustrates a GUI window which allows the user to review and confirm field assignments to be used for the imported contacts data. A plurality of "field type" drop-down menus 601 are provided to allow the user to select the fields to be used. The corresponding values for each contact are displayed within a plurality of rows 602, as illustrated.
[0068] As mentioned above, a conflict detection and resolution module 205 identifies existing contacts 21 1 which match contacts being imported from the various sources 201 -203 and attempts to resolve any conflicts which may exist between the data. In one embodiment, each conflict is identified to the end user and the user is prompted to specify how to resolve the conflict. For example, Figure 7 illustrates a Web-based graphical user interface presented to the user which shows the contact data contained in the existing contacts database 701 , the contact data to be imported 702, and the merged contact data which would result from the import 703. In one embodiment, the differences between the existing and imported data is highlighted. For example, in Figure 7, data found in the existing database but not the database to be imported is highlighted with a first color (e.g., orange); and data found in the contacts database to be imported but not the existing contacts database is highlighted with a second color (e.g., green). Thus, the merged contact data 703 is shown with some entries 712, 715 highlighted in the first color and some entries 71 1 , 713, 714 highlighted in the second color.
[0069] As shown in Figure 7, some of the conflicting data is combined into corresponding fields within the merged contact 703. For example, in Figure 7, the "notes" field is appended to include notes 715, 716 from both the existing and the imported contacts. However, certain data fields cannot be merged in this manner. For example, if the existing contact 701 has a different home address than the imported contact 702, then the conflict detection and resolution module 205 must select one of the two addresses as the primary home address. In one embodiment, when a conflict of this nature occurs, the default operation of the conflict detection and resolution module 205 is to keep the data from the existing contact 701 and to append the data from the imported contact into the notes field of the merged contact 703. For example, in Figure 7, the nickname ("Al"), title ("Engineer") and company ("Tiny Prints") are selected from the existing contact 701 and the nickname ("DJ Albert"), title ("DJ") and company ("Mr. DJ Productions") from the imported contact 702 are appended within the notes field 717 of the merged contact 703.
[0070] In one embodiment, the user is given the option to select the existing version 701 , the imported version 702 or the merged version 703 using a mouse, keyboard, and/or other cursor control device. A checkbox option 720 is also provided to allow the user to apply the choice to all remaining contacts to be reviewed. If the checkbox 720 is not selected, the user will review and select each conflict individually.
[0071] Figure 8 illustrates a graphical user interface (GUI) for viewing and managing contacts stored within the stationery service contacts database 210 according to one embodiment of the invention. The GUI includes a first region 810 for listing various contact groups; a second region 81 1 for listing contacts and/or households associated with the currently selected group; and a third region 812 for performing operations related to selected contacts and/or households. As mentioned above, the groups listed within the GUI include an "all contacts" group 801 , user-specified groups 802 and one or more "smart groups" 803 which are automatically generated by the stationery service contacts manager 212. The smart groups 803 are groups of contacts and/or households arranged according to upcoming
chronological events. For example, in Figure 8, the smart groups include a "reminders" group which includes reminders for contacts and/or households arranged in chronological order; an "upcoming birthdays" group comprised of contacts arranged in order of upcoming birthdays; an "anniversaries" group comprised of contacts arranged in order of upcoming anniversaries; and a "recent purchases" group comprised of contacts arranged in an order of stationery purchases made by the end user. By way of example, when the "upcoming birthdays" group is selected in region 810, a listing of contacts is provided in region 81 1 in a chronological order of upcoming birthdays (e.g., with the contact with the first upcoming birthday at the top of the list). In one embodiment, the end user is provided with the ability to add smart groups based on any date-based variable associated with the contacts database. Other types of smart groups may include "requested addresses" containing a listing of those contacts for whom mailing addresses have been requested (as described below); a "recently confirmed" smart group containing a listing of those contacts who have responded and confirmed their addresses; and a "last import" smart group comprised of those contacts included in the last contacts import.
[0072] Multiple contacts and/or households may be highlighted in region 81 1 (e.g., by holding CTRL and selecting with a mouse) and processed by selecting options in region 812. For example, a drop-down menu of available groups 823 allows the user to associate the highlighted contacts with a group. An export button 821 allows the user to export the contacts to a file (e.g., a CSV or vCard file). A "merge into household" button 820, when selected, allows the end user to create a new household comprised of the selected contacts. Upon selection of this button, the end user is presented with a field for entering a new household name. As illustrated in Figure 9, once a new household is created, the household 901 is displayed within the second region 81 1 of the GUI along with other contacts and/or households. As illustrated, the contacts 902 associated with the household are displayed beneath the household entry 901 and indented.
[0073] As illustrated in Figure 10, in one embodiment of the GUI, when a household entry 1001 is selected from within the second region 81 1 of the GUI, contacts listed in the second region may be clicked on and dragged into a household detail region 1002 to add the contacts to the household. Multiple contacts may be selected by selecting the CTRL key and
highlighting the contacts with a mouse or other cursor control device.
[0074] As illustrated in Figure 11 , in one embodiment, a user may select one or more contacts 1 105 (e.g., by holding down the CTRL key) and drag the contacts over another contact 1 106 in the contact list. Doing so will provide the user the option to either merge the contacts (by selecting a merge button 1 101 ) or to create a new household with the contacts (by selecting a "new household" button 1 102).
[0075] Returning to Figure 8, region 812 also includes a selectable option to "send cards" to the contacts selected in region 81 1 . Selecting this option causes the stationery personalization engine 220 to begin the stationery design process using contacts identified by the stationery service contacts manager 212 (e.g., starting at step 309 in Figure 3). For example, the user will be provided the option to select a stationery template and enter a default message and/or a personalized message for certain contacts. After the mail order is completed, the print module 250 will transmit the stationery order to one of the internal printers 251 or the external print service 252 and, after printing, the stationery order will be mailed to the selected contacts.
[0076] Figure 12 illustrates one embodiment of a household details window which is generated by, for example, double-clicking on the household within the contacts/households region 81 1 . The window includes a first region 1201 for listing the contacts within the household, with hyperlinks linking to each of the contacts, a second region 1202 for displaying upcoming dates associated with the members of the household (as well as links 1203, 1204 for sending a card to each of the household members). In addition, a dropdown menu 1210 is provided which is automatically populated with all of the different addresses associated with each of the household members. As shown at 121 1 , each entry in the drop-down menu includes an address, an indication of the contact associated with the address and a classification of the address type (e.g., work, home, etc). Links 1205-1207 are provided and dynamically updated for each address to map the address 1205 (e.g., by linking to Google Maps); to validate the address 1206 (as described herein); and to send a card 1207 (as described herein). In circumstances where a single address is associated with all of the household members, the dropdown is not provided as indicated at 1212.
[0077] Figure 13 illustrates a window for displaying and manipulating contact details according to one embodiment of the invention. In one embodiment, the contact details window is generated in response to a user double-clicking on a contact in region 81 1 . Multiple addresses are provided for the contact and, for each address, a link is provided to "validate" the address 1301 and 1303. In one embodiment, to validate the address, the stationery service contacts manager 212 transmits a query containing the current address to an address validation service such as those available from the US postal service (USPS). As illustrated in Figure 14, in one embodiment, in response to selection of the "validate" link, the USPS either suggests corrections, as indicated by highlighted regions 1410 of selection box 1401 or validates the address, as indicated in selection box 1402.
[0078] In addition, a "send card" link 1302, 1304 is provided for each address in the contact details window which initiates the process of selecting, designing and mailing stationery for the contacts associated with the address (e.g., as described above with respect to the "send card" button in region 812 of Figure 8).
[0079] In addition, a "reminder" region 1315 is provided within the contact details window to provide reminders of upcoming dates such as birthdays and anniversaries for contacts within the user's contacts list. The layout within the region comprises an indicator of the type of reminder (e.g., birthday), followed by the date of the reminder, followed by a brief description (e.g., 40 years old in 6 months). In one embodiment, certain contact data such as birthdays and anniversaries are identified by the stationery service contacts manager 212 as reminders. In addition, links are provided 1305,1307 to configure automated reminders for the end user. For example, in one embodiment, upon setting a reminder for a particular event, the stationery service contacts manager 212 will transmit an email, instant message, or SMS message to remind the end user of the event and/or will update the user's calendar with the event. Various other types of reminders may be employed while still complying with the underlying principles of the invention. In addition, for each reminder, a "send card" link 1302, 1304 is provided to initiate the process described above to design and mail stationery to the contact associated with the reminder.
[0080] In addition, a purchase history region 1320 is provided within the contact details window to display the recent purchase history of the end user. As illustrated, entries within the purchase history include images of the stationery designs 1309 and 1310 recently purchased by the end user, along with an indication of the stationery type and message, and the date that the stationery was purchased.
[0081] In addition to using the address validation techniques described above, one embodiment of the invention confirms current mailing addresses by transmitting email messages to contacts. As illustrated in Figure 15, in response to the selection of a particular contact, a window 1501 is
presented asking the end user if an email request should be sent. A default request message is used unless the user selects the checkbox for adding a personal message. If this checkbox is selected a window such as 1502 appears to allow the user to enter a personal message. In one embodiment, upon selection of "add a personal message" check box, the message field is pre-populated with the default message, which may then be edited by the user.
[0082] A GUI for selecting multiple contacts is illustrated at 1503. In this embodiment, contacts to receive the email request are selected via checkboxes. In one embodiment, certain contacts who have specifically asked not to receive requests and/or for whom the user does not have an email address are grayed out (thereby preventing selection via a checkbox). User selection of a "send request(s)" button from 1503 or a "send request" button within window 1501 will cause the confirmation request email to be sent to the selected contacts.
[0083] Both window 1501 (for a single request) and 1503 (for multiple requests) include a "view sample email" link to display a sample request email. The sample request email may be displayed in a new window, a new DHTML layer, or as an in-line DIV (HTML <div> element).
[0084] Figure 16a illustrates one embodiment of a confirmation request email to be sent to contacts for whom no address currently exists in the user's address book. A hyperlink 1601 may be selected from within the email message to open a Web page on the online stationery service 200 and enter the contact's address information. In one embodiment, the URL 1601 is unique for each individual contact (e.g., containing a sequence of characters uniquely identifying the contact to whom the email was sent).
[0085] Figure 16b illustrates one embodiment of a confirmation request email to be sent to contacts for whom an address currently exists on the online stationery service 200. In this embodiment, the address which is stored on the online stationery service 200 is provided within the body of the email 1602. A first hyperlink 1603 is provided to allow the contact to confirm that the address information is correct and a second hyperlink 1604 is provided to allow the contact to review and update the address information and/or other personal information related to the contact. Selection of the first hyperlink 1603 generates a thank you message indicating that the current address information has been confirmed and selection of the second hyperlink 1604 generates a series of data entry fields within a Web page for the user to update the address information. In one embodiment, the data fields are pre-populated with the existing address information.
[0086] In addition to providing reminders within the address book window shown in Figure 8 and the contact details window shown in Figure 13, one embodiment of the stationery service contacts manager 212 will
automatically generate reminder emails for the end user. Figure 17
illustrates one such reminder email in which upcoming dates are listed in chronological order and, for each reminder, links are provided to generate a subsequent reminder 1701 -1702 (e.g., "remind me again in 3 days"). In addition, for each reminder, a "send a card" link 1703-1704 is provided which, when selected, initiates the stationery design process on the online stationery service 200 for the associated contact(s) (as described above). In addition, a secondary listing 1705 is provided for those contacts for which the user has not specifically requested a reminder.
[0087] As mentioned above, in one embodiment of the invention, the online stationery service 200 will mail stationery to selected contacts on behalf of the end user. Figures 18a-b illustrate one embodiment of the invention for selecting contacts for a stationery mailing. Two tabs 1801 -1802 are provided for specifying contacts. The first tab 1801 generates a series of data entry fields 1805 for specifying a new contact name and address (for someone not found in the user's address book). The second tab 1802 provides a list of selectable contacts 1804 from the user's address book 210. A drop-down menu 1803 is provided to select specific groups of contacts to be displayed within the list 1804. Individual contacts within the list 1804 are selected via check boxes, as illustrated. Regardless of whether the contacts are entered manually or selected from the address book, the user selects an "add" button 1807 to add the contact information to the set of contacts for the stationery order. Contacts may be added to one of two different groups: a "mail for me" group 1810 which includes contacts to whom the online stationery service 200 will mail stationery directly; and a "address + ship to me" group 181 1 which includes contacts for whom the online stationery service will print stationery/envelops and then mail the order to the end user. In Figures 18a-b, the "mail for me group" is opened, thereby displaying those contacts selected for a direct-mail option. The "address + ship to me" group may be displayed in a similar manner upon selection of a hyperlink 181 1 , as illustrated in Figure 19. Specifically, in Figure 19, two separate lists are compiled: a "mail for me" list 1901 and a "address + ship to me" list 1902. Contacts may be added to each of the lists via two corresponding add buttons 1903 and 1904. In addition, contacts may be moved between the lists by highlighting a contact from one of the lists and selecting a "move" button 1910.
[0088] Thus, within the GUI shown in Figures 18a-b and 19, two different options 1801 -1802 are provided for selecting contacts and two different delivery options ("mail for me" or "address + mail to me") are provided for delivering the stationery order.
[0089] As mentioned above, one embodiment of the invention allows the end user to specify a default message and/or to enter personalized messages for each contact. Figure 20a illustrates one embodiment of a Web-based GUI for specifying a default message. A greeting field 2001 is provided for entering a default greeting (e.g., "Hi," "Hey," "Dear," etc.) and a selectable option 2002 is provided to mail merge the greeting when possible (e.g., using contact information from the user's address book 210). For mail merge, a drop down menu 2004 is provided to indicate whether the first or last name of the contact should be used. "First name" is selected in Figure 20a, indicating that the greeting will be placed in front of the first name of the stationery recipient (e.g., "Hey Albert"). A message field 2005 is provided for entering a default message and a signature field 2006 is provided for entering a default signature (e.g., "Best Regards, Tom"). In addition, options are provided for entering a picture 2009; selecting a default font 2007; and selecting a default font size 2008.
[0090] Figures 20b-c illustrate a GUI for reviewing the messages
associated with each of the contacts prior to printing and mailing. A separate contact entry 201 1 -2013 is provided for each contact. A "preview" link associated with each contact entry allows the end user to preview the current greeting 2021 , message 2022 and signature 2023 for each contact. The preview for contact 201 1 is illustrated in Figure 20b and the preview for contact 2013 is illustrated in Figure 20c. For each contact entry, radio selection options 2020 are provided to allow the user to select the "standard message," a "custom message," or "no message." In the illustrated example, a standard greeting, message, and signature is selected for contact 201 1 and a custom greeting, message, and signature is provided for contact 2013. From the preview GUI, the user may edit each of the messages directly (e.g., by placing a cursor within data entry fields 2040, 2041 or 2042). All of the contact entries may be opened and displayed via an "expand all" link 2010. Following the review of all greetings, messages and signatures, an approval region is provided in which the user enters his/her initials 2017 to approve the final results.
[0091] A method for selecting stationery purchase options according to one embodiment of the invention is illustrated in Figure 21 . In one embodiment, the method is implemented within the context of the GUI and system described above.
[0092] At 2101 , after selecting a set of recipients from the user's address book and selecting a personalized and/or default message for each recipient, a user selects stationery delivery options. In one embodiment, the options include "mail all for me" 2102 indicating that the stationery service will be responsible for printing and mailing the stationery order directly to recipients; "ship all to me" 2103 indicating that the stationery service will print and ship the order directly to the end user; and "ship some for me and mail some for me" 2104 indicating that the stationery service will be responsible for printing and mailing a portion of the stationery order directly to recipients and will ship the remainder of the order to the end user.
[0093] At 21 05, the user indicates to the stationery service whether return addresses are to be printed on envelopes. At 21 06, the user indicates whether mailing labels are to be used. At 21 07, the stationery service identifies the recipient and user addresses from its database and, at 21 08, generates a print job to print the stationery and envelopes containing the addresses according to the user's specified preferences (e.g., using mailing labels, return addresses, etc). The stationery order (stationery and envelopes) is then printed.
[0094] At 21 1 0, if the user selected "mail all to me" 21 02, then the stationery service mails the stationery directly to the recipients. At 21 1 1 , if the user selected "ship all to me" then the stationery service ships the stationery order directly to the end user. At 21 1 2, if the user selected "ship some to me and mail some for me" then the stationery service mails some of the stationery order to recipients on behalf of the user and ships the remainder of the stationery order to the end user.
[0095] In one embodiment, the stationery order is generated and sent to a printing service as described in the co-pending US patent application entitled SYSTEM AND METHOD FOR PROCESSING PERSONALIZED STATIONERY DESIGNS AND SELECTING FULFILLMENT ORDER SITES, Serial No. 1 2/638,851 , filed December 1 5, 2009, which is assigned to the assignee of the present patent application and which incorporated herein by reference.
[0096] Figure 22 illustrates one embodiment of a system architecture which integrates contacts and calendar data and includes additional modules for generating reminders, filtered recommendations, and for scheduling delivery of greeting cards/stationery. Specifically, in addition to the system components illustrated in Figure 2, this embodiment includes a calendar service 2201 , a reminder service 2202, a recommendation engine with filtering logic 2203 and a scheduling service 2204. The stationery/card service illustrated in Figure 22 also includes a stationery service calendar database 2210 for storing calendar data, a scheduled orders database 2205 for storing order schedule data, a user database 2210 for storing user data (e.g., user stationery/card preferences, configuration options, etc.), and an accounts database 2250 for storing user account data. In one embodiment, the various databases shown in Figure 22 are not actually separate databases but, rather, separate data structures (e.g., tables) within a relational database.
[0097] In one embodiment, the calendar database 2210 stores calendar data for each user of the online stationery/greeting card service 200 and the calendar service 2201 comprises executable program code for managing the calendar data (e.g., reading, adding, deleting, and modifying calendar entries). In one embodiment, the calendar service 2201 also acts as an interface to the calendar data to other system modules 212, 2202, 2203, and 2204 (e.g., by exposing a calendar data API).
[0098] The reminder service 2202 generates graphical or audible reminders of upcoming calendar events and may prioritize the events based on a set of prioritization rules. In one embodiment, the calendar events are prioritized chronologically but some events are given relatively higher priority than other events based on the relationship between the user and the
card/stationery recipients (e.g., the user's parents may be given a higher priority than the user's friends, notwithstanding the event dates). For example, an entry corresponding to Mother's Day may be prioritized at the top of the list even though other events (e.g., Labor Day) are nearer in time. In one embodiment, the highest prioritized event is either the next event created by the user (birthday, anniversary, other, etc) OR the next significant Holiday where "significant" holidays are identified in the online
stationery/card system and may change over time. In one embodiment, the "significant" holidays are Mother's Day, Father's Day, and Christmas.
[0099] The recommendation engine with filtering logic 2203 generates stationery/card recommendations to the end user based on the user's preferences and allows the user to filter the results according to user- specified filtering criteria. In one embodiment, the recommendations are categorized based on certain stationery/card characteristics and visually displayed to the end user in different categories (e.g., "new designs," "with pictures," etc). Moreover, in one embodiment, the recommendation engine 2203 recommends stationery designs based on the preferences of the user and/or the preferences of the recipient (if known).
[00100] In one embodiment, the scheduling service 2204 implements a scheduling algorithm to ensure that stationery/card orders are delivered within a specified delivery window and/or on a specific date. For example, the user may specify that a stationery/card order is to arrive 3-4 days prior to a recipient's birthday. In such a case, the user does not want the card to arrive to soon (e.g., 2 weeks prior to the birthday) or too late (after the birthday). To precisely schedule stationery/card orders, one embodiment of the scheduling service 2204 evaluates the time required by the print services required to fulfill the order (e.g., thermography, digital press, etc.), the delivery type (e.g., regular mail, FedEx, etc), and the end user preferences.
[00101] In one embodiment, three data points are used to determine the delivery date: processing time, fulfillment time, and shipping transit time. The processing time may be based on the type of order. For example, processing time can be 0 days for greeting cards and several days for some stationery cards (e.g., those which require additional review by the online card/stationery service prior to fulfillment). The processing time is based on business days so it must factor in non-business days such as Holidays and Weekends to determine the number of calendar days required for processing. Fulfillment time is the number of days required to print, finish and ship/mail the order and is typically between 1 -3 days (e.g., depending on the printing requirements). This time is based on business days for the fulfillment site which, in one embodiment, may be different than business days for the processing site. Shipping transit time is estimated based on the fulfillment site physical location and the shipping address of the recipient. The shipping transit time is based on business days for the shipping carrier and may be different than business days for the processing site and fulfillment site. In one embodiment, after computing the sum of the three data points, the system has the number of calendar days required for the order and determines the date that the order must be sent to the processing site in order to be delivered on the specified delivery date.
[00102] Presentation and session management logic 206 generates the Web-based graphical user interface (GUI) features described below, allowing the end user to view and edit the calendar data, contacts data, filtered card recommendations, and scheduling data. As illustrated in
Figure 22, the presentation and session management logic 206
communicates with each of the other functional modules and/or
communicates directly with the stationery service databases 215 to retrieve the data needed for display within the GUI. Embodiments of the Web-based GUI features generated by the presentation and session management logic 206 are set forth below.
[00103] In one embodiment, each of the functional modules illustrated in Figure 22 exposes an application programming interface (API) to provide access to data managed by that module. For example, the contacts manager 212 exposes an API allowing the calendar service 2201 (and other modules) to access contacts data and vice versa. Alternatively, each of the functional modules may access the database(s) 215 directly.
[00104] In one embodiment, the calendar service 2201 automatically generates calendar events based on the contacts data stored within the contacts database 210. By way of example, the calendar events may include birthdays, anniversaries, and other significant milestones associated with each of the contacts in the contacts database 210. In addition, the contacts manager 212 stores relationship data identifying the relationship between the user and each of the contacts in the user's contacts database 210 (e.g., identifying the user's spouse, siblings, parents, children, etc.). The calendar service 2201 uses the relationship data to generate calendar events. For example, if the relationship data identifies the user's mother and father, then the calendar data may associate Mother's Day and Father's Day, respectively, with those contacts. Similarly, if the user is married with children the calendar service may associate his/her spouse with Mother's Day or Father's Day and/or the user's wedding anniversary.
[00105] Once calendar events are scheduled, in one embodiment, the reminder service 2202 automatically generates reminders for upcoming events. For example, if a friend's birthday is approaching, then the reminder service 2202 will notify the user a specified number of days/weeks ahead of time, so that the user has time to send a card. The specific timing of the reminder notifications may be specified by the end user and stored along with other user preferences within the user database 221 1 .
[00106] In one embodiment, the reminders are generated and displayed within a Web-based GUI when the user logs in to the online stationery/card service 200 {see, e.g., Figure 23) and/or may be sent to the user in the form of an email message or mobile text message. If sent in an email, links to the online stationery/card service website may be embedded within the message to encourage the user to design a new card {see, e.g., Figure 17 and associated text).
[00107] In one embodiment, the recommendation engine 2203 generates greeting card/stationery recommendations based on the occasion, the identity of the contact associated with the occasion, and the end user's preferences. For example, if a particular contact's birthday is approaching, the recommendation engine 2203 may recommend certain greeting card styles (e.g., modern, classical, etc.) based on the contact's preferences and/or the user's preferences. The filtering logic allows the recommendations to be filtered based on specified variables (e.g., theme, color, card format, card size, number of photos, etc.).
[00108] Figure 23 illustrates one embodiment of a Web-based graphical user interface ("GUI") for managing a user's contacts, calendars, and greeting card orders. In one embodiment, the GUI is dynamically generated for each user by the presentation and session management logic 206 illustrated in Figure 22. The GUI includes a region 2301 for browsing greeting cards, a region 2305 for managing calendar entries and reminders, a region 2310 for reviewing and managing scheduled orders and previously- sent orders, and a region 2315 for reviewing card recommendations.
[00109] The browse region 2301 includes a first plurality of selectable hyperlinks 2302 to allow the end user to browse greeting cards based on a specified occasion (e.g., Birthday, Congratulations, Anniversary, Thank You, St. Patrick's Day, etc.) and a second plurality of selectable hyperlinks 2303 to allow the end user to browse greeting cards based on a specified recipient (e.g., For Her, For Him, For Kids). The occasion hyperlinks 2302 are dynamically generated based on the current date and, in one
embodiment, the nearest upcoming holiday is placed at the top of the list. As illustrated, the region for recipients 2303 is subdivided into categories identified by an expandable and contractible icon ("For Him," "For Her," "For Kids"). Selecting the icon causes a listing of selectable recipients to appear beneath the expandable and contractible icon. For example, selecting the "for Kids" icon causes a listing of children in the user's contacts database to appear with the user's own children at the top of the list (if the user has children).
[00110] In one embodiment, selecting a particular occasion or recipient from the browse region 2301 causes recommendations associated with the selection to appear within the recommendations region 2315. Similarly, in response to selecting a particular event from the reminder/calendar region 2305 causes recommendations associated with the event to appear within the recommendations region 2315. In one embodiment, when the user initially logs in to the online stationery/card service 200 and arrives at the GUI, recommendations are automatically provided for the entry at the top of the user's reminder list 2305.
[00111] Additional details associated with the region 2310 for reviewing and managing scheduled orders and previously-sent orders, are provided in Figure 24. As illustrated, a first tab 2402 is provided to allow the user to view scheduled card orders and a second tab 2402 is provided to allow the end user to view previously-sent orders. Upon selecting one of the tabs, scheduled or sent cards are displayed below the tab. For example, in Figure 24, the sent tab 2402 has been selected thereby displaying a set of thumbnail images 2403 and associated descriptions 2404 of previously-sent greeting cards. A "see all" link is provided to allow the end user to view all scheduled or previously-sent cards.
[00112] Additional details associated with the recommendations region 2315 are provided in Figure 25. As illustrated, the recommendations region 2315 includes a plurality of selectable drop-down menus 2501 -2504 for filtering the recommendations including a recipient menu 2501 (for identifying a particular recipient), an occasion menu 2502 (for identifying a particular occasion), a theme menu 2503 (for selecting a particular theme), and a style menu 2504 (for selecting a particular stationery/card style). In response to selections from the drop-down menus, the recommendation engine with filtering logic 2203 shown in Figure 22 responsively filters the set of recommendations displayed for the user. In one embodiment, the recipient menu 2501 is populated with entries from the user's contacts database.
[00113] A set of the users "favorite" stationery/card designs for a particular selected occasion are provided in a region 2505 directly beneath the drop-down menus 2501 -2504. For example, if the occasion selected in the occasion menu 2402 is "birthday" then a set of the user's favorite birthday cards is displayed within region 2505.
[00114] In one embodiment, the recommendations provided to the end user are categorized into groups 2506-2508. In the specific example shown in Figure 25, the groups include a photo card group 2506 (displaying photo cards only), a group of designs which do not require personalization 2507 (i.e., which can simply be selected and mailed to the end user), and new designs 2508 provided by the online stationery service. Various
other/additional groups may be provided while still complying with the underlying principles of the invention. In one embodiment, thumbnail images representing a set of exemplary designs from each group are provided with a hyperlink to view additional designs within the group. [00115] Figures 26a-b illustrate one embodiment of the region for managing a reminder list and calendar. As illustrated, a reminder list tab 2601 and a calendar tab 2602 are provided for selecting between the reminder list and calendar, respectively. As shown in Figure 26a, the reminder list 2603 includes a plurality of entries populated by the reminder service 2202 using data from the calendar database 2210 and contacts database 210. In one embodiment, the reminder list 2603 is ordered chronologically, with the nearest approaching dates at the top of the list. Alternatively, in one embodiment, the reminder service 2202 may order a portion of the reminder list 2603 chronologically but may also prioritize certain entries and place them at the top of the list (notwithstanding the chronology). For example, in one embodiment, all birthdays or birthdays for a specified individual may be placed at the top of the reminder list 2603 (within a specified window of time). Similarly, the user may designate certain recipients as "high priority" (e.g., a spouse, parent, etc.). The reminder service 2202 will then place any entries related to this recipient at the top of the list (when the date associated with the entry is within a certain window of time). In one embodiment, any of the variables associated with the contacts in the contacts database may be used to prioritize the reminder list 2601 .
[00116] In one embodiment, the reminder list is broken down by year, with each year having its own expandable and contractible icon. The current year is provided at the top and is initially expanded (2009 in the example). Later and previous years are not initially expanded but will expand when selected by the user. In one embodiment, only events on the current day or future dates will be shown in the reminder list. The event that is currently selected (next, or user selected) will have a highlight behind it. When a user initially signs up for the stationery/card service 200, the reminder list is initially pre-populated with holiday reminders so it will never be empty. The user may delete holiday reminders if they want. In one embodiment, when an event already has a card (or cards) scheduled, a "card scheduled" icon or link 2607 is provided. Clicking this link will take the user to a Web page showing the details associated with the card/stationery order. An "add an event" button 2620 is also provided to enable the user to add a new stationery/card event to the reminder list.
[00117] As illustrated in Figure 28, one embodiment of the "add an event" window includes a plurality of data entry fields including an event name field 2801 , an occasion field 2802, a date field 2803, a contact name field 2804, and a link 2805 to change the current reminder scheduling. In the example shown in Figure 28, reminders are scheduled for 2 weeks prior and 2 days prior to the event. Clicking on the "change" link allows the user to modify this reminder schedule. The occasion data field 2802 includes a drop-down menu containing a set of predefined occasions (birthdays, anniversaries, etc.) and the date field 2803 comprises a selectable calendar graphic for selecting a particular date. In one embodiment, the selectable calendar graphic is the same or similar to the graphic shown in Figure 26b. As indicated in Figure 28, in one embodiment, when a new recipient is entered in the contact name field 2804, that recipient is automatically added to the user's contacts database 210.
[00118] Regardless of how the reminder list is prioritized, in one embodiment, the recommendation engine 2203 selects card
recommendations for the recommendations region 2315 based on the entry at the top of the list. For example, if the entry at the top of the list is a birthday for a particular recipient, then the recommendations region 2315 will contain recommendations for a birthday for that particular recipient (e.g., with entries from drop down menus 2501 -2502 shown in Figure 25
automatically selected).
[00119] Figure 26b illustrates a calendar GUI generated in response to selection of the calendar tab 2602. In one embodiment, when selected by the user, the calendar opens to the current month with the current day 2612 highlighted. Links 2630 and 2631 are used to jump to previous month or subsequent month, respectively. Graphics with different colors and shapes are used to identify different greeting card events and the status of those events. For example, in Figure 26b, a red diamond 261 1 is used to identify events in the past, a green flag 2613 is used to identify events for which a card has been scheduled, and a yellow triangle 2610 is used to identify events for which a card has not been scheduled. In one embodiment, dates with a user-entered event will have a slightly darkened background and the event currently selected is highlighted. If there are two events on the same date, two icons are shown. If there are three or more events on a date, a number representing the number of events is displayed followed by an exclamation point. In one embodiment, if the user clicks on an empty date on the calendar or selects an "add an event" link 2621 , the add event window is displayed (Figure 28).
[00120] As illustrated in Figure 27a, When the user mouses over a square in the calendar (i.e., moves the cursor over a square with the mouse or other cursor control device) that has an event in it, a small non-modal hover window 2701 is displayed that shows more details of the event. The event title is on top and the date is beneath. If no card is scheduled, "No card yet!" is displayed as shown in Figure 27a but if a card has been scheduled, then a "Card Scheduled" link is provided as shown in Figure 27b. Once again, the "Card Scheduled" link directs the user to an order details Web page containing the details associated with the card order. An edit button ("e") is provided to link the user to the add/edit event window shown in Figure 28 which opens with data fields pre-populated with existing data. A "Delete Reminder" button ("x") is also provided which allows the end user to delete the calendar reminder.
[00121] As illustrated in Figure 27c, if there are multiple events on the same day, the mouseover window 2703 shows each event on its own line, with the date beneath them all. Each event comprises a hyperlink to the Add/Edit Event screen for that event (Figure 28). The "add another link" will open the Add event window (Figure 28).
[00122] One embodiment of the online stationery/card service 200 allows the user to purchase an online stationery/card subscription plan which allows the user to send a specified number of stationery/cards for a fixed fee. The plan selected by a given user and the current status of the user's account (e.g., number of cards ordered, current payment due date, etc.) is maintained within an accounts database 2250 on the online stationery service 200.
[00123] A graphical user interface for selecting among a plurality of different plans is illustrated in Figure 29. This embodiment provides a plurality of selectable options 2901 representing different plans. One option, of course, is to purchase on a one-time basis. Other plans illustrated in Figure 29 includes an option of $3.99/year to purchase unlimited cards at $3.49; an option of $9.99/year to purchase unlimited cards at $2.99; and an option of $29.99/year to purchase unlimited cards at $1 .99. Various other/additional options may be provided while still complying with the underlying principles of the invention. For example, one option (not shown) allows the user to pay a flat fee for a specified number of cards during the year at no additional charge. A series of data entry fields 2902 are provided in which the user may enter credit card or other payment or billing
information. If the user does not already have an account with the online stationery/card service 200, additional data entry fields are provided to allow the user to an establish an account with a new User ID (e.g., the user's email address) and a password.
[00124] Figures 30-35 illustrate additional embodiments of a Web- based GUI for stepping the user through the process of selecting an appropriate stationery/card design. This embodiment includes a region 3001 for filtering stationery results by selecting filtering check boxes; a region 3000 for selecting options from drop-down menus; and a region 3003 for displaying the filtered recommended stationery designs.
[00125] Figure 30 starts with a single drop down menu 3002 within region 3000 for selecting a particular occasion (e.g., birthday, anniversary). Once a particular occasion has been selected, one or more additional dropdown menus are generated to further refine the results 3003. In one embodiment, if the user enters the category page in Figure 30 from the dashboard page, the menu fields are pre-filled with the recipient, occasion and relationship information. Figure 31a illustrates one example in which, after the user has selected "Birthday" as the occasion, a data entry field 3101 is provided asking for a name and a drop-down menu is provided asking for the relationship between the recipient and the user (e.g., mother, wife, sibling, etc.). In one embodiment, as the user enters text in the data entry field 3101 , a drop down menu is displayed below the entry field with matches from the user's contacts database 210 allowing the user to select a recipient with just a few entered characters. In one embodiment, a dropdown menu may be provided in lieu of, or in addition to, data entry field 3101 to allow the user to select individuals from the user's contacts database 210. Once the name and relationship of the recipient have been selected, the thumbnails of cards within the recommendation region 3003 are filtered accordingly. For example, if "Birthday" is selected for occasion and "Mother" is selected for relationship, then birthday cards for mothers are displayed within the recommendation region 3003. More specifically, if the user is a male, then birthday cards from son to mother are displayed; if the user is a female, then birthday cards from daughter to mother are displayed.
[00126] An additional filtering region 3001 is provided to allow the user to filter the cards in the recommendation region further. Details of one embodiment of the filtering region 3001 are provided in Figure 33. In this embodiment, the user may select among a plurality of selection boxes grouped into categories including "Theme" (e.g., humorous, sentimental, religious); "Color" (providing a plurality of color options); "Card Format" (e.g., flat, folded); "Card Size" (e.g., 5x7, 5.25x5.25, 3.5x5, etc); "Number of Photos" (e.g., none, or 1 , or more); and "Other" (e.g., new, available as-is (without personalization), best-selling, recently purchased, etc). Selecting among any one or more options in the filtering region 3001 causes the filtering logic of the recommendation engine 2203 filter the cards provided in the recommendation region 3003 based on the selection. For example, selecting the 5" x 7" card size option will cause only cards of this size to be displayed.
[00127] In one embodiment, clicking on one of the designs within the recommendations region 3003 takes the end user to the product Web page for that design and allows the user to personalize and send the design. Mousing over one of the designs within the recommendations region 3003 generates a quick view window with additional information related to the design. In addition, in one embodiment, a pick icon is provided 31 10 to allow the user to add the design to a "my picks" region 3120.
[00128] Figure 31 b illustrates one embodiment of region 3000 in which, once a specific recipient has been selected ("JD" in the example), cards which the user has previously sent to the recipient are listed within a region 3130 beneath the recipient data entry field.
[00129] Figure 32 illustrates details for different embodiments of the "my picks" region 3120. The first time the user adds a card design to the "my picks" region, instructions as to how to use the region are provided as illustrated at 3201 . Each "my picks" region includes a link 3210 to empty the picks from the region and a link 321 1 to compare designs within the region. A hide link 3212 is also provided to hide the "my picks" region. When more designs are added to the "my picks" region than can fit within the viewable portion of the region, a scroll bar 3213 appears (as shown in the
embodiment of 3202) to allow the user to horizontally scroll through the design selections. As illustrated in the embodiment of 3203, mousing over a design automatically generates a pop-up window 3214 containing a larger image of the design and a set of selectable options 3215 including
"personalize" which will link the user to the stationery/card personalization Web pages managed by the stationery/card personalization engine 220; "add to cart" which will add the design to the user's shopping cart; "favorite" which will tag the design as the user's favorite; and "remove" which will remove the selected design from the "my picks" region.
[00130] In one embodiment, when the user clicks on any of the designs within the recommendation region, the product Web page for that card is displayed, such as that illustrated in Figures 34-35. Figure 34 provides a detailed view 3401 of the card from the front and Figure 35 provides a detailed view 3501 of the inside of the card. The front view window includes a "see inside" link 3402 and the inside view window includes a "see front" link 3502 for moving between the two different views. In addition, both views include an "add to cart" button 3404 which will add the design to the user's shopping cart and a "personalize" button 3403 which will take the user to the personalization pages such as those illustrated in Figures 36-39.
[00131] Figure 36 illustrates a first window displayed when the user selects the "personalize" button 3403. A data entry field 3601 for the recipient's name 3601 and a data entry field 3602 for the recipient's birthdate are provided. Once again, in an embodiment which utilizes the user's contacts database, the recipient's name may be selected from a list generated from the user's contacts database or autofilled as the user enters text. The birthdate may then be automatically filled in using data associated with that contact.
[00132] Upon selection of a continue button 3603, the user is taken to the GUI shown in Figure 37, which shows an image of the front of the selected card and an indication of those text regions 3703 which are editable. A set of selectable links 3704, 3705, and 3706 are provided at the top of the GUI to jump between the front, inside and back of the card, respectively. A photos region 3701 provides a set of photos which may be added to the card (e.g., by clicking and dragging into a designated region). The photos may be local to the user (e.g., on the user's hard drive) and/or may have been previously uploaded to the online stationery/card service 200. A selectable button 3702 is provided to add and/or remove photos from the set (e.g., by highlighting a photo and selecting the button to remove).
[00133] Figure 38a illustrates the inside of an exemplary card design. Additional regions 3802 and 3803 for personalized text are provided as well as a region 3804 for typing a signature. In one embodiment, the text entry region 3803 is initially opened with a message which the user may edit. Additional message options may be provided and, in one embodiment, a forward arrow 381 1 and a backward arrow 3810 are provided for scrolling through the additional message options. A link 3812 is provided to allow the user to visually display all available messages within a single window.
Figure 38b illustrates an exemplary window for displaying a list 3850 of available messages. Each entry in the list comprises the text of the message. A Use This Message button 3851 is generated for selected entries within the list. Selecting the button causes the text for the message to be incorporated into the text window 3803, which may then be edited by the user. Figure 38b also illustrates a set of filtering options 3852 for filtering the results in the list of available messages 3850.
[00134] In addition, a link 3805 is provided for uploading a user's signature. In one embodiment, selecting the link 3805 generates a dialog box which allows the user to move through folders and identify a signature file (e.g., a JPEG, Bitmap, or other signature file type) on the user's computer. The signature is stored in the user account database and retrieved for subsequent card personalization. A photo region 3801 is provided into which photos from region 3701 may be clicked and dragged. The selected photo will then be visually displayed within the photo region 3801 .
[00135] Figure 39 illustrates the back of the exemplary card design with an additional photo region 3901 and an additional text entry region 3905. These two regions comprise the "Personal Seal" for the user and are stored in the user account database and retrieved for subsequent card personalization. In addition, in one embodiment, bar code 3902 and/or a URL 3903 are provided to allow the recipient to connect to a unique dynamically generated page representing a relationship between the end user and the recipient(s). The Web page may include, for example, pictures, contact data, public address data, personal messages, and other information shared between the user and recipient(s). In one embodiment, the user is permitted to enter a personal URL on the back of the card (e.g., in the place where [code] is indicated in Figure 39). The online
stationery/card service will then confirm that the URL code is available.
[00136] Once the user has completed personalizing the stationery/card design, a series of preview pages are generated such as those shown in Figures 40-42. A set of selectable links 4001 , 4002, and 4003 are provided at the top of the GUI to jump between a preview of the front, inside and back of the card, respectively. Figure 40 illustrates a preview of the front of the card 4010, Figure 41 illustrates a preview of the middle of the card 41 10, and Figure 42 illustrates a preview of the back of the card 4210. In one embodiment, the user is asked to verify the content of each portion of the card prior to completing the purchase. In Figures 40-42, this is
accomplished by a verification check box 401 1 located adjacent to the preview image of each portion of the card. To complete the order, the user must select the verification check box next to each preview image for each card portion.
[00137] Figure 43 illustrates one embodiment of a Web-based graphical user interface for designing an envelope to be sent directly to the recipient of the card. In one embodiment, a design template for the envelope is stored within the stationery/card & envelope design templates 230 on the stationery/card service database 215, as indicated in Figure 22. Two selectable tabs are provided at the top of the Web-based GUI - one for sending the card directly to the recipient 4302 and another for sending the card directly to the end user 4301 . In Figure 43, tab 4302 is selected, thereby producing an image of the envelope 4300 with a first plurality of data fields for entering the user's return address information 4310 and a second plurality of data fields for entering the name and mailing address of the recipient 431 1 . A contacts hyperlink 4312 is provided adjacent to the second set of data entry fields 431 1 to provide the user with access to the user's contacts data. In response to selecting the contacts hyperlink 4312, a contacts list 4601 shown in Figure 46 appears, from which the user may select a particular contact from the contacts database. In the example shown in Figure 46, radio buttons are used to select a particular contact from the list. However, various other types of graphical selection elements may be used while still complying with the underlying principles of the invention. For example, in one embodiment, the contact name is autofilled from the contacts database as the user enters text. [00138] Figure 43 also illustrates a link 4313 which the user may select if he/she does not know the address of the recipient. Upon selection of this link, a data entry field 4501 is provided, as shown in Figure 45, in which the user may enter the recipient's email address along with a text entry region 4510 in which the user may compose an email message to the recipient requesting the recipient's email address. A "choose" link 4502 is provided allowing the user to select the email address via the user's contacts database. In response to the user entering an email address and selecting the "send now" button 4503, the online stationery/card service sends an email to the recipient requesting the recipient's address
information. As mentioned above with respect to Figures 16a-b, in one embodiment, the request email includes a link 1601 which will connect recipient to the online stationery service 200 to enter the address
information.
[00139] Figure 44 illustrates the Web-based GUI with the "send to me" tab 4301 selected. This embodiment includes a quantity selector 4400 to indicate the number of cards; the user's name and mailing address 4401 (which is filled in automatically by the online stationery service if the user has an account and is logged in); a selection box 4402 to indicate that the user wants his/her return address printed on the envelopes; a selection box 4403 to indicate that the user wants stamps on the envelopes; a selection box 4404 to indicate that the user wants the recipient's address(es) printed on the envelopes; a delivery date field 4405 to indicate a date on which the card should be delivered (including a calendar widget, such as those discussed above); and a selection box 4406 for specifying an additional electronic message to be sent to the recipient. A drop-down menu is associated with selection box 4406 from which the user may specify different electronic message types (e.g., email, instant message, SMS, etc).
[00140] Figure 47 illustrates a Web-based GUI generated when the user chooses to send the recipient an electronic message (e.g., by selecting boxes 4406 or 4322). As shown, a data entry field 4701 allows the user to specify an email address or other electronic address (dependent on the particular type of electronic message specified by the end user). The user specifies a date on which the electronic message is to be sent in data field 4702. To do so, the user may operate a calendar GUI/widget 4703 such as those described above. The user is also provided with the option to specify an image 4705 and a text message within text entry box 4704. Selecting the "send" button then causes the electronic message to be sent on the specified date and the paper card to be sent for delivery on or before the date entered in field 4320.
[00141] Throughout the discussion above, various details have been omitted to avoid obscuring the pertinent aspects of the invention. For example, in an embodiment of the invention in which the user connects to the online stationery service 200 via a Web browser, various well known functional modules associated within the presentation and session management logic 206 shown in Figures 2 and 22 are executed to receive input, process the input and dynamically generate Web pages containing the results. The Web pages described herein may be formatted according to the well known HyperText Markup Language ("HTML") or Extensible HTML ("XHTML") formats, and may provide navigation to other Web pages via hypertext links. One embodiment utilizes Dynamic HTML ("DHTML"), a collection of technologies used together to create interactive Web sites by using a combination of a static markup language (e.g., HTML), a client-side scripting language (e.g., JavaScript), a presentation definition language (e.g., CSS), and the Document Object Model ("DOM"). Of course, the underlying principles of the invention are not limited to any particular set of protocols or standards.
[00142] In one embodiment, the Web server used to implement the embodiments of the invention is a Ngnix, Apache web server running on Linux with software programmed in PHP using a MySQL database.
[00143] Embodiments of the invention may include various steps as set forth above. The steps may be embodied in machine-executable instructions which cause a general-purpose or special-purpose processor to perform certain steps. Alternatively, these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
[00144] Elements of the present invention may also be provided as a machine-readable medium for storing the machine-executable instructions. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media or other type of media/machine-readable medium suitable for storing electronic instructions. For example, the present invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
[00145] Throughout the foregoing description, for the purposes of explanation, numerous specific details were set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention may be practiced without some of these specific details. For example, it will be readily apparent to those of skill in the art that the functional modules such as wizards and other logic may be implemented as software, hardware or any combination thereof. Accordingly, the scope and spirit of the invention should be judged in terms of the claims which follow.

Claims

CLAIMS What is claimed is:
1 . A system implemented by an online stationery/card service for personalizing and sending non-electronic stationery/cards, the system comprising:
a stationery/card contacts module to manage an end user's contacts data stored within a contacts database, the contacts data including relationship data specifying a relationship between the end user and one or more of the contacts;
a stationery/card calendar module to automatically generate stationery/card calendar events in the user's calendar database based on the contacts data stored within the contacts database, the stationery/card calendar events including milestones associated with each of the contacts, wherein at least some of the calendar events are generated based on the specified relationship between the user and each of the contacts;
a stationery/card personalization engine executed in response to the user selecting one of the calendar events, the stationery personalization engine providing the end user with a set of selectable stationery templates related to a selected event from the calendar database, the stationery personalization engine receiving an indication that an end user has selected a particular one of the stationery templates, and generating personalized stationery with the selected template based on user input;
the stationery/card service contacts manager identifying address information for each of a set of user-selected contacts to receive the personalized stationery; and
a print module to generate and transmit a print job to print the personalized stationery/cards and envelopes containing the address information for the user-selected contacts.
2. The system as in claim 1 further comprising: a reminder service to generate reminders to send a card to one or more of the contacts prior to the calendar events associated with those contacts.
3. The system as in claim 2 wherein the reminders are generated in the form of a list of upcoming events, and wherein the reminder service comprises prioritization logic for prioritizing the list based at least in part on the specified relationship data.
4. The system as in claim 1 wherein the specified relationship is a familial relationship and the calendar event comprises a day associated with that familial relationship.
5. The system as in claim 1 wherein one of the milestones associated with each of the contacts comprises a birth date.
6. The system as in claim 1 wherein one of the milestones associated with each of the contacts comprises a wedding anniversary.
7. The system as in claim 1 further comprising:
a recommendation engine to generate stationery/card
recommendations to the end user based on the user's preferences and/or the preferences of one or more of the contacts in the user's contacts database.
8. The system as in claim 7 wherein the recommendation engine generates recommendations, at least in part, based on prior card/stationery purchases made by the end user.
9. The system as in claim 7 wherein the recommendation engine generates a plurality of categories of recommendations based on
stationery/card characteristics selected from the group consisting of the design style, theme, card format, card size and attributes of the
stationery/card.
10. The system as in claim 9 wherein the categories include new stationery/cards, cards with or without photos, and stationery/cards which do not require personalization.
1 1 . The system as in claim 1 further comprising:
a presentation module to generate a graphical user interface (GUI) comprising:
a calendar window comprising a plurality of entries for a particular month, each entry representing a particular day of the month, one or more of the entries having stored therein different graphical elements, wherein a first type of graphical element is displayed to represent a scheduled
stationery/card order and a second type of graphical element is displayed to represent a calendar event related to a contact in the user's contacts database for which a stationery/card order has not been scheduled.
12. The system as in claim 1 1 wherein, in response to user selection of the first type of graphical element, the user is provided with details of the associated stationery/calendar order and wherein in response to user selection of the second type of graphical element, the user is provided with a Web-based GUI for selecting and personalizing a stationery/card order using the stationery/card personalization engine.
13. A computer-implemented method executed within an online stationery/card service for designing and sending non-electronic
stationery/cards comprising:
managing an end user's contacts data stored within a contacts database, the contacts data including relationship data specifying a relationship between the end user and one or more of the contacts;
automatically generating stationery/card calendar events in the user's calendar database based on the contacts data stored within the contacts database, the stationery/card calendar events including milestones associated with each of the contacts, wherein at least some of the calendar events are generated based on the specified relationship between the user and each of the contacts;
in response to the user selecting one of the calendar events, providing the end user with a set of selectable stationery templates related to a selected event from the calendar database, receiving an indication that an end user has selected a particular one of the stationery templates, and generating personalized stationery with the selected template based on user input;
identifying address information from the contacts database for each of a set of user-selected contacts to receive the personalized stationery; and generating and transmitting a print job to print the personalized stationery/cards and envelopes containing the address information for the user-selected contacts.
14. The method as in claim 13 further comprising:
generating reminders to send a card to one or more of the contacts prior to the calendar events associated with those contacts.
15. The method as in claim 14 wherein the reminders are generated in the form of a list of upcoming events, and wherein the reminder service comprises prioritization logic for prioritizing the list based at least in part on the specified relationship data.
16. The method as in claim 13 wherein the specified relationship is a familial relationship and the calendar event comprises a day associated with that familial relationship.
17. The method as in claim 13 wherein one of the milestones associated with each of the contacts comprises a birth date.
18. The method as in claim 13 wherein one of the milestones associated with each of the contacts comprises an anniversary.
19. The method as in claim 13 further comprising:
generating stationery/card recommendations to the end user based on the user's preferences and/or the preferences of one or more of the contacts in the user's contacts database.
20. The method as in claim 19 further comprising:
generating recommendations, at least in part, based on prior card/stationery purchases made by the end user.
21 . The method as in claim 19 further comprising:
generating a plurality of categories of recommendations based on stationery/card characteristics.
22. The method as in claim 21 wherein the categories include new stationery/cards, cards with or without photos, and stationery/cards which do not require personalization.
23. A system implemented by an online stationery/card service allowing a user to personalize and send non-electronic stationery/cards, the system comprising:
a graphical user interface for personalizing and sending nonelectronic stationery/cards comprising:
a reminder list comprised of a plurality of reminder entries, each of the reminder entries identifying an upcoming event including events generated based on a specified relationship between the user and one or more contacts stored in a contacts database of the user;
a recommendation region comprising a plurality of stationery/card design recommendations, the recommendation region populated with stationery/card designs associated with a specified one or the one or more entries in the reminder list, including the events generated based on the specified relationship between the user and each of the contacts; and
a stationery/card personalization engine executed in response to the user selecting one of the stationery/card design recommendations from the recommendation region, the stationery personalization engine providing the end user with a set of personalization options related to the selected stationery/card design, and generating personalized stationery with the selected stationery/card design based on user input.
24. The system as in claim 23 further comprising:
a stationery/card contacts module to manage an end user's contacts data stored within the contacts database, the contacts data including the relationship data specifying a relationship between the end user and one or more of the contacts; and
a stationery/card calendar module to automatically generate stationery/card calendar events in the user's calendar database based on the contacts data stored within the contacts database, wherein at least some of the calendar events are generated based on the specified relationship between the user and each of the contacts.
25. The system as in claim 23 wherein the stationery/card calendar events include milestones associated with each of the contacts in the contacts database and wherein the reminder list includes entries associated with the milestones.
26. The system as in claim 25 wherein one of the milestones associated with each of the contacts comprises a birth date.
27. The system as in claim 23 wherein one of the milestones associated with each of the contacts comprises a wedding anniversary.
28. The system as in claim 23 wherein the relationship between the user and one of the contacts comprises a familial relationship and wherein the event generated comprises a day associated with that familial relationship.
29. The system as in claim 28 wherein the familial relationship comprises the user's mother or father, and wherein the event comprises Mother's Day or Father's Day.
30. The system as in claim 23 wherein the reminder list is organized based on a specified prioritization scheme, with a highest priority event selected within the reminder list, wherein upon the user initially opening the GUI the recommendation region is automatically populated with stationery/card designs associated with the highest priority event in the reminder list.
31 . The system as in claim 23 wherein the GUI further comprises a calendar window including a plurality of calendar entries for a particular month, each entry representing a particular day of the month, one or more of the entries having stored therein different graphical elements, wherein a first type of graphical element is displayed to represent a scheduled stationery/card order and a second type of graphical element is displayed to represent a calendar event related to a contact in the user's contacts database for which a stationery/card order has not been scheduled.
32. The system as in claim 31 wherein, in response to user selection of the first type of graphical element, the user is provided with details of the associated stationery/calendar order and wherein in response to user selection of the second type of graphical element, the user is provided with a Web-based GUI for selecting and personalizing a
stationery/card order using the stationery/card personalization engine.
33. The system as in claim 23 wherein the stationery/card contacts module identifies address information for each of a set of user-selected contacts to receive the personalized stationery.
34. The system as in claim 23 further comprising:
a print module to generate and transmit a print job to print the personalized stationery/cards and envelopes containing the address information for the user-selected contacts.
35. The system as in claim 23 wherein the reminders are generated in the form of a list of upcoming events, and wherein the reminder service comprises prioritization logic for prioritizing the list based at least in part on the specified relationship data.
36. The system as in claim 35 wherein the recommendations region further comprises of user input elements for specifying characteristics related to a stationery/card order, wherein the results in the recommendation region are filtered based on the user input received in one or more of the user input elements.
37. The system as in claim 36 wherein some of the user input elements comprise drop-down menus comprised of a set of user-selectable entries, at least one of the drop-down menus including a list of entries corresponding to potential stationery/card recipients retrieved from a contacts database of the user.
38. The system as in claim 37 wherein upon selection of one of the potential stationery/card recipients, the recommendation region is populated with recommendations based on the identity of the recipient and the known preferences of the user.
39. The system as in claim 37 wherein at least one of the dropdown menus including a list of entries corresponding to occasions for sending stationery/cards, wherein upon selection of one of the potential stationery/card recipients, the recommendation region is populated with recommendations based on the identity of the occasion.
40. The system as in claim 36 wherein the user input elements for specifying characteristics related to a stationery/card order include a plurality of selectable filtering elements for filtering the results in the
recommendations region, the filtering elements selected from the group consisting of a stationery/card theme, a stationery/card color, a
stationery/card format, a stationery/card size, and a number of photos used in the stationery card.
41 . The system as in claim 23 further comprising:
a browse region comprising a set of links identifying different occasions, wherein upon selection of one of the links corresponding to one of the occasions, the recommendations region is populated with
stationery/card designs related to the selected occasion.
42. The system as in claim 23 further comprising: a scheduled stationery/card orders region visually displaying a set of previously personalized stationery/card orders which have not yet been sent.
43. The system as in claim 23 further comprising:
a personalization GUI generated in response to the user selecting one of the stationery/card designs from the recommendation region, the personalization GUI displaying a visual representation of the stationery/card design and comprising a plurality of selectable text entry regions and one or more image regions for receiving user-selectable images within the front, middle and/or back of the stationery/card design.
44. The system as in claim 43 wherein the personalization GUI comprises a listing of images capable of being clicked and dragged by the user into the image regions of the stationery/card design.
45. A system implemented by an online stationery/card service allowing a user to personalize and send non-electronic stationery/cards, the system comprising:
a Web-based graphical user interface (GUI) for designing
stationery/cards and envelopes for the stationery/cards comprising:
an envelope design region for designing an envelope to be used for mailing the stationery/cards selected by the end user, the envelope design region having a graphical layout corresponding to a paper envelope to be used to mail a stationery card selected by the end user, the envelope design region comprising:
a return address region comprising one or more text boxes for entering a return address of the end user;
an address region comprising one or more text boxes for entering the address of a recipient, wherein the address region includes a first link to generate a list of contacts in the user's contacts database, wherein upon selection of an entry from the list, the address region is automatically populated with the address corresponding to the selected entry, and a second link to generate one or more options for contacting the recipient when the user does not know the mailing address of the recipient, at least one of the options comprising contacting the recipient by email, wherein a data field for entering the recipient's email address is generated in response to selection of the second link; and
a stationery/card personalization engine executed in response to the user selecting a stationery/card design, the stationery personalization engine providing the end user with a set of personalization options related to the selected stationery/card design, and generating personalized stationery with the selected stationery/card design based on user input.
46. The system as in claim 45 wherein the GUI further comprises: a date field for entering a date by which the recipient is to receive the personalized card/stationery or a date range within which the recipient is to receive the personalized card/stationery.
47. The system as in claim 46 further comprising:
a scheduling module to schedule delivery of the card by the date or within the date range specified by the date field.
48. The system as in claim 45 wherein the GUI further comprises: an electronic messaging region for specifying an electronic message to be sent to the recipient in addition to the personalized stationery/card.
49. The system as in claim 45 wherein the options for contacting the recipient when the user does not know the mailing address of the recipient include a text entry field for specifying an electronic message to send to the recipient to request the recipient's address.
50. The system as in claim 49 wherein, in response to selection of an email address of a recipient, an email message is automatically sent to the recipient requesting the recipient's current mailing address, the email message containing a link to the online stationery service, wherein upon selection of the link, the recipient is asked to enter address information, and wherein upon entering the address information, the personalized
card/stationery is sent to the recipient at the address specified by the recipient.
51 . The system as in claim 50 further comprising program code for notifying the end user if the recipient has not responded to the email message after a specified duration of time.
52. The system as in claim 45 further comprising:
a stationery/card contacts module to manage an end user's contacts data stored within the contacts database, the contacts data including the relationship data specifying a relationship between the end user and one or more of the contacts; and
a stationery/card calendar module to automatically generate stationery/card calendar events in the user's calendar database based on the contacts data stored within the contacts database, wherein at least some of the calendar events are generated based on the specified relationship between the user and each of the contacts.
53. The system as in claim 52 wherein the stationery/card calendar events include milestones associated with each of the contacts in the contacts database and wherein the reminder list includes entries associated with the milestones.
54. The system as in claim 53 wherein one of the milestones associated with each of the contacts comprises a birth date.
55. The system as in claim 53 wherein one of the milestones associated with each of the contacts comprises a wedding anniversary.
56. A machine-readable medium having program code stored thereon program code which, when executed by a machine, causes the machine to generate:
a Web-based graphical user interface (GUI) for designing
stationery/cards and envelopes for the stationery/cards comprising:
an envelope design region for designing an envelope to be used for mailing the stationery/cards selected by the end user, the envelope design region having a graphical layout corresponding to a paper envelope to be used to mail a stationery card selected by the end user, the envelope design region comprising:
a return address region comprising one or more text boxes for entering a return address of the end user; and
an address region comprising one or more text boxes for entering the address of a recipient, wherein the address region includes a first link to generate a list of contacts in the user's contacts database, wherein upon selection of an entry from the list, the address region is automatically populated with the address corresponding to the selected entry, and a second link to generate one or more options for contacting the recipient when the user does not know the mailing address of the recipient, at least one of the options comprising contacting the recipient by email, wherein a data field for entering the recipient's email address is generated in response to selection of the second link; and
a stationery/card personalization engine executed in response to the user selecting a stationery/card design, the stationery personalization engine providing the end user with a set of personalization options related to the selected stationery/card design, and generating personalized stationery with the selected stationery/card design based on user input.
57. The machine-readable medium as in claim 56 wherein the GUI further comprises: a date field for entering a date by which the recipient is to receive the personalized card/stationery or a date range within which the recipient is to receive the personalized card/stationery.
58. The machine-readable medium as in claim 57 comprising additional program code which, when executed by the machine, causes the machine to generate a scheduling module to schedule delivery of the card by the date or within the date range specified by the date field.
59. The machine-readable medium as in claim 56 wherein the GUI further comprises:
an electronic messaging region for specifying an electronic message to be sent to the recipient in addition to the personalized stationery/card.
60. The machine-readable medium as in claim 56 wherein the options for contacting the recipient when the user does not know the mailing address of the recipient include a text entry field for specifying an electronic message to send to the recipient to request the recipient's address.
61 . The machine-readable medium as in claim 60 wherein, in response to selection of an email address of a recipient, an email message is automatically sent to the recipient requesting the recipient's current mailing address, the email message containing a link to the online stationery service, wherein upon selection of the link, the recipient is asked to enter address information, and wherein upon entering the address information, the personalized card/stationery is sent to the recipient at the address specified by the recipient.
62. The machine-readable medium as in claim 61 further comprising program code for notifying the end user if the recipient has not responded to the email message after a specified duration of time.
63. The machine-readable medium as in claim 56 further comprising program code which, when executed by a machine, causes the machine to generate:
a stationery/card contacts module to manage an end user's contacts data stored within the contacts database, the contacts data including the relationship data specifying a relationship between the end user and one or more of the contacts; and
a stationery/card calendar module to automatically generate stationery/card calendar events in the user's calendar database based on the contacts data stored within the contacts database, wherein at least some of the calendar events are generated based on the specified relationship between the user and each of the contacts.
64. The machine-readable medium as in claim 63 wherein the stationery/card calendar events include milestones associated with each of the contacts in the contacts database and wherein the reminder list includes entries associated with the milestones.
65. The machine-readable medium as in claim 64 wherein one of the milestones associated with each of the contacts comprises a birth date.
66. The machine-readable medium as in claim 64 wherein one of the milestones associated with each of the contacts comprises a wedding anniversary.
PCT/US2011/024059 2010-02-09 2011-02-08 System and method for managing contacts and calendars within an online card system WO2011100246A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CA2788123A CA2788123A1 (en) 2010-02-09 2011-02-08 System and method for managing contacts and calendars within an online card system
EP11742686.6A EP2534625A4 (en) 2010-02-09 2011-02-08 System and method for managing contacts and calendars within an online card system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/702,932 2010-02-09
US12/702,932 US20110141493A1 (en) 2009-12-15 2010-02-09 System and method for managing contacts and calendars within an online card system

Publications (1)

Publication Number Publication Date
WO2011100246A1 true WO2011100246A1 (en) 2011-08-18

Family

ID=44368077

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2011/024059 WO2011100246A1 (en) 2010-02-09 2011-02-08 System and method for managing contacts and calendars within an online card system

Country Status (4)

Country Link
US (1) US20110141493A1 (en)
EP (1) EP2534625A4 (en)
CA (1) CA2788123A1 (en)
WO (1) WO2011100246A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10600139B2 (en) 2011-04-29 2020-03-24 American Greetings Corporation Systems, methods and apparatus for creating, editing, distributing and viewing electronic greeting cards
WO2021211851A1 (en) * 2020-04-15 2021-10-21 Snap Inc. Automatically generated personalized message

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015580B2 (en) * 2009-12-15 2015-04-21 Shutterfly, Inc. System and method for online and mobile memories and greeting service
US8239290B2 (en) * 2009-12-15 2012-08-07 Shutterfly, Inc. Graphical user interface, system and method for managing contacts within an online stationery system
JP5676996B2 (en) * 2010-09-27 2015-02-25 キヤノン株式会社 Layout system, information processing apparatus, layout method, and program
US20130013445A1 (en) * 2011-07-07 2013-01-10 Crociata Darcy L System and method for producing an album
KR101993245B1 (en) * 2012-11-08 2019-06-26 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. Apparatus for controlling print and method for controlling print
WO2014113819A1 (en) * 2013-01-18 2014-07-24 Oh! Development Inc. Systems and methods for a pilot and personal relationship manager
JP6155702B2 (en) * 2013-03-01 2017-07-05 セイコーエプソン株式会社 Printing apparatus, printing apparatus control method, and control apparatus
US10565219B2 (en) 2014-05-30 2020-02-18 Apple Inc. Techniques for automatically generating a suggested contact based on a received message
US10579212B2 (en) 2014-05-30 2020-03-03 Apple Inc. Structured suggestions
US9560402B2 (en) * 2014-07-23 2017-01-31 Highlands Technologies Solutions Methods for displaying personalized messages, images and the like at event centers including cinema
US10007943B2 (en) * 2014-12-09 2018-06-26 Minted, Llc Vendor website GUI for marketing greeting cards and envelopes
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
WO2017031545A1 (en) * 2015-08-25 2017-03-02 Cardly Pty Ltd "online system and method for personalising a greeting card or stationery with handwriting and doodles using a computer"
US10445425B2 (en) 2015-09-15 2019-10-15 Apple Inc. Emoji and canned responses
US11153259B2 (en) * 2017-06-15 2021-10-19 Jennifer Uhll System and method for creation and scheduling of future communications and gifts

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092054A (en) * 1994-05-06 2000-07-18 Hallmark Cards, Incorporated Method and apparatus for communicating with a card distribution center for selecting, ordering, and sending social expression cards
US20020059340A1 (en) * 1998-10-09 2002-05-16 Shari M. Centrone Digital greetings
US20020178078A1 (en) * 2000-10-24 2002-11-28 Otoole Sean David System and method for retaining clients by automated services fulfillment
US20040254859A1 (en) * 2003-03-28 2004-12-16 Aslanian John R. Electronic cards systems and methods
US20070150542A1 (en) * 2000-12-22 2007-06-28 Goodcontacts Research Ltd. Method and system for automatically updating contact information within a contact database
US20080294977A1 (en) * 1999-10-18 2008-11-27 4Yoursoul.Com Method and apparatus for creation, personalization, and fulfillment of greeting cards with gift cards

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649216A (en) * 1991-05-17 1997-07-15 Joseph S. Sieber Method and apparatus for automated layout of text and graphic elements
US5950193A (en) * 1997-12-16 1999-09-07 Microsoft Corporation Interactive records and groups of records in an address book database
US7362822B2 (en) * 2004-09-08 2008-04-22 Intel Corporation Recursive reduction of channel state feedback

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092054A (en) * 1994-05-06 2000-07-18 Hallmark Cards, Incorporated Method and apparatus for communicating with a card distribution center for selecting, ordering, and sending social expression cards
US20020059340A1 (en) * 1998-10-09 2002-05-16 Shari M. Centrone Digital greetings
US20080294977A1 (en) * 1999-10-18 2008-11-27 4Yoursoul.Com Method and apparatus for creation, personalization, and fulfillment of greeting cards with gift cards
US20020178078A1 (en) * 2000-10-24 2002-11-28 Otoole Sean David System and method for retaining clients by automated services fulfillment
US20070150542A1 (en) * 2000-12-22 2007-06-28 Goodcontacts Research Ltd. Method and system for automatically updating contact information within a contact database
US20040254859A1 (en) * 2003-03-28 2004-12-16 Aslanian John R. Electronic cards systems and methods

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2534625A4 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10600139B2 (en) 2011-04-29 2020-03-24 American Greetings Corporation Systems, methods and apparatus for creating, editing, distributing and viewing electronic greeting cards
WO2021211851A1 (en) * 2020-04-15 2021-10-21 Snap Inc. Automatically generated personalized message
US11290403B2 (en) 2020-04-15 2022-03-29 Snap Inc. Automatically generated personalized message
US11558328B2 (en) 2020-04-15 2023-01-17 Snap Inc. Automatically generated personalized message

Also Published As

Publication number Publication date
US20110141493A1 (en) 2011-06-16
CA2788123A1 (en) 2011-08-18
EP2534625A4 (en) 2014-11-26
EP2534625A1 (en) 2012-12-19

Similar Documents

Publication Publication Date Title
US8196038B2 (en) System, method and graphical user interface for managing contacts and calendars within an online card system
US9881330B2 (en) System, method and graphical user interface for managing contacts and calendars within an online card system
US8234181B2 (en) System, method and graphical user interface for managing contacts and calendars within an online card system
US20110141493A1 (en) System and method for managing contacts and calendars within an online card system
US8239290B2 (en) Graphical user interface, system and method for managing contacts within an online stationery system
CA2799575C (en) Social networking system and method for an online stationery or greeting card service
US20200356954A1 (en) System and method for visual communication between buyers and sellers
US8910055B2 (en) Online system and method for automated greeting card generation and mailing
US20110279851A1 (en) Rsvp system and method for an online stationery or greeting card service
US20110283196A1 (en) Relationship system and method for an online stationery or greeting card service
US11153259B2 (en) System and method for creation and scheduling of future communications and gifts
US20120265758A1 (en) System and method for gathering, filtering, and displaying content captured at an event
CA2189739C (en) Method and apparatus for communicating with a card distribution center for selecting, ordering and sending social expression cards
US20120210200A1 (en) System, method, and touch screen graphical user interface for managing photos and creating photo books
US20120054589A1 (en) System and method for an online memories and greeting service
US20090158200A1 (en) Integrated graphical user interface and system with focusing
US20160358241A1 (en) Systems and methods for facilitating the creation, ordering, processing and delivery of personalized bereavement packages
US8255290B2 (en) System and method for managing contacts within an online stationery system
US20110145097A1 (en) System and method for managing contacts within an online stationery system
US11615432B1 (en) Computer network based, marketing system and method for real estate agents

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11742686

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2788123

Country of ref document: CA

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2011742686

Country of ref document: EP