Abstract:
The provided contact center can locate customers that may be willing to buy goods or services, wherein those goods or services may have shelve lives or pending disposal dates. A profile for a customer is created in a dialog data structure; the customer is a likely purchaser of the goods or services. Social media messages are analyzed to determine if a poster is of a type that would be willing to buy a certain product. If the social media user is such a type, the contact center can contact the social media user and offer the product or service to that customer. As such, the enterprise receives a service that quickly locates customers that may be willing to products and allows them to dispose of the products that have certain shelve lives.

Description:
CROSS REFERENCE 
       [0001]    This application claims priority to U.S. Provisional Application Ser. No. 61/263,013, filed Nov. 20, 2009, entitled “GEO POD SYSTEM,” which is incorporated herein by reference in its entirety. 
     
    
     BACKGROUND 
       [0002]    Contact centers generally exchange information with consumers through directed contacts. Directed contacts consist of emails, phone calls, or other forms of communication that are directed to the contact center or the consumer. However, many people today, exchange information or interact through non-direct methods. Non-direct communications require users to post communications to third party sites or forums, but not to direct those communications to a specific person or organization. Non-direct communication methods include social media, which may include websites, networks, blogs, micro-blogs, RSS feeds, social media websites (such as, Linked-In, Facebook, Twitter, MySpace, etc.), and other types of social media. Generally, it is not possible for contact centers to communicate with consumers through non-direct methods. As such, the contact centers may be unable to interact with consumers that use social media to offer certain types of customer service. 
         [0003]    Enterprises often have products to sell to customers. Some of these products may have a short shelf life or have a certain date upon which they need to be sold. Examples of such type of products may be fruits and vegetables, airline tickets, concert tickets, or other types of goods. Enterprises are often left with excess products or services in which they want to provide to willing customers. However, enterprises currently don&#39;t have a good ability to find these customers who may be willing to buy these products or services or contact them if they can locate the customers. 
       SUMMARY 
       [0004]    It is with respect to the above issues and other problems that the embodiments presented herein were contemplated. Methods and systems described herein provide a contact center which can locate customers that may be willing to buy goods or services, wherein those goods or services may have shelve lives or pending disposal dates. A profile for a customer is created in a dialog script. Social media messages are analyzed based on the profile to determine if the customer may be of a type that would be willing to buy a certain product. If the customer is such a type that may be willing to buy the product, the contact center can contact the social media user and offer the product or service to that customer. As such, the enterprises receive a service that quickly locates customers that may be willing to buy products and allows the enterprise to dispose of the products that have certain shelf lives. 
         [0005]    The system can have a dialog creator which receives inputs from the user about what type of customers to contact. These user inputs are stored in a dialog data structure. The dialog data structure may then be retrieved by a dialog system, which uses the dialog script to determine customers the enterprise wishes to contact. Upon finding these customers, a communication stored in the dialog script can be sent to the customer to engage them in a contact and offer them goods or services. 
         [0006]    A social media gateway can be used gather information on specific social network users. In addition, data may be collected about the user that may exist on public blogs, wilds, etc. Finally, data sources with public information, e.g., census, zillow.com, etc., may be used to gather more background user information. 
         [0007]    First, a business may identify that the business has some excess capacity, over-stocked inventory, or excess service capacity. The full extent of the excess capacity can be identified in terms of how much inventory available, price levels, time to use, time to expire, or any other distinguishing characteristics. Next, the business can create or identify a previously developed automated “marketing” campaign. The campaign can be included in a dialog data structure that can be executed by the social media contact center. The campaign may utilize automated and, possibly, agent resources to contact identified consumers and quickly sell the excess-capacity resources. 
         [0008]    The campaign can consist of several steps to identify potential consumers. The system can first identify recent discussions on social network sites and those consumers that have a social network relationship with the enterprise who have had “relevant” conversations about the available resource. For example, if United Airlines has extra seats to Paris later this week, then all users who have discussed travel to Europe can be identified. 
         [0009]    As potential customers are identified, the campaign uses any number of text analysis methods to further qualify the potential of the customer based on their recent social media interactions. The customer is also analyzed for potential value based on their demographic data, location, historical purchases, CRM data, or any other information known about the customer. This evaluation may be done through the automated system or by utilizing agents for human analysis. 
         [0010]    Once the customer has been identified, a contact can be made from the business to the customer. Several forms of contact are possible. An agent may reach out directly to the customer. An automated system may reach out to the customer. The customer may be reached through a different channel than that of the initial communication. The initial communication with the customer may be the first attempt to offer the resource to the customer and may include follow-up contact instructions for the user to accept the offer. A key component of the campaign is that the campaign can run for a specified duration. If a resource is set to expire on Friday, the campaign may monitor and run starting on Tuesday for three days or until the resource capacity is met. 
         [0011]    As an example, Flowers.com may have over stocked a specific flower arrangement. To reduce the inventory, Flowers.com starts a campaign using the described system. Since time is short (because the flower arrangement will wilt and die), Flowers.com searches for users over the next few days who discuss special events, such as, birthdays, anniversaries, new job, etc., on any social media network. The automated campaign identifies the potential customers and begins sending out messages or posts either to the social media network or to other communication channels with links to reach an agent to purchase the flower arrangement. 
         [0012]    In another example, United Airlines may have available seats to Paris on Friday. Existing methods of discounting seats may not have filled the seats. As such, United Airlines start a campaign using the described system to identify all people discussing travel and Europe. Over the next few days the automated systems sends out special deals to the selected high value customers. The deal includes a link to a direct agent chat for quick turn-around of the special offer. 
         [0013]    In still another example, a local electronics dealer has 20 HDTVs that are being discontinued and replaced with a newer model. A shipment of the newer model HDTVs is due to arrive soon, and the dealer must sell the 20 older model HDTVS fast. The electronics dealer can create the outbound campaign to identify potential customers that are in the local geographic area and may be able to purchase in the next day or two. In this situation, the location and demographics of the customers is important. The system searches and monitors those discussing, not just TVs, but movies, sports, video games, etc.; thus, the system finds those customers that may be interested in obtaining one of the closeout items. 
         [0014]    The phrases “at least one”, “one or more”, and “and/or” are open-ended expressions that are both conjunctive and disjunctive in operation. For example, each of the expressions “at least one of A, B and C”, “at least one of A, B, or C”, “one or more of A, B, and C”, “one or more of A, B, or C” and “A, B, and/or C” means A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B and C together. 
         [0015]    The term “a” or “an” entity refers to one or more of that entity. As such, the terms “a” (or “an”), “one or more” and “at least one” can be used interchangeably herein. It is also to be noted that the terms “comprising”, “including”, and “having” can be used interchangeably. 
         [0016]    The term “automatic” and variations thereof, as used herein, refers to any process or operation done without material human input when the process or operation is performed. However, a process or operation can be automatic, even though performance of the process or operation uses material or immaterial human input, if the input is received before performance of the process or operation. Human input is deemed to be material if such input influences how the process or operation will be performed. Human input that consents to the performance of the process or operation is not deemed to be “material”. 
         [0017]    The term “computer-readable medium” as used herein refers to any tangible storage that participates in providing instructions to a processor for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, NVRAM, or magnetic or optical disks. Volatile media includes dynamic memory, such as main memory. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, magneto-optical medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, a solid state medium like a memory card, any other memory chip or cartridge, or any other medium from which a computer can read. When the computer-readable media is configured as a database, it is to be understood that the database may be any type of database, such as relational, hierarchical, object-oriented, and/or the like. Accordingly, the invention is considered to include a tangible storage medium and prior art-recognized equivalents and successor media, in which the software implementations of the present invention are stored. 
         [0018]    The terms “determine”, “calculate”, and “compute,” and variations thereof, as used herein, are used interchangeably and include any type of methodology, process, mathematical operation, or technique. 
         [0019]    The term “module” as used herein refers to any known or later developed hardware, software, firmware, artificial intelligence, fuzzy logic, or combination of hardware and software that is capable of performing the functionality associated with that element. Also, while the invention is described in terms of exemplary embodiments, it should be appreciated that individual aspects of the invention can be separately claimed. 
         [0020]    An “advertising campaign” as used herein is any indirect or direct effort to entice a consumer to buy a product or service. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0021]    The present disclosure is described in conjunction with the appended figures: 
           [0022]      FIG. 1  is a block diagram of an embodiment of a communication system operable to interact with persons using a social media network; 
           [0023]      FIG. 2A  is a block diagram of an embodiment of a social media gateway; 
           [0024]      FIG. 2B  is a block diagram of an embodiment of a dialog system; 
           [0025]      FIG. 3  is a block diagram of embodiments of a dialog data structure; 
           [0026]      FIG. 4  is a flow diagram of an embodiment of a process for creating a dialog data structure that can be used to direct a campaign; 
           [0027]      FIG. 5  is a flow diagram of an embodiment a process for finding customers that may be willing to buy excess-capacity goods or services; 
           [0028]      FIG. 6  is a block diagram of an embodiment of a computing environment; 
           [0029]      FIG. 7  is a block diagram of an embodiment of a computer system. 
       
    
    
       [0030]    In the appended figures, similar components and/or features may have the same reference label. Further, various components of the same type may be distinguished by following the reference label by a letter that distinguishes among the similar components. If only the first reference label is used in the specification, the description is applicable to any one of the similar components having the same first reference label irrespective of the second reference label. 
       DETAILED DESCRIPTION 
       [0031]    The ensuing description provides embodiments only, and is not intended to limit the scope, applicability, or configuration of the claims. Rather, the ensuing description will provide those skilled in the art with an enabling description for implementing the embodiments. Various changes may be made in the function and arrangement of elements of the embodiment without departing from the spirit and scope of the appended claims. 
         [0032]    A communication system  100 , for interacting with persons using social media is shown in  FIG. 1 . The communication system  100  can include a contact center  102 , a network  108 , and one or more types of social media networks or systems, such as social media network  1   112 , social media network  2   114 , and/or social media network  3   116 . Social media networks  112 ,  114 , and/or  116  can be any social media including, but not limited to, networks, websites, or computer enabled systems. For example, a social media network may be MySpace, Facebook, Twitter, Linked-In, Spoke, or other similar computer enabled systems or websites. The communication system  100  can communicate with more or fewer social media networks  112 ,  114 , and/or  116  than those shown  FIG. 1 , as represented by ellipses  118 . 
         [0033]    The network  108  can be any network or system operable to allow communication between the contact center  102  and the one or more social media networks  112 ,  114 , and/or  116 . The network  108  can represent any communication system, whether wired or wireless, using any protocol and/or format. The network  108  provides communication capability for the contact center  102  to communicate with websites or systems corresponding to the one or more social media networks  112 ,  114 , and/or  116 . However, the network  108  can represent two or more networks, where each network is a different communication system using different communication protocols and/or formats and/or different hardware and software. For example, network  108  can be a wide area network, local area network, the Internet, a cellular telephone network, or some other type of communication system. The network  108  may be as described in conjunction with  FIGS. 6 and 7 . 
         [0034]    A contact center  102  can be a system that can communicate with one or more persons that use social media networking sites  112 ,  114 , and/or  116 . The contact center  102  can be hardware, software, or a combination of hardware and software. The contact center  102  can be executed by one or more servers or computer systems, as described in conjunction with  FIGS. 8 and 9 . The contact center  102  can include all systems, whether hardware or software, that allow the contact center  102  to receive, service, and respond to directed and non-directed contacts. For example the contact center  102  can include the telephone or email system, an interface to human agents, systems to allow human agents to service and respond to received contacts, and one or more systems operable to analyze and improve the function of agent interaction. 
         [0035]    The contact center  102  may include a dialog system  104  and a social media gateway  106 . While the dialog system  104  and the social media gateway  106  are shown as being a part of the contact system  102 , in other embodiments, the dialog system  104  and/or the social media gateway  106  are separate systems or functions executed separately from the contact center  102  and/or executed by a third party. The dialog system  104  may process and receive messages. The social media gateway  106  can receive and translate messages from the one or more social media networks  112 ,  114 , and/or  116 . An embodiment of the dialog system  104  is described in conjunction with  FIG. 2B . An embodiment of the social media gateway  106  is described in conjunction with  FIG. 2A . 
         [0036]    The contact center  102  may also communicate with one or more communication devices  110 . The communication devices  110  can represent a customer&#39;s or user&#39;s cell phone, email system, personal digital assistant, laptop computer, or other device that allows the contact center  102  to interact with the customer. The contact center  102  can modify a non-direct contact, from a social media network  112 ,  114 , and/or  116 , into a directed contact by sending a response message directly to a customer&#39;s communication device  110 . 
         [0037]    An embodiment of the social media gateway  106  is shown in  FIG. 2A . The social media gateway  106  can include one or more components which may include hardware, software, or combination of hardware and software. The social media gateway  106  can be executed by a computer system, such as those described in conjunction with  FIGS. 6 and 7 . However, in other embodiments, the components described in conjunction with  FIG. 2A  are logic circuits or other specially-designed hardware that are embodied in a field programmable gate array (FPGA) application specific integrated circuit (ASIC), or other hardware. 
         [0038]    Herein, the social media gateway  106  can include one or more content filters  202   a ,  202   b , and/or  202   c . A content filter  202  can receive all of the messages for the contact center  102  from a social media network  112 ,  114 , and/or  116  and eliminate or delete those messages that do not require a response. For example, a message between two friends on a Facebook page, if not pertaining to a product or a service of the company operating the contact center  102 , may not need a response. As such, the content filter  202  can filter out or delete the non-suitable message from the messages that are received by the social media network application programming interface (API)  1   204   a , social media network API  2   204   b , and/or social media network API  3   204   c . With the content filter  202 , the social media network API  204  only needs to translate those messages that should be received by the dialog system  104 . Translation typically requires the conversion of the message into a different format. 
         [0039]    The content filter  202  is provided with one or more heuristics for filter rules from a filter database (not shown). These filter rules can be created by the external customer or internal user (e.g. agent or administrator) of the communication system  100 . Thus, the user or customer of the communication system  100  can customize the filtering of messages from social media networks  112 ,  114 , and/or  116 . Further, different rules may be applied to different social media networks  112 ,  114 , and/or  116 , as some social media networks  112 ,  114 , and/or  116  may have different types of messages or postings than other types of social media networks  112 ,  114 , and/or  116 . While the content filter  202  is shown as part of the social media gateway  106 , it is to be appreciated that the content filter  202  may be a part of the social media network API  204 . The content filter  202  may correspond to query terms used by the social media network API  204 . The content filter  202  or query terms are an argument to the social media network API  204  call. 
         [0040]    The social media network API  204  can be an application that the social media network  112 ,  114 , and/or  116  provides to access the site. Thus, the social media network API  204  is called and connects to the social media gateway  106  and to the social media network  112 ,  114 , and/or  116 . Any suitable filter criteria may be employed for social media API  209 . Examples of filter criteria include positive content of the source of posting, an address field, destination or recipient address fields, a time stamp field, a subject matter field, and a message body field. For example, a type of searchable content can be name of the business enterprise running or employing the contact center  102  and/or the products or services of the enterprise. 
         [0041]    The social media gateway  106  can include one or more social media network APIs  204 . As shown in  FIG. 2A , the social media gateway  106  may include a social media network API  204  for each social media network  112 ,  114 , and/or  116 . As such, the social media gateway  106  can interact with each social media network  112 ,  114 , and/or  116  in the particular (often unique) format or protocol used by the social media network  112 ,  114 , and/or  116 . Further, when new social media networks are created, the social media gateway  106  can be easily expanded to interact with those social media networks by adding another social media network API  204 . Where social media networks  112  are more standardized, or use substantially similar formats or protocols, a single social media network API can be shared by multiple social media networks  112 - 116 . 
         [0042]    The social media network API  204  can receive messages from and send messages to the social media network  112 ,  114 , and/or  116 . The social media network API  204  can translate a message received from a social media network  112 ,  114 , and/or  116  and send the translated message to a message filter  206 . The social media network API  204  can translate the received message into a standard formatted file. For example, the translated message may be represented by an extensible mark-up language (XML) file or other file having a general format. As such, each specific and particular social media network message can be translated into a standard format for use by the dialog system  104 . Further, the social media network API  204  can receive a generally or standard format response message, from the dialog system  104 , and translate that response into a particularly or specifically formatted response message that can be posted to the corresponding social media network  112 ,  114 , and/or  116 . 
         [0043]    Messages to the contact center  102  are addressed to the contact center  102 . For example, a customer may become a “friend” of the contact center  102  on a social media network  114 , such as Facebook. The customer may then address a message to the contact center  102  on Facebook. This non-direct contact is a message that is not sent directly to the contact center  102  but to the contact center&#39;s Facebook page. In other embodiments, the contact center  102  receives messages not addressed to the contact center  102 . For example, the contact center  102  can receive tweets from Twitter that are “broadcast” rather than addressed to the contact center  102 . The contact center  102  may also search for messages or content on the social media networks  112 ,  114 , and/or  116 . Exemplary search criteria include customer name, customer profession, customer home address, customer business address, customer employer name, customer educational or professional background, customer hobby, personal or business interests, customer family profile, and the like. Thus, the social media gateway  106  of the contact center  102  can query, gather, or connect to a live feed of data from a social media network  112 ,  114 , and/or  116  and then apply a filter to the indirect information. 
         [0044]    The translated messages from the social media network API  204  can be received by a message filter  206 . A message filter  206  can perform some or all of the functions of the content filter  202  and eliminate messages before being sent to the dialog system  104 . However, in other embodiments, the message filter  206  eliminates information from within the messages before the redacted messages are sent to the dialog system  104 . For example, a message from a social media network  112  may have three or four interactions between two parties not associated with the contact center  102 . Only one of the several postings may be pertinent to the dialog system  104 . As such, the message filter  206  can eliminate or delete at least a portion of the other messages for the dialog system  104 . Thus, the dialog system  104  receives a message where some of the content of the message has been deleted. The message filter  206  can retrieve heuristics or filter rules from a filter database (not shown), similar to the content filter  202 . A substantial difference between the content and message filters  202  and  206  is that the content filter  202  is specific to a particular message format associated with a corresponding social media network  112 ,  114 , and/or  116 , while the message filter  206  is applied to a standardized or universal format and is therefore common to multiple social media networks  112 ,  114 , and/or  116 . One skilled in the art will understand the type of rules that may be used to filter information from messages such that only pertinent questions, facts, requests, or information is sent to the dialog system  104 . 
         [0045]    A message aggregator  208  may also be included with the social media gateway  106 . A message aggregator  208  can, in contrast to the message filter  206 , combine two or more messages into a packet or grouping that is sent to the dialog system  104 . Therefore, the message aggregator  208  can interrelate or combine messages based on information within the messages. For example, two messages may be combined based on any of the message fields referenced above, such as the person that posted the message, the subject, the request or question asked, the person the message was sent to, or other information that may be pertinent to the dialog system  104 . Thus, the dialog system  104  may be able to respond concurrently to two or more messages based on a grouping provided by the message aggregator  208 . Regardless of whether the messages are aggregated, each message or grouping of messages can be sent from the social media gateway  106  to the dialog system  104 . 
         [0046]    The social media gateway  106  can also send responses back to the social media networks  112 ,  114 , and/or  116 . A response from an agent  228  in the contact center  102  can be sent to the social media gateway  106 . The response may be in a general format and translated. The translated response may then be posted to the appropriate social media network  112 ,  114 , and/or  116  by the social media gateway  106 . In other embodiments, the agent may post the response directly to the social media network  112 ,  114 , and/or  116  without sending the response to the social media gateway  106 . 
         [0047]    An embodiment of the dialog system  104  is shown in  FIG. 2B . The dialog system  104  can include one or more components which may be hardware, software, or a combination of hardware and software. The dialog system  104  can be executed by a computer system such as those described in conjunction with  FIGS. 6 and 7 . However, in other embodiments, the components described in conjunction with  FIG. 2B , are logic circuits or other specially-designed hardware that are embodied in a FPGA or ASIC. The components contained within the dialog system  104  can include a dialog core  210  that is communication with a message history database  222 , an agent interface  224 , and a heuristic rules and dialogs database  218 . Further, the heuristic rules and dialogs database  218  can be in communication with a dialog creator  220 . 
         [0048]    The dialog core  210  can include one or more sub-components. For example, the dialog core  210  can include a trend analysis component  212 , a text processing component  214 , and an analysis tools component  216 . These components, similar to the components for the dialog system  104 , can be hardware, software, or combination of hardware and software. The dialog core  210  may step through the states of a dialog data structure. A dialog data structure can include a set of inputs and associated actions that can be taken which allow for the automatic and structured response to social media requests or messages. For example, if a user asks for a manual, the input of the text word “manual” can cause the dialog system  104  in accordance with a dialog data structure, to send information about one or more manuals. In turn, the receiver of the response may respond, in kind, with the selection of a certain user manual. In which case, the dialog data structure may then instruct the dialog core to send the user to a website where the user can retrieve an electronic version of the manual. As such, the dialog data structure provides a script a dialog that allows the dialog core  210  to automate the interaction between the contact center  102  and a person. This automation eliminates the need for agent involvement, in some situations, and makes the contact center  102  more efficient and more effective. Further, the automation expands the contact center&#39;s ability to answer numerous messages from the plethora of postings on the numerous social media networks  112 ,  114 , and/or  116 . 
         [0049]    The dialog creator  220  will create a dialog data structure  300  that includes instructions for various states for each social media message that comes into the contact center  102 . The first instruction might be to send the social media message to the trend analysis component  212 , then to the text processing component  214 , and then execute a query of a Customer Relationship Management (CRM) database  232  (to determine if this user has an existing order). A CRM database  232  can be a database as described in conjunction with  FIGS. 6 and 7  and can store information about customers or other data related to customer relations. Finally the dialog data structure  220  might decide that the social media message should be sent to a human agent  228  for processing. The instructions or node transitions are executed in the dialog core  210  and make use of many different components that the dialog creator  220  combines in any way the user desires to handle the social media messages. The dialog core  210  can make use of the trend analysis component  212 , text processing component  214 , or other systems. The dialog core  210  may also interface with a CRM system and/or database  232 , external databases, social media user information (e.g., followers, friends, post history, etc. from the social media site), or other systems. 
         [0050]    The trend analysis component  212  is operable to analyze trends that occur between two or more messages received by the social media networks  112 ,  114 , and/or  116 . The two messages can be from different social media networks, so that the trend analysis component  212  can identify trends across several different social media networks  112 ,  114 , and/or  116 . Trends can include multiple occurrences of the same word or phrase, multiple occurrences of a customer identity, product name or service, or multiple occurrences of some other information that might indicate a trend. Further, the trend analysis component  212  may be able to identify escalations in the occurrences of particular text, identities, or other information, or may identify multiple occurrences over a period of time. The trend analysis component  212  may also be able to apply one or more different algorithms to occurrences of information within the social media networks  112 ,  114 , and/or  116 . For example, the trend analysis component  212  can match the number of occurrences of a phrase or word over a period of time and apply analysis to determine if the occurrences are increasing or decreasing over the period of time. 
         [0051]    The dialog core  210  may detect trending by a customer or user. Each individual social media user may be “trending” on a topic. For example, “Bob” occasionally talks (e.g., tweets/facebook posts) about possible summer vacation plans, but, starting in the month of March, the frequency of mentions for “summer vacation” increases from 0.5 mentions per month across all social media networks  112 ,  114 , and/or  116  to  3  mentions per month across all social media networks  112 ,  114 , and/or  116 . The increase may be a positive short term trend for an individual user that may trigger a summer travel advertising campaign to “Bob.” Thus, a baseline of activity on a topic may be determined then the dialog core  210  can notice significant changes (i.e., statistically significant changes) that may be valuable information for a business. In other words, trends are meaningful with an understanding of what the base “noise” level is for a social media user. 
         [0052]    Further, a trend for one user may be compared to the trends of other users, either as individuals or as aggregated groups. With the comparison information, threshold levels (i.e., the levels at which a customer becomes valuable) can be automatically adjusted. For example, if a major media outlet (e.g., Time Magazine) writes an article on time share condos as a vacation option, the average level of conversation on time share condos for vacation may increase across a large body of users. An average number of mentions, for the whole of social media users, of time shares may increase. As such, trying to determine a valuable customer may not function with an unadjusted threshold because too many people may go over the threshold. However, the dialog core  210  may automatically adjust the threshold based on the actions of the whole of social media users to cull out those users that post in excess of the larger general trend. Thus, for any given topic, there is an average number of mentions. The average number of mentions can fluctuate with external factors. Users that exceed the average number of mentions per unit time might be showing greater interest or potential. This analysis optimizes the use of contact center resources in attempting to connect to interested/interesting/influential customers. Functional use of a trend may require a threshold. The thresholds can be fixed or based on data across either time (frequency/time&gt;N, where N is either fixed or a computed average), between users and groups (A relative to B), or a combination of the two. 
         [0053]    The text processing component  214  is operable to analyze text of one or more messages from social media networks  112 ,  114 , or  116 . Some possible methods for text processing can include Regular Expression, Latent Semantic Indexing (LSI), text part of speech tagging, text clustering, N-Gram document analysis, etc. In addition, for possibly longer documents, (such as, blogs or emails), the text processing component  214  may execute one or more methods of document summarization. The summarization may occur if the social media message will be sent to an agent  228  of the contact center  102 ; the summarization can reduce the amount of information that the agent may manage. The text processing rules or models may be stored in and/or retrieved from a text processing rules database  230 . The text processing rules database  230  can be a database as described in conjunction with  FIGS. 6 and 7  that stores rules or models used by the text processing component  214 . 
         [0054]    The text processing component  214  can identify one or more occurrences of a particular text, such as using one or more of the message fields referenced above, in order to associate that social media message with one or more dialogs data structures in the heuristic rules and dialog database  218 . For example, the text processing component  214  can look for the word “manual,” in the social media message. If the word “manual” is found, the text processing component  214  may retrieve a dialog data structure from the heuristic rules and dialogs database  218 , and, as the dialog data structure instructs, communicates with the customer about one or more owner&#39;s manuals, repair manuals, or other types of manuals. In another example, if the social media message includes the words, “buy”, “sell”, “price, “discount” or other types of words that may indicate the user or customer wishes to buy a product, the text processing component  214  can retrieve one or more dialog data structures from the heuristic rules and dialogs database  218  that can provide instruction to assist the customer in purchasing products or services from the enterprise. 
         [0055]    The analysis tools component  216  is operable to analyze response messages received back from an agent interface  224 . In analyzing the agent&#39;s responses, the analysis tools component  216  can determine if the dialog data structures  300  ( FIG. 3 ) originally retrieved by the text processing component  214  met the needs of the customer. In the analysis, the agent may enter one or more items of information, for the analysis tools component  216 , about the response and about how the response matched with the dialog data structures  300 . The analysis tools component  216  can review the response and determine if it was similar to the response provided by the dialog data structure  300  ( FIG. 3 ). Thus, the analysis tools component  216  can provide information to the dialog core  210  or the dialog creator  220  to improve the dialog data structures  300  ( FIG. 3 ) that are included in the heuristic rules and dialogs database  218 . 
         [0056]    The message history database  222  can be any database or data storage system as described in conjunction with  FIGS. 6 and 7 . Thus, the message history database  222  can store data in data fields, objects, or other data structures to allow other systems to retrieve that information at a later time. The message history database  222  can store previous messages or information about previous messages. Thus, for example, if the trend analysis component  212  is analyzing several messages over a period of time, the trend analysis component  212  can retrieve information about previous messages associated with the current analysis from the message history database  222 . As such, the trend analysis component  212  can better detect trends occurring at the social media networks  112 ,  114 , and/or  116 . The data stored by the message history database  222  can include the entire message or only a portion of the message, and in some circumstances, include metadata about the message(s). 
         [0057]    The heuristic rules and dialogs database  218  can be any type of database or data storage system as described in conjunction with  FIGS. 6 and 7 . The heuristic rules and dialogs database  218  can store information in data fields, data objects, and/or any other data structures. An example of information stored within the heuristic rules and dialogs database  218  is described in conjunction with  FIG. 3 . The heuristic rules and dialogs database  218  stores rules and dialogs data structures that automate responses to received social media messages. The dialogs data structures control the interaction between the dialog core  210  and the social media network  112 ,  114 , and/or  116 . The dialogs or heuristic rules can be created by a dialog creator  220 . Thus, the dialog creator  220  can interface with user input  226  to receive information about dialogs. The user input  226  is then used to form the states and responses for a dialog data structure. 
         [0058]    An agent interface  224  is a communication system operable to send action items to contact center agents, in the contact center  102 . An agent  228  can be a person or other system that is operable to respond to certain questions or requests from a customer. For example, the agent  228  can be a person that has specialized expertise in a topic area, such as technical support. The agent interface  224  can format the social message into an action item and forward that message to one or more agents  228 . The agent interface  224  can also receive response(s) back from the agents  228 . The information provided by the agent  228  may be used by the dialog core  210  to complete a response to the social media message. For example, the information may classify the social media message (e.g., sales, service, etc.). In other embodiments, the response is a complete response to the social media message that can be posted to the social media network  112 ,  114 , and/or  116 . 
         [0059]    An embodiment of a dialog data structure  300  is shown in  FIG. 3 . The dialog data structure  300  can be stored in several different forms of databases, such as relational databases, flat files, object-oriented databases, etc. Thus, while the term “data field” or “segment” is used herein, the data may be stored in an object, an attribute of an object, or some other form of data structure. Further, the dialog data structure  300  can be stored, retrieved, sent, or received during the processing of dialogs by the dialog core  210  or the dialog creator  220 . The dialog data structure  300  stores one or more items of information in one or more segments. The numeric identifiers (e.g.  302 ,  304 , etc.) shown in  FIG. 3  can identify, the one or more segments. 
         [0060]    The dialog data structure  300  can include one or more input segments, such as, input segment  1   302  and input segment  2   304 , a rules segment  306 , and/or a dialog script segment  308 . Input segments  302  and  304  each include one or more inputs that may be required to associate a social media message with the dialog data structure  300 . The inputs segments  302  and  304  may include a customer identity, a respective customer type, a text word, a phrase, or other information that indicates that the dialog data structure  300  is associated with or pertaining to the social media messages. 
         [0061]    The input segments  302  and  304  may also include certain trends that the trend analysis component  212  can identify. As such, if a trend is identified and associated with the inputs  302  and/or  304 , the dialog data structure  300  can be retrieved and used by the dialog core  210 . While there are only two input segments  302  and  304  shown in  FIG. 3 , there may be more or fewer input segments associated with the dialog data structure  300 , as indicated by ellipses  310 . 
         [0062]    The rules segment  306  can include one or more heuristic rules that either help with the association of the respective dialog data structure  300  with the social media message or control the interaction between the dialog core  210  and the social media customer. For example, the rule  306  can state that the dialog data structure  300  applies only if the social media message includes input segment  1   302  but not input segment  2   304 . One skilled in the art will be able to identify other types of rules that may govern the association of the dialog data structure  300  with the social media message. In other embodiments, the rules segment  306  states that if the social media message includes inputs  302  and/or  304 , then the dialog core  210  should respond with a certain type of action. 
         [0063]    Generally, a dialog script segment  308  includes a script of actions or responses that direct one or more other components, such as the dialog core  210  ( FIG. 2B ), to conduct actions or send the responses. The dialog script segment  308  can include the one or more states and corresponding responses or actions required by the dialog core  210 . If the dialog script segment  308  applies (that is, if the social media message is requesting a certain type of information), the dialog script segment  308  may include the one or more responses that the dialog core  210  should communicate to respond to that social media message. The dialog script segment  308  can also include a response and a pointer to another dialog script segment  308  or another dialog data structure  300 . Further, the dialog script segment  308  may have one or more actions that may be taken by another component after a secondary response is received by a customer. Thus, the dialog script segment  308  can direct or instruct an interaction to continue with a social media user over a period of time and over several interactions between the user and the contact center  102 . 
         [0064]    It should be noted that the dialog script segment  308  can reference one or more other dialog data structures  300 . Thus, the dialog script segment  308  can direct the dialog core  210  to reference at least one other dialog data structure  300  to further act on the social media message. Further, the social media message can be subject of two or more dialog script segments  308 , and direct the dialog core  210  to complete two dialog script segments  308  on the social media message. Also, dialog script segments  308  may not be associated with a response but direct the dialog core  210  to complete other actions, such as populating databases or gathering information. 
         [0065]    An embodiment of a method  400  create a dialog data structure for a contact campaign is shown in  FIG. 4 . Generally, the method  400  begins with a start operation  402  and terminates with an end operation  414 . While a general order for the steps of the method  400  are shown in  FIG. 4 , the method  400  can include more or fewer steps or arrange the order of the steps differently than those shown in  FIG. 4 . The method  400  can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer readable medium. Hereinafter, the method  400  shall be explained with reference to the systems, components, modules, software, data structures, etc. described in conjunction with  FIGS. 1-3 . 
         [0066]    The dialog creator  220  receives an identity profile, in step  404 . The profile can include a type of customer that the enterprise desires to contact. In other embodiments, the enterprise may send one or more identities to the dialog creator  220 . The profile or the identities is submitted as user inputs  226 . An identity can be a name of a person, a user name used in a social network  112 , an address, a phone number, an email address, or some other identifying information. The profile can include income characteristics, buying patterns, typical postings by a user or other information that may be able to identify one or more customers. 
         [0067]    User input  226  is also submitted to the dialog creator  220  that includes search terms or associations, in step  406 . A search term can be any term that should be used to identify a social media message as coming from a customer that the enterprise desires to contact. For example, a search term can be a mention of a product or situation, can be a characteristic of a customer, such as a buying trend, etc. An association can include some type of association between the customer and another entity or group. For example on Facebook, the customer may associate with or be a friend or fan of a group. For example, the association can include a friend or fan association with a group that promotes travel to Europe, promotes a type of musical instrument, promotes a vegetarian diet, etc. 
         [0068]    Dialog creator  220  also receives a campaign communication as user input  226 , in step  408 . The campaign communication can be a communication (e.g. a wording for a post on a Social Media Network  112 ,  114  and/or  116 ) required by the contact center  102  to communicate to the customer after identifying the customer as a customer in which the enterprise desires to contact. The communication can be a message either written or a voice message that can be translated into other media. The communication can be sent to the social media user via the social network  112 ,  114  and/or  116  or other communication media. 
         [0069]    The dialog creator  220  may also receive campaign parameters, in step  410 . Campaign parameters can determine how the ad campaign will be conducted. For example, some of the products desired to be sold by the enterprise may have an expiration date or a date in which they will no longer be available for use. For example, if the enterprise is selling vegetables that have a shelf life, the campaign may only last until the shelf life of the vegetables is reached. In other embodiments, the product may need to be used on a certain day. For example, if there are airline seats available for a certain day of travel to a destination, the campaign may only continue until that airline has flown and the seats are no longer available. Campaign parameters may also delineate which social networks to review, may also determine which customers to ignore or find, or other parameters which may dictate how the campaign is conducted. 
         [0070]    After receiving the information, the dialog creator  220  can create a data dialog data structure  300  which can store the information received. Then the dialog creator  220  can store the information, in step  412 . For example, the profile identities can be stored in an input segment  302  or  304 . The search terms or associations can also be stored in an input segment  302  or  304 . The campaign communication can be stored in a dialog script segment  308 , while the campaign parameters may be stored in the rule segment  306 . After storing the information in the data dialog structure  300 , the data dialog structure  300  can be stored in the heuristic rules and dialogs data base. 
         [0071]    An embodiment of a method  500  for processing a response to a message from the social media network site is shown in  FIG. 5 . Generally, the method  500  begins with a start operation  502  and terminates with an end operation  518 . While a general order for the steps of the method  500  are shown in  FIG. 5 , the method  500  can include more or fewer steps or arrange the order of the steps differently than those shown in  FIG. 5 . The method  500  can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer readable medium. Hereinafter, the method  500  shall be explained with reference to the systems, components, modules, software, data structures, etc. described in conjunction with  FIGS. 1-3 . 
         [0072]    A dialog creator can receive data dialog structure  300  from an enterprise, in step  502 . The data dialog structure  300  can include a dialog script for finding one or more customers that may be able to purchase or use a resource that is available from the enterprise. For example, the enterprise may be an airline that may have empty seats available for an upcoming flight that needs to be filled. The data dialog structure  300  can locate the passengers or people that might be willing to buy those seats for the upcoming flight. In another example the enterprise might be a food distributor or food producer that has a type of produce that has an upcoming expiration or spoilage date. If the food is not purchased by a customer, that food may spoil. As such the data dialog structure  300  can help the dialog system in locating customers to purchase that food. 
         [0073]    Two or more actions may be conducted concurrently, simultaneously, or near simultaneously. The first action can be the storing of the data dialog structure  300  in the heuristic rules and dialog database  218  and the triggering of the dialog core  210  to execute the finding of customers according to the data dialog structure  300 . The triggering of the dialog core  210  can initiate two actions. First action can be text processing component  214  locating incoming social media messages that may indicate a customer desires or a subject to data dialog structure  300 , in step  504 . Thus, the social media network API  204  can receive messages from the social network, in step  506 , and parse those messages for the dialog core  210 . Once sent to the dialog core  210 , the dialog core  210  can search information within the social media message for relation to the data dialog structure  300 . Thus, the dialog core  210  detects processing component or the dialog core  210  can search for one or more items that may be part of the input field of the data dialog structure  300 . The parsing of the social media message to search the data dialog structure  300  can be completed by the text processing component  214 , in step  508 . The sentiment of the social media message may also be ascertained. In other words, the language of the user in the social media message may indicate their personal feeling about either the seller of the product, the product, or their personal situation. For example, if the user blogs about their frequent flier miles on airline A, but airline B is looking to fill seats, then this user might receive a lower sentiment score relative to someone else who has not mentioned any airline affiliation or who has specifically mentioned the airline with the selling need. In another example, language in a message like “lost my job” or “attending funeral” might be negative sentiments that would lower the “score” for a user when evaluating the merits of reaching out to them with an offer. 
         [0074]    The other action may be the trend processing component searching for one or more trends of one or more customers in a customer database or other database. The trends can show trends and messages that indicate that the customer might be subject to the data dialog structure  300 . For example, if a customer frequently posts about traveling, they may be subject or a person to contact for empty airline seats. The dialog core  210  compares the trends and other information from the social media messages to the inputs of the data dialog structure  300 , in step  510 . Thus, any kind of trend or information the social media messages as compared to one or more of the inputs of the data dialog structure  300 . 
         [0075]    If the customer relates or may be a person of interest to the enterprise according to the data dialog structure  300 , the dialog core determines that that person is of interest, in step  512 . If the person is not of interest, the process proceeds “NO” to the end operation  518 . However, if the person is of interest, the step  512  proceeds “YES” to step  514 . In step  514 , the dialog core  210  retrieves the data dialog structure  300  and reads the dialog scripts. The dialog script will dictate how the dialog core  210  should proceed after identifying customers of interest. The dialog core  210  can proceed within an advertising campaign according to the dialog script in step  516 . Thus, the dialog script can provide instructions to the dialog core of how to compose a message to post to the social media network advertising the resource that the enterprise desires to sell. For example, the airline may advertise a very good sale price for an airline ticket to the person who may be of interest in buying airline tickets. Likewise a sale price or coupon may be sent to a person who may desire to purchase produce from the food distributor. In this way, the data dialog system is operable to assist enterprises in selling or marketing their goods that have short shelf lives or expiration dates. 
         [0076]      FIG. 6  illustrates a block diagram of a computing environment  600  that may function as servers, computers, or other systems provided herein. The environment  600  includes one or more user computers  605 ,  610 , and  615 . The user computers  605 ,  610 , and  615  may be general purpose personal computers (including, merely by way of example, personal computers, and/or laptop computers running various versions of Microsoft Corp.&#39;s Windows™ and/or Apple Corp.&#39;s Macintosh™ operating systems) and/or workstation computers running any of a variety of commercially-available UNIX™ or UNIX-like operating systems. These user computers  605 ,  610 ,  615  may also have any of a variety of applications, including for example, database client and/or server applications, and web browser applications. Alternatively, the user computers  605 ,  610 , and  615  may be any other electronic device, such as a thin-client computer, Internet-enabled mobile telephone, and/or personal digital assistant, capable of communicating via a network  620  and/or displaying and navigating web pages or other types of electronic documents. Although the exemplary computer environment  600  is shown with three user computers, any number of user computers may be supported. 
         [0077]    Environment  700  further includes a network  720 . The network  720  may can be any type of network familiar to those skilled in the art that can support data communications using any of a variety of commercially-available protocols, including without limitation SIP, TCP/IP, SNA, IPX, AppleTalk, and the like. Merely by way of example, the network  720  maybe a local area network (“LAN”), such as an Ethernet network, a Token-Ring network and/or the like; a wide-area network; a virtual network, including without limitation a virtual private network (“VPN”); the Internet; an intranet; an extranet; a public switched telephone network (“PSTN”); an infra-red network; a wireless network (e.g., a network operating under any of the IEEE 802.11 suite of protocols, the Bluetooth™ protocol known in the art, and/or any other wireless protocol); and/or any combination of these and/or other networks. 
         [0078]    The system may also include one or more server  725 ,  730 . In this example, server  725  is shown as a web server and server  730  is shown as an application server. The web server  725 , which may be used to process requests for web pages or other electronic documents from user computers  705 ,  710 , and  715 . The web server  725  can be running an operating system including any of those discussed above, as well as any commercially-available server operating systems. The web server  725  can also run a variety of server applications, including SIP servers, HTTP servers, FTP servers, CGI servers, database servers, Java servers, and the like. In some instances, the web server  725  may publish operations available operations as one or more web services. 
         [0079]    The environment  700  may also include one or more file and or/application servers  730 , which can, in addition to an operating system, include one or more applications accessible by a client running on one or more of the user computers  705 ,  710 ,  715 . The server(s)  730  and/or  725  may be one or more general purpose computers capable of executing programs or scripts in response to the user computers  705 ,  710  and  715 . As one example, the server  730 ,  725  may execute one or more web applications. The web application may be implemented as one or more scripts or programs written in any programming language, such as Java™, C, C#™, or C++, and/or any scripting language, such as Perl, Python, or TCL, as well as combinations of any programming/scripting languages. The application server(s)  730  may also include database servers, including without limitation those commercially available from Oracle, Microsoft, Sybase™, IBM™ and the like, which can process requests from database clients running on a user computer  705 . 
         [0080]    The web pages created by the server  725  and/or  730  may be forwarded to a user computer  705  via a web (file) server  725 ,  730 . Similarly, the web server  725  may be able to receive web page requests, web services invocations, and/or input data from a user computer  705  and can forward the web page requests and/or input data to the web (application) server  730 . In further embodiments, the web server  730  may function as a file server. Although for ease of description,  FIG. 6  illustrates a separate web server  725  and file/application server  730 , those skilled in the art will recognize that the functions described with respect to servers  725 ,  730  may be performed by a single server and/or a plurality of specialized servers, depending on implementation-specific needs and parameters. The computer systems  705 ,  710 , and  715 , web (file) server  725  and/or web (application) server  730  may function as the system, devices, or components described in  FIGS. 1-3 . 
         [0081]    The environment  700  may also include a database  735 . The database  735  may reside in a variety of locations. By way of example, database  735  may reside on a storage medium local to (and/or resident in) one or more of the computers  705 ,  710 ,  715 ,  725 ,  730 . Alternatively, it may be remote from any or all of the computers  705 ,  710 ,  715 ,  725 ,  730 , and in communication (e.g., via the network  720 ) with one or more of these. The database  735  may reside in a storage-area network (“SAN”) familiar to those skilled in the art. Similarly, any necessary files for performing the functions attributed to the computers  705 ,  710 ,  715 ,  725 ,  730  may be stored locally on the respective computer and/or remotely, as appropriate. The database  735  may be a relational database, such as Oracle 10i™, that is adapted to store, update, and retrieve data in response to SQL-formatted commands. 
         [0082]      FIG. 7  illustrates one embodiment of a computer system  700  upon which the servers, computers, or other systems or components described herein may be deployed or executed. The computer system  700  is shown comprising hardware elements that may be electrically coupled via a bus  755 . The hardware elements may include one or more central processing units (CPUs)  705 ; one or more input devices  710  (e.g., a mouse, a keyboard, etc.); and one or more output devices  715  (e.g., a display device, a printer, etc.). The computer system  700  may also include one or more storage devices  720 . By way of example, storage device(s)  720  may be disk drives, optical storage devices, solid-state storage devices such as a random access memory (“RAM”) and/or a read-only memory (“ROM”), which can be programmable, flash-updateable and/or the like. 
         [0083]    The computer system  700  may additionally include a computer-readable storage media reader  725 ; a communications system  730  (e.g., a modem, a network card (wireless or wired), an infra-red communication device, etc.); and working memory  740 , which may include RAM and ROM devices as described above. The computer system  700  may also include a processing acceleration unit  735 , which can include a DSP, a special-purpose processor, and/or the like. 
         [0084]    The computer-readable storage media reader  725  can further be connected to a computer-readable storage medium, together (and, optionally, in combination with storage device(s)  720 ) comprehensively representing remote, local, fixed, and/or removable storage devices plus storage media for temporarily and/or more permanently containing computer-readable information. The communications system  730  may permit data to be exchanged with the network  720  ( FIG. 7 ) and/or any other computer described above with respect to the computer system  700 . Moreover, as disclosed herein, the term “storage medium” may represent one or more devices for storing data, including read only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing information. 
         [0085]    The computer system  700  may also comprise software elements, shown as being currently located within a working memory  740 , including an operating system  745  and/or other code  750 . It should be appreciated that alternate embodiments of a computer system  700  may have numerous variations from that described above. For example, customized hardware might also be used and/or particular elements might be implemented in hardware, software (including portable software, such as applets), or both. Further, connection to other computing devices such as network input/output devices may be employed. 
         [0086]    In the foregoing description, for the purposes of illustration, methods were described in a particular order. It should be appreciated that in alternate embodiments, the methods may be performed in a different order than that described. It should also be appreciated that the methods described above may be performed by hardware components or may be embodied in sequences of machine-executable instructions, which may be used to cause a machine, such as a general-purpose or special-purpose processor or logic circuits programmed with the instructions to perform the methods. These machine-executable instructions may be stored on one or more machine readable mediums, such as CD-ROMs or other type of optical disks, floppy diskettes, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flash memory, or other types of machine-readable mediums suitable for storing electronic instructions. Alternatively, the methods may be performed by a combination of hardware and software. 
         [0087]    Specific details were given in the description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits may be shown in block diagrams in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments. 
         [0088]    Also, it is noted that the embodiments were described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed, but could have additional steps not included in the figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function. 
         [0089]    Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine readable medium such as storage medium. A processor(s) may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc. 
         [0090]    While illustrative embodiments of the invention have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed, and that the appended claims are intended to be construed to include such variations, except as limited by the prior art.