ASSOCIATING DEALS WITH EVENTS IN A SOCIAL NETWORKING SYSTEM

Information

  • Patent Application
  • 20120239485
  • Publication Number
    20120239485
  • Date Filed
    November 04, 2011
    13 years ago
  • Date Published
    September 20, 2012
    12 years ago
Abstract
Social networking systems create representations of events associated with deals and populate attributes of the event based on information associated with the deal. Examples of attributes populated based on the deal include location for the event, potential participants for the event, or time for the event. The deal can be a social deal that is activated by participation of multiple users of the social networking system. The social networking system synchronizes potential or actual participants for the event with potential or actual participants of the social deal. The social networking system identifies events represented in the social networking system that are associated with the deal and suggests possible interactions with the entities to users associated with the deal. For example, the social networking system may request the user to become member of a social group associated with the deal, or purchase another deal associated with the current deal.
Description
BACKGROUND

This invention relates to deals in social networking systems and in particular to associating deals with events represented in a social networking system.


Providers of services and/or products offer deals to potential or current customers to entice them to make purchases. A deal is an offer to sell a product or service to a customer, oftentimes including a particular benefit available to customers who buy the product or service through the deal. For example, a deal may offer a product or service at a discounted price, such as a fixed percent of the original price or a fixed amount below the original price. A deal may offer a discount on a future purchase of a product/service upon a purchase of a similar or a different product/service. A deal may also offer access to inventory not open to the general population. For example, a deal may provide discount on a second product upon purchase of a first product. Deals are often offered by providers who are different from the actual seller of the product or service. The deal provider manages the deal purchase transaction and gives a voucher for the transaction to the customer, who can then redeem the voucher for the purchased product or service.


Providers offer deals for various reasons. Sometimes providers offer deals on products that they are trying to dispose off quickly to make room for a new line of products. Sometimes providers offer deals since they realize that users are interested in making a purchase only if there is a deal available. Conversely, consumers often closely monitor deals. Therefore, deals draw attention of users to particular products and bring the product on the radar of potential customers.


Providers are always coming up with creative ways to offer deals to get user's attention. A user is more likely to be interested in deals if the user can utilize the benefits of the deals effectively. If a user's experience in utilizing deals is a pleasant experience, the user is likely to utilize more deals from the provider in future. Therefore, providers would like to make the user's experience in purchasing and utilizing a deal as easy and pleasant to the user as possible. Nevertheless, providers have not leveraged the power of social networking to make deals more effective to achieve their goals.


SUMMARY

Embodiments of the invention create representations of events in the social networking system based on deals. A user performs an action associated with a deal, for example, by sending a request to participate in a deal. The social networking system creates a representation of an event associated with the deal and populates attributes of the event based on information associated with the deal. For example, the social networking system determines potential locations for the event, potential participants for the event, or time for the event based on the deal. The social networking system may send information describing the event to the user and allow the user to update the attribute values if needed.


In an embodiment, the deal is a social deal that requires participation by multiple users of the social networking system in order to be activated. The social networking system synchronizes the potential or actual participants for the event with the potential or actual participants of the social deal. For example, if a potential participant of the social deals confirms participation in the social deal, the event is updated to change the potential participant to a confirmed participant. Similarly, if there is an update to information associated with the participants of the event, the social deal is updated with the new information.


In an embodiment, the social networking system identifies entities represented in the social networking system that are associated with the deal. Examples of entities associated with the deal include social groups, images, other deals, or events represented in the social networking system. The social networking system identifies actions associated with the identified events and sends requests to the user associated with the deal to perform the actions. For example, the social networking system may request the user to become member of the social group associated with the deal, comment on an image of a location associated with the deal, purchase another deal associated with the current deal, or send an RSVP message for an event associated with the deal.


The features and advantages described in the specification are not all inclusive and, in particular, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a diagram of a system environment for allowing users of a social networking system to interact with social deals, in accordance with an embodiment of the invention.



FIG. 2 is a diagram of the system architecture of a social networking system for allowing users of a social networking system to interact with social deals, in accordance with an embodiment of the invention.



FIG. 3 is a user interface for allowing a user of a social networking system to interact with deals of interest to the user, in accordance with an embodiment of the invention.



FIG. 4 is a user interface for presenting social information associated with deals of interest to the user of a social networking system, in accordance with one embodiment of the invention.



FIG. 5 shows a screenshot of a user interface displaying connections of a user of the social networking system as potential participants of a social deal, in accordance with one embodiment of the invention.



FIG. 6 shows a flowchart of a process for associating deals with actions in the social networking system that a user can take, in accordance with one embodiment of the invention.



FIG. 7 a flowchart of a process for creating events associated with deals in the social networking system, in accordance with one embodiment of the invention.





The figures depict various embodiments of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein.


DETAILED DESCRIPTION

Embodiments use social networking systems to incorporate social information of users to improve user interactions with deals. Incorporation of social information provides better experience for the users interacting with the deals which in turn results in more users getting interested in deals. This furthers the goals of the providers since the providers are attempting to increase the number of potential customers by offering deals. Besides, deals provide a social experience to the users and a valuable interaction with the social networking system. Users that find the social networking system valuable are more likely to be loyal to the social networking system. Increased loyalty of the users to the social networking system is likely to attract more providers offering advertisements and deals via the social networking system. Since social networking systems derive revenue from advertisements, this provides increased revenues for the social networking systems.


Deals can provide a social experience for people. Multiple users may participate in a social deal or make a purchase associated with the deal together. For example, friends may go shopping together, go to a restaurant together, or even make an online purchase together. Users may communicate with each other via email, phone, or conventional mechanisms to complete the purchase associated with the deal and exploit the benefits of the deal. The social networking system utilizes the social information available in the social networking system to facilitate the social experience associated with a deal.


One way embodiments incorporate social information in deals is by creating representations of events associated with deals. Users of a social networking system often create representations of events in the social networking system. An event may be a concert, a game, or simply a dinner at a restaurant. Users often include their connections in the events, for example, a user may invite a set of friends for meeting over a dinner. Embodiments determine whether a deal may be associated with a potential event for a user and create a representation of the associated event if possible. The user is allowed to interact with the event to provide additional information. The social networking system uses the information available in the deal to assist the user in finalizing the event. The social networking system synchronizes the information in the deal with the information in the event so as to update one entity when there is a relevant change in the other entity.


Information Describing a Deal

A deal is associated with an offer made to a user that provides certain benefits to the user upon acceptance. The benefit offered by a deal corresponds to a value of the deal or a price of the deal. For example, a deal that offers higher benefits provides higher value compared to a deal that offers lower benefits. In an embodiment, a user can purchase a deal by paying a price for the deal. The user can subsequently redeem the deal by making a purchase or a transaction. Providers often present a deal to the users along with their advertisements. Typically, the benefits offered by a deal are associated with a transaction, for example, a purchase of a product or service offered by the provider. A transaction between a customer and a provider involves an exchange between a user and a provider, wherein the customer provides money to the provider and the provider provides one or more products and/or services to the customer. However a transaction involving a deal provides additional benefits to the user.


Benefits offered by a deal can include a reduction in the price of the product and/or service. Alternatively, the benefits provided by a deal may include advantages including free shipping, a coupon for a subsequent purchase, a reduction in price of a different item bought in the same transaction, no sales tax, and the like. The benefits associated with a deal are referred to as the value of the deal or the price of the deal.


A deal may be associated with a time period. For example, a deal can only be used after a start date and before an end date. The deal may be associated with other limits on the purchases. For example, the deal may apply to all items purchased in a transaction, the deal may apply to all purchases made on a particular day, or the deal may apply to a single item. These limits on the purchases applicable to a deal are called the maximum redemption of the deal.


The deal may also be associated with a location. For example, one location of a store may offer a deal but other locations may not. A deal may also be associated with an event. A deal may be applicable to in-store purchases as opposed to online purchases, or the deal may be for online purchases only. The deal may also have a specific redemption method. For example, the deal may require a user to present a coupon or a coupon code, the deal may be automatically offered upon making a purchase, the deal may require use of a particular type of payment mechanism including a specific type or credit or debit card, or the deal may require presentation of proof of membership in a club.


A deal may be associated with other conditions, for example, the number of purchases made by the user must exceed a threshold value or the total value of the purchases must exceed an amount. When the required conditions associated with a deal are satisfied, the deal is considered activated. The activation of a deal may require an explicit status change by the provider of the deal. Alternatively, the activation may be automatic upon satisfaction of the required conditions and the user gets the benefits of the deal when the user completes an applicable transaction. The user may be required to complete a transaction associated with the purchase to redeem an activated deal.


Activating a deal comprises marking the deal as ready for use by a user. For example, a deal that is activated can be presented to the user as a coupon that can be redeemed by the user. An activation of a deal may require certain actions to be performed by multiple users. For example, the activation of a deal may require multiple users to be present at a location associated with the provider. If more than a threshold number of user's friends' check-in to a location along with the user, the deal is activated. Each user who participates in the activation of the deal is called a participant of the deal. The deal may offer benefits to one user or to all the participants of the deal. For example, a restaurant deal activated by a number of friends present at the location may offer a price reduction upon payment by a single user or it may offer price reduction to each participant making a separate payment. In an embodiment, activation of the deal comprises redemption of the deal. For example, if more than a threshold number of connections of a user purchase tickets for an event (for example, a concert) via the social networking system, a social deal provides the tickets at a discounted price. In this case, the activation of the deal happens when the deal is redeemed.


A reference to a deal in this disclosure may refer to an instance of deal associated with a particular user or a type of a deal offered by a provider. The context of the disclosure clarifies whether a deal refers to an instance of a deal or deals of a particular type. For example, a deal may refer to an offer by a particular provider that gives 20% discount on a product if purchased before a given date. A deal may also refer to an instance of a social deal that is specific to a user and requires participation by connections of the user. There may be multiple instances of the deal created for different user. Each instance of the deal stores information specific to the deal, for example, users participating in that instance.


Deals System Environment


FIG. 1 is a diagram of a system environment for allowing users of a social networking system to interact with social deals, in accordance with an embodiment of the invention. The users 135 interact with the social networking system 100 using client devices 105. The provider systems 120 (also referred to as “provider” herein) interact with the social networking system 100 to provide information describing the deals. Some embodiments of the systems 100, 120, and 130 have different and/or other modules than the ones described herein, and the functions can be distributed among the modules in a different manner than described here.



FIG. 1 and the other figures use like reference numerals to identify like elements. A letter after a reference numeral, such as “130A,” indicates that the text refers specifically to the element having that particular reference numeral. A reference numeral in the text without a following letter, such as “130,” refers to any or all of the elements in the figures bearing that reference numeral (e.g. “130” in the text refers to reference numerals “130A” and/or “130B” in the figures).


A provider system 120 comprises a provider application programming interface (API) module 125 that allows the social networking system 100 to interact with the provider system. In an embodiment, the provider APIs 125 may be implemented as a web service. The provider APIs 125 allow the social networking system 100 to send requests for information to the provider system 120 and receive information associated with the deals from the provider system 120. For example, the social networking system 100 may send a request to the provider system 120 to determine whether a user of the social networking system 100 is an existing customer of the provider system 120.


In one embodiment, the client device 105 used by a user 135 for interacting with the social networking system 100 can be a personal computer (PC), a desktop computer, a laptop computer, a notebook, a tablet PC executing an operating system, for example, a Microsoft Windows-compatible operating system (OS), Apple OS X, and/or a Linux distribution. In another embodiment, the client device 105 can be any device having computer functionality, such as a personal digital assistant (PDA), mobile telephone, smartphone, etc.


The client device 105 executes a user interface called dashboard 130 to allow the user 135 to interact with the social networking system 100. The dashboard 130 allows the user 135 to perform various actions related to deals. These actions include retrieving information describing deals that are likely to be of interest to the user, recommending deals to connections of the user, participating in a social deal, checking in to a location associated with a deal provider, and making a purchase using the deal. In an embodiment, the dashboard 130 is presented to the user via a browser application that allows a user to retrieve and present information from the internet or from a private network.


The social networking system 100 offers its users the ability to communicate and interact with other users of the social networking system 100. Users join the social networking system 100 and then add connections to a number of other users of the social networking system 100 to whom they desire to be connected. As used herein, the term “friend” refers to any other user to whom a user has formed a connection, association, or relationship via the social networking system 100. The term friend need not require that users to actually be friends in real life, (which would generally be the case when one of the members is a business or other entity); it simply implies a connection in the social networking system 100.


The social networking system 100 maintains different types of objects representing entities, for example, user profile objects 175, connection objects 195, event objects 190, deal objects 180, and provider objects 185. An object may be stored for each instance of the associated entity. A user profile object 175 stores information describing a user of the social networking system 100. A connection object 195 stores information describing relations between two users of the social networking system or in general any two entities represented in the social networking system 100. The event objects 190 store representations of real-world events in the social networking system 100. The deal objects 180 represent deals and the provider objects represent providers in the social networking system 100. These objects are further described in detail herein.


The social networking system 100 comprises an external system interface 110, a dashboard manager 115 and various modules described in FIG. 2. The dashboard manager 115 allows users of the social networking system 100 to interact with the deals via the dashboard 130 user interface. The dashboard manager 115 presents information describing deals of interest to a user. For example, the dashboard manager may present different types of deals to two users that have different interests.


The dashboard manager 115 allows a user 135 to perform various actions associated with the deal. These actions include purchasing the deal, recommending the deal to a connection, commenting on the deal, following the deal, liking the deal, participating in a social deal, uploading an image associated with the deal, for example, uploading an image taken at a location associated with the deal for display as part of the user's profile. A user purchases a deal by completing a transaction that takes advantage of the deal. For example, if the deal offers a 20% discount on purchase of a product, the user purchases the deal by purchasing the product and redeeming the deal for the purchase.


The dashboard manager 115 receives requests from the user 135 for performing actions related to deals. A user 135 sends requests to the dashboard manager 115 via the dashboard 130. For example, a user 135a may send a request to recommend a deal to a connection of the user 135a (say, user 135b). The dashboard manager 115 may invoke other modules of the social networking system 100 shown in FIG. 2 to perform a requested action.


The external systems interface 110 of the social networking system 100 allows various modules of the social networking system 100 to interact with external systems including the provider systems 120. For example, a module of the social networking system 100 may update the provider system 120 with information describing a transaction made by a user 135. The external system interface 110 invokes the provider APIs 125 for interacting with the provider systems 120. The external systems interface 110 also allows external systems to interact with the social networking system 100, for example, to access the social network information or to update information present in the social networking system 100. For example, the social networking system 100 can use the external systems interface 110 to interact with an external system that offers calendar services allowing users to schedule calendar entries. The social networking system 100 may create a new calendar entry for a meeting in the external calendar service using the external systems interface 110 and the external calendar service can provide notifications, e.g., RSVP messages from participants to the social networking system 100 using the external systems interface 110. The social networking system 100 can propagate the notification messages to appropriate users. The social networking system 100 comprises modules other than those shown in FIG. 1, for example, modules illustrated in FIG. 2 that are further described herein.


Social Networking System Architecture


FIG. 2 is a diagram of the system architecture of a social networking system for allowing users of a social networking system to interact with social deals, in accordance with an embodiment of the invention. The social networking system 100 includes a web server 220, a newsfeed generator 235, a dashboard manager 115, an external system interface 110, an action logger 240, an action log 245, a social deal manager 250, a deal pricing module 255, an event manager 280, a user profile store 265, a connection store 230, a deal store 225, an event store 260, and a provider store 275. In other embodiments, the social networking system 100 may include additional, fewer, or different modules for various applications. Conventional components such as network interfaces, security mechanisms, load balancers, failover servers, management and network operations consoles, and the like are not shown so as to not obscure the details of the system.


The social networking system 100 allows users to communicate or otherwise interact with each other and access content, as described herein. The social networking system 100 stores user profile objects 175 in the user profile store 265. The information stored in user profile store 265 describes the users of the social networking system 100, including biographic, demographic, and other types of descriptive information, such as work experience, educational history, gender, sexual preferences, hobbies or preferences, location, and the like. The user profile store 265 may also store information provided by the user, for example, images, videos, comments, and status updates. Images of users may be tagged with the identification information of the appropriate users displayed in an image.


Any action that a particular user takes using the social networking system 100 is associated with the user's profile 175, through information maintained in a database or other data repository. Such actions may include, for example, adding a connection to the other user, sending a message to the other user, reading a message from the other user, viewing content associated with the other user, seeing what deals another user likes or is following, attending an event posted by another user, among others. In addition, a number of actions described below in connection with other objects are directed at particular users, so these actions are associated with those users as well.


The connection store 230 stores data describing the connections between different users of the social networking system 100, for example, as represented in a connection object 195. The connections are defined by users, allowing users to specify their relationships with other users. For example, the connections allow users to generate relationships with other users that parallel the users' real-life relationships, such as friends, co-workers, partners, and so forth. In some embodiment, the connection specifies a connection type based on the type of relationship, for example, family, or friend, or colleague. Users may select from predefined types of connections, or define their own connection types as needed.


Connections may be added explicitly by a user, for example, the user selecting a particular other user to be a friend, or automatically created by the social networking site based on common characteristics of the users (e.g., users who are alumni of the same educational institution). Connections in social networking system 100 are usually in both directions, but need not be, so the terms “connection” and “friend” depend on the frame of reference. For example, if Bob and Joe are both connected to each other in the social networking system 100, Bob and Joe, both users, are also each other's friends. The connection between users may be a direct connection; however, some embodiments of a social networking system 100 allow the connection to be indirect via one or more levels of connections. Connections may also be established between different types of entities for example, the social networking system 100 can have an object representing a school and users of the social networking system 100 that study in the school or who are alumni of the school can connect with the school in the social networking system 100.


The deal store 225 stores information describing deals, for example, deals represented as deal objects 180. The deal object 180 is associated with metadata describing the deal and comprises data specific to an instance of the deal. An instance of a deal may be created for each user that performs certain actions associated with the deal. For example, if the activation of a deal requires participation by connections of a user, the deal object 180 stores information describing the participants in the deal. As other connections of the user perform actions that contribute towards activation of the deal, the social networking system 100 updates the information stored in the deal object 180.


The information stored in a deal object 180 comprises a description of the deal, one or more deadlines associated with the deal, for example, a start date and end date during which the deal can be used, a location associated with the deal, a type of the deal, a redemption method for the deal, maximum redemption associated with the deal, a description of the benefit offered by the deal, for example, a percent reduction in price, any conditions or rules associated with the deal, a profile page associated with the deal on the social networking system 100, and other information. The deal object also stores information identifying the deal provider 120, a user associated with the deal, and connections of the user associated with the deal, for example, if the deal activation requires participation by connections of the user. The deal object 180 may store information describing a source of the deal, for example, whether the deal was imported from an external system, or the deal was added to the social networking system 100 by the deal provider 120, or if the deal was initiated by a user of the social networking system 100.


A deal object may be associated with different types of social information including users of the social networking system 100, events represented in the social networking system 100, actions performed by users that are associated with the deal, and the like. This information may be stored in various data stores in the social networking system 100. Associations between the deal objects 180 and the relevant social information associated with the deal may be either stored explicitly in the social networking system 100 or determined as needed. The deal object 180 may be associated with actions of users associated with the deal, for example, users that liked the deal or are following the deal, users who subscribed to the deal, users who purchased the deal, users who shared or gifted the deal, users who checked-in to locations associated with the deal, comments made by users on the deal etc.


A deal store 225 also stores a category associated with each deal that describes the type of product or services associated with the deal. Examples of categories of deals include “dining,” “shopping,” “professional services,” “beauty and spas,” “health and fitness,” “automotive,” “pet care,” “financial services,” “travel,” and “arts and entertainment.” In an embodiment, the social networking system 100 may have a list of business categories defined to classify various businesses. The social networking system 100 stores a mapping from the business categories to the deal categories to allow objects associated with business categories to be matched with deal categories. For example, business categories “restaurant” and “bar” map to the deal category “dining” Similarly, business categories “hotel,” “airport,” and “transit stop” map to deal category “travel.”


The event store 260 stores information describing events associated with the social networking system 100. An event object 190 may be defined for a real-world event, such as a birthday party. A user interested in attending the event may establish a connection with the event object. A user may create the event object 190 by defining information about the event such as the time and place and a list of invitees. Other users may send a reply to the invitation (an RSVP message) i.e., accept or reject the invitation, comment on the event, post their own content (e.g., pictures from the event), and perform any other actions enabled by the social networking system 100 for the event 185. Accordingly, the creator of the event object 190 as well as the invitees for the event may perform various actions that are associated with that event object 190. Events may be associated with deals, for example, an event object representing a concert may be associated with a deal providing a discounted price for the concert. The event store 260 stores the associations between events and deals.


The provider store 275 stores the provider objects 185 that store information describing the providers 120. The information describing a provider 120 includes categories associated with products/services offered by the provider, locations associated with the provider, and information needed for interacting with the provider APIs 125. In an embodiment, the provider object 185 locally caches information describing the provider that is frequently used by the social networking system 100. The locally cached information is synchronized with the information stored in the provider system 120, for example, based on a regular schedule, or every time the information stored in the provider system 120 changes. The social networking system 100 stores associations between the provider objects 185 and the deals provided by the provider 120.


The web server 220 links the social networking system 100 via the network 210 to one or more client devices 105; the web server 220 serves web pages, as well as other web-related content, such as Flash, XML, and so forth. The web server 220 provides the functionality of receiving and routing messages between the social networking system 100 and the client devices 105 as well as other external systems, for example, the provider systems 120. These messages can be instant messages, queued messages (e.g., email), text and SMS (short message service) messages, or any other suitable messaging technique. In some embodiments, a message sent by a user to another can be viewed by other users of the social networking system 100, for example, by the connections of the user receiving the message. An example of a type of message that can be viewed by other users of the social networking system 100 besides the recipient of the message is a wall post.


The action logger 240 is capable of receiving communications from the web server 220 about user actions on and/or off the social networking system 100. The action logger 240 populates the action log 245 with information about user actions to track them. Any action that a particular user takes with respect to another user is associated with each user's profile, through information maintained in a database or other data repository, such as the action log 245. Such actions may include, for example, adding a connection to the other user, sending a message to the other user, reading a message from the other user, viewing content associated with the other user, attending an event posted by another user, among others. In addition, a number of actions described below in connection with other objects are directed at particular users, so these actions are associated with those users as well. When a user performs an action using the social networking system 100, the social networking system 100 adds an entry for that action to the log 245.


In some embodiments, the system 100 is not a social networking system but communicates with a social networking system to obtain the necessary social network information. The system 100 may communicate with the social networking system, for example, using APIs provided by the social networking system 100. In these embodiments, some modules shown in FIG. 2 may run in the system 100, whereas other modules may run in the remote social networking system.


The interactions between the client devices 105 and the social networking system 100 as well as the interactions between the provider 120 and the social networking system 100 are typically performed via a network 210, for example, via the internet. The network 250 enables communications between the client device 220 and the social networking system 210. In one embodiment, the network 210 uses standard communications technologies and/or protocols. In another embodiment, the entities can use custom and/or dedicated data communications technologies instead of, or in addition to, the ones described above. Depending upon the embodiment, the network 210 can also include links to other networks such as the Internet.


Deals Dashboard

The dashboard 130 provides a user interface for allowing a user of a social networking system 100 to view and interact with deals. FIG. 3 shows screenshots of the dashboard, in accordance with an embodiment of the invention. The dashboard 130 can be a part of a user interface that allows various types of user interactions with a social networking system 100. A user viewing the user's information 300 on a social networking system 100 (for example, from the user's home page) can request different type of information from the social networking system 100 by pressing buttons or links 350. The different types of information requested by the user include newsfeed stories of interest to the user, messages received by the user via the social networking system 100, connections of the user, events associated with the user, and the like. The user can request information describing deals associated with the user by clicking on button 320.


When a user requests deals information, the dashboard manager 115 receives deals relevant to the user as suggested by the suggestion module 265. The suggestion module 265 ranks various deals based on their relevance to a user and selects deals for suggestion to the user. A user can select a particular deal 310 presented to the user and request more information describing the deal. FIG. 4 show screenshots of a user interface presenting social information associated with a particular deal selected by the user. FIG. 4 shows detailed information describing the deal, for example, the location 420 of the deal, the deal price 440, and images 450 describing the product/services associated with the deal. The user interface presented in FIG. 4 allows user actions 410 associated with the deal including purchasing the deal, recommending the deal to a connection, commenting on the deal, liking the deal, participating in a social deal, uploading an image associated with the deal and the like. The dashboard 130 may also present different types of social information associated with the deal, for example, connections 430 of the user that performed an action associated with the deal, events associated with the deal, social groups associated with the deal, images associated with the deal and the like.


Associating Deals with Actions


A deal may be associated with an event represented in the social networking system 100. A deal can often be related to a real-world event. For example, a deal may be associated with a concert event or a restaurant deal may be associated with an event corresponding to a party. Real world events can be represented in the social networking system 100, for example, as an event object 190 and the representation stored in the event store 230. The representation of an event in the social networking object may be associated with a profile page that provides information describing the event and allows users to take actions associated with the event, for example, sending an RSVP message, commenting on the event, liking the event, uploading pictures associated with the event and the like.


The event manager 280 analyzes the deal to determine certain attributes of the event. The event manager 280 can obtain the location of the event based on a location associated with the deal. For example, the location of an event corresponding to a restaurant deal is very likely to be the location of the restaurant. In an embodiment, the event manager 280 may provide a choice of multiple values of the attribute to the user via the dashboard manager 115 to allow user to select one particular value. For example, if a restaurant offering a deal has multiple locations, the event manager 280 can populate the location attribute for the corresponding event with various locations of the restaurant.


The event manager 280 can populate the time for the event based on time information obtained from the deal. For example, a user-initiated deal may be associated with a very narrow range of time. The time for the occurrence of the event can be pre-populated based on the range of time associated with the deal. The event manager 280 can allow the user 135 to modify the time of the event using the dashboard 130.


The event manager 280 can populate the attendees for an event created for a social deal based on the participants of the deal. The event manager 280 may suggest attendees for the event based on social information associated with the user, for example, connections that purchased similar deals in the past, connections that have subscribed to the deal or to deals from that category or deals from the same provider in the past, connections that checked-in to the location associated with the provider of the deal, connections that are tagged into a photo associated with the provider or the provider's location, or in photos associated with the category of deals, or connections that have interacted with the user on topics related to the category of the deal. The user 135 can modify the attendee list by adding or removing the attendees populated by the event manager 280 using the dashboard 130. The event manager 280 can populate the host of the event associated with a social deal as the person who requested initiation of the deal.


The social networking system 100 may provide a user interface that allows a user to provide the information for creating a deal in a structured format or in an unstructured format as natural language text. FIG. 5 shows a user interface allowing a user to initiate a deal via a social networking system 100. As shown in FIG. 5, a user can propose a deal via a user interface 500. The user can specify the type 510 of activity that the user is interested in (e.g., eating at a restaurant), the time 520 for the activity, the place for the activity 530 and social information 540 associated with the activity, for example, the number of connections that are likely to participate or information identifying the connections that intend to participate. The information provided by the user via the user interface 500 can be shared with connections of the user, for example, via newsfeed. For example, if a user indicates that he would like to eat at a restaurant along with 4 friends, the story can be provided to the user's connections and the connections decide whether they want to participate in the deal or not.


A deal may be associated with an existing event. For example, a concert may be associated with an existing event object 190. If a user purchases a deal associated with the concert, the event manager 280 can send a reply message to the event, for example, an RSVP message on behalf of the user for the event. The event manager 280 may request confirmation from the user 135 via the dashboard 130 before sending the reply message for the event.



FIG. 6 shows a flowchart of a process for associating deals with actions in the social networking system that a user can take. The dashboard manager receives 610 a request for performing an action associated with a deal. The action associated with the deal can include purchasing the deal, participating in a social deal, or checking in to a location of the deal. The dashboard manager 115 sends a request to the suggestion module 265 to determine whether there are any actions associated with the deal that can be suggested to the user. The suggestion module 265 determines 620 one or more entities represented in the social networking system 100 that are associated with the deal. Once the required information is available, the social networking system 100 can send the information to the provider to check if the deal is acceptable to the provider.


Examples of entities represented in the social networking system 100 that can be associated with a deal include a social group, an event, an image, or another deal. A social group may be associated with the deal if the information describing the social group including the interests of members of the group matches the category of the deal. The social group may match the deal if a user or the provider explicitly indicates so. For example, the social group may be created by the provider of the deal. Examples of images associated with a deal include images determined to be captured at a location of the deal and images showing a product associated with the deal. A deal can be associated with another deal if the two deals are offered by the same provider for a related product, if the deal is offered by another provider that offers similar products, or if the deal belongs to the same category. A deal can be associated with another deal of a user interested in the first deal is also likely to be interested in the second deal. For example, a concert deal can be associated with a deal of a restaurant located close to the location of the concert since there is a likelihood that a person going to the concert may utilize the services of the restaurant before or after the concert. Similarly a deal for a restaurant can be associated with a deal from an ice cream shop close to the restaurant, since a user might visit the ice cream shop after a meal at the restaurant. A deal can be associated with another deal if the two deals are for related products or services. In an embodiment, the suggestion module 265 matches attributes of the deals to determine an association between them. For example, if a deal requires physical presence of a user at a location, the suggestion module 265 ensures that the locations associated with the two deals are within a threshold distance. Similarly, if the deal is associated with a particular time, for example, the time of an event, the suggestion module 265 matches the times of the deals. For example, if a deal does not become active until the time of the event, the deal is not associated with a deal for the event.


The suggestion module 265 identifies 630 an action associated with the representation of the entity associated with the deal that can be executed by a user. The type of action requested may depend on the type of entity represented in the social networking system 100 that is associated with the deal. For example, if the entity associated with the deal is a social group, the requested action can be to become member of the social group. If the entity associated with the deal is an image, the requested action can be to retrieve the image, to comment on the image, to like the image, or to suggest the image to another user. If the entity associated with the deal is another deal, the requested action can be any action associated with a deal including purchasing the deal, suggesting the deal to a friend, or following the deal. If the entity associated with the deal is an event, the requested action can be to send an RSVP message for the event. The suggestion module 265 sends 640 a request to perform the action to the user 135 via the dashboard manager 115.


In an embodiment, the social networking system 100 provides social deals that require actions associated with connections of a user in order to activate the deal. A social deal may be activated by actions performed by the connections of the user. For example, the social deal is activated by more than a threshold number of connections of the user checking-in to a location associated with the deal. Alternatively, the deal may be activated when more than a threshold number of connections of a user purchase the deal. The social deal manager 250 invokes the event manager 280 to create and schedule an event associated with the social deal. The event manager 280 receives information identifying the potential participants of the social deal from the social deal manager 250. The event manager 280 identifies potential participants of the event based on the potential participants of the social deal.


A potential participant of the social deal may confirm with the social deal manager 250 that the potential participant is participating in the social deal. The event manager 280 changes the status of the potential participant in the event as a confirmed attendee for the event. On the other hand a potential participant of the event may confirm with the event manager 280 that the potential participant is participating in the event. The event manager 280 informs the social deal manager 250 so that the social deal manager 250 updates the status of the potential participant as a confirmed participant of the social deal. In an embodiment, the total number of confirmed participants in the social deal determines the price of the social deal or the value of the benefit offered by the social deal. Therefore, the event manager 280 synchronizes the participants for the event with the social deal thereby updating one of these entities when the other entity changes. In an embodiment, a new user that was not originally a participant of the social deal or the event may view the event and request to be added to the event. For example, if a newsfeed describing the event is sent to connections of the user that originated the social deal, one or more connections may be interested in the event. If the new user is added to the event, the event manager 280 updates the social deal by adding the new user as a potential participant of the social deal, subject to an approval by the user originating the social deal.



FIG. 7 is a flowchart of a process for creating events associated with deals in the social networking system, in accordance with one embodiment of the invention. The dashboard manager receives 710 a request for performing an action associated with a deal, for example, purchasing the deal, participating in a social deal, or checking in to a location of the deal. The dashboard manager 115 invokes the event manager 280 to create 720 a representation of an event associated with the deal. The event manager 280 populates 730 the attributes of the event based on the information describing the deal. For example, the event manager 280 may populate 730 potential participants based on the deal. If the deal is a social deal, the event manager 280 may determine potential participants for the event based on users that are potential participants of the social deal. The event manager 280 may select connections of the user as potential participants, for example, connections of the user that have interacted with the current deal or deals similar to the current deal. The event manager 280 may analyze past events based on deals similar to the current deal to determine the potential participants. In an embodiment, the event manager 280 manager grants access to the event to all the potential participants so that they can access information describing the event and also interact with the event, for example, to indicate whether they will be participating in the event or not.


The event manager 280 may propose time of the event based on information associated with the deal. For example, if the deal is for a show (concert, movie, game or any other type of show), the event manager may select potential time slots for the events based on the timing of the show. If the deal is for a restaurant, the event manager 280 suggests times for an event that occur before the deal expires. The event manager 280 may suggest a location for the event based on locations of businesses associated with the deal, for example, the deal provider. For example, if the deal is for a show, the event manager 280 suggests various locations where the deal is valid for the show. The event manager 280 may use locations associated with the potential/actual participants of the event or the deal to select one or more locations for the event. For example, if the deal is valid for a show that is being presented in various cities, the event manager 280 may propose the city in which most of the potential participants of the event are located. In an embodiment, the event manager 280 analyzes previous locations of similar events in which the user participated to suggest a location.


The event manager 280 sends information describing the event to the user and also to potential participants of the event. If any user requests information describing the event, the event manager 280 sends information describing the deal as part of the information provided to the user. The user can change the attributes and update the events if necessary. For example, the event manager 280 may propose a set of locations as possible locations for the event and the user can select a suitable location from the proposed set or use a different location from outside the proposed set. Similarly, the event manager 280 may propose a suggested time for the event and the user can select one of the options proposed by the event manager 280 or specify a new time for the event. Similarly, the user may change the potential participants for the event by either adding or deleting the participants. The process of finalizing the attributes of the event may be interactive, for example, the event manager 280 may propose certain values that may be edited by the user and the event manager 280 may revise the proposed value of attributes that have not been finalized by the user. For example, the event manager 280 may determine a location for the event based on the locations of the potential participants. However, if the user updates the list of potential participants, the event manager 280 may revise the location based on the new list of potential participants.


In an embodiment, the event manager 280 sends a request to an external calendar service to create a calendar entry for the event. The event manager 280 receives details of the calendar entry created and provides details to all the potential participants of the event. The event manager 280 may also send requests to external systems associated with the deal to obtain resources for the event. For example, if the deal is offered by a restaurant that provides external application programming interfaces (APIs), the event manager 280 may send a request to the external system of the restaurant to reserve a table at the scheduled time of the event. If the deal is for a show, the event manager 280 may send a request to the external system associated with the show to purchase tickets and reserve seats for the show.


Alternative Applications

The features and advantages described in the specification are not all inclusive and, in particular, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter.


The foregoing description of the embodiments of the invention has been presented for the purpose of illustration; it is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Persons skilled in the relevant art can appreciate that many modifications and variations are possible in light of the above disclosure.


Some portions of this description describe the embodiments of the invention in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are commonly used by those skilled in the data processing arts to convey the substance of their work effectively to others skilled in the art. These operations, while described functionally, computationally, or logically, are understood to be implemented by computer programs or equivalent electrical circuits, microcode, or the like. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as modules, without loss of generality. The described operations and their associated modules may be embodied in software, firmware, hardware, or any combinations thereof.


Any of the steps, operations, or processes described herein may be performed or implemented with one or more hardware or software modules, alone or in combination with other devices. In one embodiment, a software module is implemented with a computer program product comprising a computer-readable medium containing computer program code, which can be executed by a computer processor for performing any or all of the steps, operations, or processes described.


Embodiments of the invention may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, and/or it may comprise a general-purpose computing device selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a tangible computer readable storage medium or any type of media suitable for storing electronic instructions, and coupled to a computer system bus. Furthermore, any computing systems referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.


Finally, the language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based hereon. Accordingly, the disclosure of the embodiments of the invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.

Claims
  • 1. A computer-implemented method comprising: receiving a request for participation in a deal from a user of the social networking system;creating a representation of an event in the social networking system, wherein the representation of the event comprises attributes populated based on information associated with the deal;presenting information describing the event to the user, wherein the information comprises attributes of the event populated based on estimated values; andreceiving updates to one or more attributes of the event from the user.
  • 2. The computer-implemented method of claim 1, further comprising: determining one or more connections of the user as potential participants for the event.
  • 3. The computer-implemented method of claim 3, wherein the potential participants for the event are determined based on past events associated with deals similar to the deal.
  • 4. The computer-implemented method of claim 3, further comprising: granting access to information describing the event to the potential participants determined for the event.
  • 5. The computer-implemented method of claim 1, wherein the representation of the event comprises a time of the event, the method further comprising: determining one or more suggestions for the time of the event based on a time associated with the deal.
  • 6. The computer-implemented method of claim 1, wherein the representation of the event comprises a location for the event, the method further comprising: determining one or more suggestions for the location of the event based on locations associated with the deal.
  • 7. The computer-implemented method of claim 6, wherein the determining the suggestions for the location of the event comprise: determining one or more past events in which the user participated that are similar to the event; anddetermining suggestions for the location of the event based on locations of the past events.
  • 8. The computer-implemented method of claim 1, further comprising: receiving request for information describing the event; andproviding information describing the deal in response to the request for information.
  • 9. The computer-implemented method of claim 1, further comprising: sending a request to a calendar service to create a calendar entry for the event.
  • 10. The computer-implemented method of claim 1, further comprising: sending a request to an external system of a business provider associated with the deal to schedule resources for the event.
  • 11. A computer-implemented method comprising: receiving a request for creation of a social deal from a user of the social networking system, wherein activation of the social deal requires multiple users to perform actions associated with the social deal;sending a request to schedule an event, the event corresponding to an activity benefiting from the deal;responsive to receiving information identifying potential participants of the social deal, sending a request to add each potential participant to the event; andresponsive to receiving a message confirming participation by a potential participant in the event, sending a request to confirm participation by the user in the social deal.
  • 12. The computer-implemented method of claim 11, further comprising: responsive to receiving a message confirming participation by a potential participant in the social deal, sending a request to confirm participation by the user in the event.
  • 13. The computer-implemented method of claim 11, further comprising: responsive to receiving a request to participate in the event from a new user, adding the new user as a potential participant in the social deal.
  • 14. The computer-implemented method of claim 11, wherein the representation of the event comprises a location for the event, the method further comprising: determining one or more suggestions for the location of the event based on a proximity of locations associated with the deal with locations associated with potential participants.
  • 15. The computer-implemented method of claim 11, further comprising: granting access to information describing the event to the potential participants of the social deal.
  • 16. A computer-implemented method comprising: receiving information describing an action associated with a deal, the action performed by a user of a social networking system;identifying an entity represented in the social networking system associated with the deal;identifying an action associated with the entity that can be performed by users of the social networking system; andsending a request to the user for performing the action associated with the entity.
  • 17. The computer-implemented method of claim 16, wherein the entity is a social group and the action is getting a membership in the social group.
  • 18. The computer-implemented method of claim 16, wherein the entity is another deal and the action is participating in the deal.
  • 19. The computer-implemented method of claim 16, wherein the entity is an image associated with the location of the deal and the action is one of retrieving the image, liking the image, or commenting on the image.
  • 20. The computer-implemented method of claim 16, wherein the entity is an event and the action is sending an RSVP message for the event.
CROSS REFERENCES TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Patent Application No. 61/452,577 filed Mar. 14, 2011, which is incorporated by reference in its entirety.

Provisional Applications (1)
Number Date Country
61452577 Mar 2011 US