Social networks continue to proliferate, gaining members around the world. Typically, a given member of a social network may invite friends or acquaintances to join that social network. A given member of a social network may his or her complete profile information, with this profile information providing various contact, personal, or other information related to that given member.
Tools and techniques related to invitations with pre-populated profile information are provided. These tools may receive requests to create invitations for invitee users to join social networks, populate these invitations with profile information on behalf of at least one inviter user, and send these invitations to the invitee users.
It should be appreciated that the above-described subject matter may be implemented as a computer-controlled apparatus, a computer process, a computing system, or as an article of manufacture such as a computer-readable medium. These and various other features will be apparent from a reading of the following Detailed Description and a review of the associated drawings.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended that this Summary be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.
The following detailed description provides tools and techniques for invitations with pre-populated profile information. While the subject matter described herein presents a general context of program modules that execute in conjunction with the execution of an operating system and application programs on a computer system, those skilled in the art will recognize that other implementations may be performed in combination with other types of program modules. Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the subject matter described herein may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like.
The following detailed description refers to the accompanying drawings that form a part hereof, and that show, by way of illustration, specific example implementations. Referring now to the drawings, in which like numerals represent like elements through the several figures, this description provides various tools and techniques related to social network invitations with pre-populated profile information.
Only for the purposes of illustration, this description discusses examples in which the profile management systems 102 operate in connection with one or more social networking systems. However, it is understood that this description may be implemented more generally. For example, implementations of this description may operate in any system that supports some number of different users, with different users associated with respective profile information. As described in further detail below, these profile management systems may enable a given user to send invitations to other users, with these invitations pre-populated with profile information or those other users.
As shown in
For the purposes of describing these example operational scenarios,
Turning to the file management systems 102 and the user devices 104 in more detail, these devices may include one or more instances of processing hardware, with
The profile management systems 102 and/or the user devices 104 may include one or more instances of a physical computer-readable storage medium or media 118, which couple to the bus systems 116. The bus systems 116 may enable the processors 114 to read code and/or data to/from the computer-readable storage media 118. The media 118 may represent apparatus in the form of storage elements that are implemented using any suitable technology, including but not limited to semiconductors, magnetic materials, optics, or the like. The media 118 may represent memory components, whether characterized as RAM, ROM, flash, solid-state hard drive, or other types of technology.
The storage media 118 may include one or more modules of software instructions that, when loaded into the processors 114 and executed, cause the profile management systems 102 and/or the user devices 104 to execute software in connection with providing social network invitations with pre-populated profile information. As detailed throughout this description, these modules of instructions may also provide various tools or techniques by which the profile management systems 102 and/or the user devices 104 may participate within the overall systems or operating environments described herein using the components, message and command flows, and data structures discussed in more detail throughout this description. For example, the storage media 118 may contain profile suggestion software modules, denoted generally at 120. The profile suggestion software 120 may include software instructions that are configured to perform the functions described herein in connection with providing social network invitations with pre-populated profile information.
In general, the profile suggestion software 120 may, when loaded into the processors 114 and executed, transform the processors 114 (and the overall profile management systems 102 and/or the user devices 104) from general-purpose computing systems into special-purpose computing systems customized to present integrated advertising content. The processors 114 may be constructed from any number of transistors or other discrete circuit elements, which may individually or collectively assume any number of states. More specifically, the processors 114 may operate as finite-state machines, in response to executable instructions contained within the software 120. These computer-executable instructions may transform the processors 114 by specifying how the processors 114 transition between states, thereby physically transforming the transistors or other discrete hardware elements constituting the processors 114.
Encoding the file suggestion software 120 may also transform the physical structure of the storage media 118. The specific transformation of physical structure may depend on various factors, in different implementations of this description. Examples of such factors may include, but are not limited to: the technology used to implement the storage media 118, whether the storage media 118 are characterized as primary or secondary storage, and the like. For example, if the storage media 118 is implemented as semiconductor-based memory, the file suggestion software 120 may transform the physical state of the semiconductor memory, when the software is encoded therein. For example, the software may transform the states of transistors, capacitors, or other discrete circuit elements constituting the semiconductor memory.
As another example, the storage media 118 may be implemented using magnetic or optical technology. In such implementations, the profile suggestion software 120 may transform the physical state of such magnetic or optical media, when the software 120 is encoded therein. These transformations may include altering the magnetic characteristics of particular locations within given magnetic media. These transformations may also include altering the physical features or characteristics of particular locations within given optical media, to change the optical characteristics of those locations. Other transformations of physical media are possible without departing from the scope and spirit of the present description, with the foregoing examples provided only to facilitate this discussion.
The storage media 118 may include any number of storage elements that cooperate with the profile suggestion software 120 during execution. For example, an address book data structure 122 may contain contact information or other types of information associated with any number of different users. This address book structure 122 may reside physically on the profile management system 102 and/or the user devices 104. For example, a given user associated with the user device 104 may maintain an instance of the address book structure 122 to contain information related to other users (e.g., associated with one or more of a representative user devices 104n).
The storage media 118 may also include a user profile data structure 124, maintained by the profile management systems 102 and/or the user devices 104 in connection with, for example, social networks facilitated by the profile management systems 102. The user profiles 124 may include contact information, demographic information, interest information, or only other information maintained for different users. In a social network context, the user profiles 124 for different given users may include, but are not limited to, names, e-mail addresses, telephone numbers, usernames, birthdays, identification of third-party services or websites of interest to those given users, areas of interest, and the like. Other examples of information contained within the user profiles 124 may become apparent after reading this description, and are considered within the scope of this description.
As shown in
Turning to the user profiles 124 in more detail, a user profile record 206 may be associated with the inviting user 202. The user profile record 206 may contain or be associated with any number of invitee records 208a and 208m (collectively, invitee records 208). These invitee records 208a and 208m represent and correspond to invitations extended, respectively, to the users 204a and 204m. Because the users 204 are referred to as “invitee” users in this description, the records 208 are referred to as “invitee” records.
The invitee records 208 may respectively contain profile data 210a and 210m (collectively, profile data 210) that is associated with the invitee users 204a and 204m. more specifically, the profile suggestion software 120 may pre-populate the profile data 210a and 210m based upon information contained within the address book structure 122 associated with the inviting user 202. More specifically, the address book structure 122 may include a contact record 212a containing contact information for the invitee user 204a, and may include a contact record 212m containing contact information for the invitee user 204m. Examples of this contact information as contained in the contact records 212a and 212m (collectively, contact records 212) may include any information that may be stored in an address book or contact list. More specific examples of this contact information may include, but are not limited to, names, e-mail addresses, telephone numbers, usernames associated with messaging services, birthdays, identification of third-party services or websites of interest to those given users, areas of interest, and the like.
Turning to the process flows 300 more detail, block 302 represents receiving a request from a given user to invite one or more other users to join a given social network. In different implementation scenarios, this given user may or may not already be a member of the given social network. For example, the given user may invite the other user to be a “friend” of the given user on that given social network. Example user interfaces suitable for requesting and completing these invitations are illustrated and described with
Block 304 represents populating the invitation requested in block 302 with profile information for the invited or invitee users. The invitation may be “pre-populated”, in the sense that the invitation may be at least partially completed with profile information when the invitee users receive it. For example, as represented at block 306, block 304 may include pre-populating the invitation with information extracted from an address book or contact list (e.g., 122 in
As represented at block 308, block 304 may include pre-populating the invitation with profile information resulting from data mining operations. In different implementation scenarios, the process flows 300 may perform block 308 in addition to, or instead of, block 306. Examples of the data mining operations may include obtaining publicly-available information relating to the invitee users, whether from the Internet or from other data sources. These data mining operations may also include analyzing e-mail or other communications sent or received by the invitee users. Other examples of data mining operations are possible as well, with the foregoing examples provided only for illustration.
Block 310 represents sending the invitation.
As suggested by the arrangement of blocks 302-310 in columns, the user device 104a may perform the processing represented by blocks 302-310. As understood from the foregoing description, the user device 104a may repeat blocks 302-310 any number of times to send respective invitations 312 to any number of invitees. Having received at least one of the invitations 312, the user device 104n may perform further example processing, as now described in more detail.
Block 316 represents receiving the invitation 312. In example shown in
Block 320 represents receiving one or more user responses to the invitation and/or the profile suggestions presented in block 318. In some possible implementation scenarios, the profile suggestion software 120 may handle the invitation and any related profile suggestions as one discrete unit. In other implementation scenarios, the profile suggestion software 120 may handle the invitation and any related profile suggestions separately from one another.
In more detail, block 320 may include receiving indications that the invitee user has accepted or rejected the invitation as a whole, as represented by block 322. Block 320 may also include receiving indications that the invitee user has taken particular actions regarding the pre-populated profile suggestions 314 included with the invitation 312, as represented by block 324. For example, the invitee user may accept, ignore, block, or take other actions regarding the pre-populated profile suggestions 314. Examples of user interfaces suitable for presenting the pre-populated profile suggestions are described below in connection with
Blocks 326 and 328, performed respectively on the invitee user device 104n and the inviter user device 104a, represent updating user profile information associated with the invitee user and the inviter user. More specifically, blocks 326 and 328 may include updating user profiles (e.g., 124 in
In general, the invitee records 208 may reflect any number of states through which invitations may pass. From the perspective of the inviting user 202, the invitee records 208 may indicate that a given invitation is outbound to an invitee user 204, and is pending acceptance/approval or rejection. Once the invitee user 204 has acted on that given invitation, the invitee records 208 may indicate that that given invitation 312 has been accepted or rejected.
From the perspective of the invitee user 204a or 204m, the invitee records 208 may indicate that a given invitation 312 is inbound from one or more inviting users 202. Likewise, once the invitee user 204 has acted on the invitation 312, the invitee records 208 may indicate that that given invitation 312 has been accepted or rejected. In addition, the invitee records 208 may indicate that the invitee user 204 has accepted, ignored, or block certain suggested profile data included with the given invitation 312.
A dialog box 404 may provide various UI tools and devices by which an inviter user may employ the user device 104a to create and populate the invitations 312. For example, the inviter user may type or enter a greeting or message into a message field 406. This greeting or message may be tailored for different particular invitee users.
If the inviter user wishes to invoke the capability is described herein to pre-populate the invitation 312 with suggested profile information, the inviter user may select a profile activation checkbox 408. In response to the user selecting the profile activation checkbox 408, the profile suggestion software 120 may enable a profile expansion tool 410. The profile expansion tool 410 may respond to user input to present any number of profile suggestion tools 412a and 412m (collectively, profile suggestion tools 412). The profile suggestion software 120 may populate the profile suggestion tools 412 using any of the techniques described herein. For example, the profile suggestion tools 412 may be populated with information extracted from a contact list or address book, information resulting from data mining operations, or the like.
The profile suggestion tools 412 may suggest profile information including, but not limited to: contact information associated with a given invitee user (e.g., mobile telephone numbers, e-mail addresses, and the like), personal information associated with the invitee user (e.g., birthdays, anniversaries, names of spouses, and the like), observations or notes associated with the invitee (e.g., good or bad poker player, and the like), and the like.
The profile information populated by the profile suggestion tools 412 may also include indications of any third-party services or activity streams associated with the invitee user. Examples of such third-party services may include, but are not limited to, social networking sites, image or media sharing sites, and the like. Examples of activity streams may include “wish list” associated with online merchants, indications of websites of interest to the invitee user, and the like.
The inviter user may interact with any of the suggested profile information provided by the profile suggestion tools 412, typically either approving or disapproving the suggested profile information. Once the profile suggestion tools 412 are in an acceptable state, the inviter user may activate a send button 414 to send the invitation 312 to the invitee user.
It is noted that the user interfaces 400 may be presented any number of times to any number of inviter users, thereby enabling the inviter users to create social network invitations with pre-populated profile information, and to send the social network invitations to the invitee users. User interfaces suitable for presenting the invitations to the invitee users are now described with
A display window 502 may be presented on display hardware provided by the invitee user device 104n. In turn, the display window 502 may present an e-mail user interface 504 associated with an e-mail utility. In turn, the e-mail user interface 504 may include representations 506 of any number of e-mail accounts associated with an invitee user. The representations 506 may include depictions of any number of folders associated with the e-mail accounts, including an inbox representation 508. The inbox represented at 508 may include any number of incoming messages 510a and 510i (collectively, incoming messages 510). In the example shown in
Turning to the invitation message 512 in detail, the invitation message 512 may include a greeting from the inviter user. In scenarios in which a given invitee has received multiple invitations from multiple inviter users to join a social network, the invitation message 512 may include representations 514a and 514o (collectively, representations 514) of those other inviter users. In these scenarios, the invitee may be reassured by seeing representations of persons that he or she knows, and may be more favorably disposed to accept or approve the invitation.
Having received the invitation message 512, if the invitee user is not interested in joining the social network, invitee user may reject invitation or ignore the invitation and not act on it. However, if the invitee user is interested in accepting or approving the invitation and joining the social network, the invitee user may select and interact with the invitation message 512.
In general, the profile suggestions 604 may correspond to the pre-populated profile suggestions 314 shown in
The UIs 600 may respond to user activation of the accept buttons 606 to accept or approve the profile suggestions 604 that correspond to the activated accept buttons 606. Similarly, the UIs 600 may respond to user activation of the ignore buttons 608 to reject the profile suggestions that correspond to the activated ignore buttons 608.
The UIs 600 may respond to user activation of the block buttons 610 to present additional UI tools that provide additional granularity on block functions. For example, if the invitee user activates the block button 610a, the UIs 600 may present additional block buttons 612, 614, and 616. The block button 612 may respond to user activation to block all communications (i.e., invitations and profile suggestions) received from a given inviter user who sent the current invitation. The block button 614 may respond to user activation to block all profile suggestions from the given inviter user. The block button 616 may respond to user activation to block all profile suggestions from all users.
Having described the tools and techniques for creating and sending social network invitations with pre-populated profile information in connection with
The foregoing description provides tools and techniques for social network invitations with pre-populated profile information. Although this description incorporates language specific to computer structural features, methodological acts, and computer readable media, the scope of the appended claims is not necessarily limited to the specific features, acts, or media described herein. Rather, this description provides illustrative, rather than limiting, implementations. Moreover, these implementations may modify and change various aspects of this description without departing from the true spirit and scope of this description, which is set forth in the following claims.