US Pat. No. 10,509,781

SYSTEMS AND METHODS FOR UPDATING NODE PROFILE STATUS BASED ON AUTOMATED ELECTRONIC ACTIVITY

People.ai, Inc., San Fra...

1. A method, comprising:accessing, by one or more processors, data from a plurality of electronic activities transmitted or received via electronic accounts associated with a plurality of data source providers;
maintaining, by the one or more processors, a plurality of node profiles, each node profile of the plurality of node profiles corresponding to an entity, each node profile including one or more field-value pairs including values extracted from the data from the plurality of electronic activities;
identifying, by the one or more processors, for a first electronic activity account of a first data source provider, a second electronic activity of the plurality of electronic activities automatically generated and transmitted in response to a first electronic activity of the plurality of electronic activities transmitted from the first electronic activity account, the first electronic activity transmitted to a recipient and the second electronic activity identifying the recipient;
determining, by the one or more processors, that the second electronic activity is an automated electronic activity responsive to the first electronic activity;
determining, by the one or more processors, responsive to parsing content included in a body of the second electronic activity, a context related to the second electronic activity;
matching, by the one or more processors, from the plurality of node profiles, a node profile corresponding to the recipient of the first electronic activity with the second electronic activity by comparing a contact identifier of the recipient extracted from the second electronic activity with a field-value pair of the node profile, the field-value pair identifying the contact identifier of the recipient and identifying a value data structure including at least a first entry corresponding to the first electronic activity or the second electronic activity;
updating, by the one or more processors, responsive to the second electronic activity, a status associated with the node profile corresponding to the recipient based on the context;
identifying, by the one or more processors, for a second electronic activity account of a second data source provider, a fourth electronic activity of the plurality of electronic activities automatically generated and transmitted in response to a third electronic activity of the plurality of electronic activities transmitted from the second electronic activity account, the third electronic activity transmitted to the recipient and the fourth electronic activity identifying the recipient;
determining, by the one or more processors, that the fourth electronic activity is a second automated electronic activity responsive to the third electronic activity; and
updating, by the one or more processors, a confidence score of the status of the node profile based on the fourth electronic activity.

US Pat. No. 10,489,430

SYSTEMS AND METHODS FOR MATCHING ELECTRONIC ACTIVITIES TO RECORD OBJECTS USING FEEDBACK BASED MATCH POLICIES

PEOPLE.AI, INC., San Fra...

1. A method, comprising:accessing, by one or more processors, data of a plurality of electronic activities transmitted or received via electronic accounts of one or more data source providers;
accessing, by the one or more processors, a plurality of record objects of one or more systems of record, each record object of the plurality of record objects corresponding to a record object type and comprising one or more object fields having one or more object field values, the systems of record corresponding to the one or more data source providers;
identifying, by the one or more processors, responsive to applying a matching model for identifying candidate record objects, a plurality of candidate record objects with which to match an electronic activity of the plurality of electronic activities, the matching model used to generate a respective match score between the electronic activity and a respective candidate record object of the plurality of candidate record objects;
selecting, by the one or more processors, a first record object from the plurality of candidate record objects based on a first match score between the electronic activity and the first record object;
monitoring, by the one or more processors, the match between the electronic activity and the first record object for feedback regarding the match;
responsive to not receiving a first feedback regarding the selection of the first record object,
identifying, by the one or more processors, a first data structure including an electronic activity identifier identifying the electronic activity, a record object identifier indicating the first record object and a first label indicating that the electronic activity matches the first record object;
configuring, by the one or more processors, the matching model in a first configuration by training the matching model using the first data structure, the matching model configured to output a second match score between the electronic activity and the first record object in the first configuration greater than the first match score responsive to receiving data corresponding to the electronic activity and the first record object as a first input to the matching model; and
responsive to receiving a second feedback corresponding to the electronic activity not matching the first record object,
modifying, by the one or more processors, the first label of the first data structure to a second label indicating that the electronic activity does not match the first record object or generating, by the one or more processors, a second data structure including the electronic activity identifier, the record object identifier indicating the first record object, and the second label indicating that the electronic activity does not match the first record object; and
configuring, by the one or more processors, the matching model in a second configuration by training the matching model using the second data structure or the modified first data structure, the matching model configured to output a third match score between the electronic activity and the first record object in the second configuration less than the first match score responsive to receiving data corresponding to the electronic activity and the first record object as a second input to the matching model.

US Pat. No. 10,509,786

SYSTEMS AND METHODS FOR MATCHING ELECTRONIC ACTIVITIES WITH RECORD OBJECTS BASED ON ENTITY RELATIONSHIPS

People.ai, Inc., San Fra...

1. A method comprising:accessing, by one or more processors, a plurality of electronic activities transmitted or received via electronic accounts of one or more data source providers;
identifying, by the one or more processors, an electronic activity of the plurality of electronic activities accessed from one or more servers of a first entity;
identifying, by the one or more processors, a first participant of the electronic activity associated with the first entity and a second participant of the electronic activity associated with a second entity;
parsing, by the one or more processors, the electronic activity to extract data for matching the electronic activity to one or more record objects of a system of record of the first entity;
responsive to parsing the electronic activity:
determining, by the one or more processors, whether a record object identifier indicating a relationship between the first entity and the second entity is included in the electronic activity;
responsive to determining that the record object identifier is included in the electronic activity:
identifying, by the one or more processors, using the record object identifier, a first record object of the system of record that includes an instance of the record object identifier, the first record object of a first record object type; and
storing, by the one or more processors, in one or more data structures, a first association between the electronic activity and the first record object; and
responsive to determining that the record object identifier is not included in the electronic activity:
determining, by the one or more processors, a second record object of a second record object type corresponding to the second entity;
identifying, by the one or more processors, text of a body of the electronic activity;
determining, by the one or more processors, from the text of the body, an entity identifier identifying a third entity;
identifying, by the one or more processors, using a matching policy based on the entity identifier identifying the third entity, a third record object that is
i) of the first record object type,
ii) linked to the second record object, and
iii) identifying the third entity; and
storing, by the one or more processors, in the one or more data structures, a second association between the electronic activity and the third record object.

US Pat. No. 10,496,688

SYSTEMS AND METHODS FOR INFERRING SCHEDULE PATTERNS USING ELECTRONIC ACTIVITIES OF NODE PROFILES

PEOPLE.AI, INC., San Fra...

1. A method comprising:accessing, by one or more processors, data of a plurality of electronic activities transmitted or received via a plurality of electronic accounts associated with a plurality of data source providers;
identifying, by the one or more processors, for a node profile maintained by the one or more processors, a first set of electronic activities sent from or received by at least one electronic account linked to the node profile within a first time period;
identifying, by the one or more processors, for each electronic activity of the first set of electronic activities, a timestamp at which the electronic activity was sent or received;
generating, by the one or more processors, for each time interval within the first time period, a first temporal distribution of electronic activity for the time interval based on respective timestamps of each electronic activity of the set of electronic activities within the time interval;
determining, by the one or more processors, an electronic activity pattern based on the temporal distribution of electronic activity for each time interval within the first time period;
identifying, by the one or more processors, based on the electronic activity pattern, a first region of the electronic activity pattern satisfying a region identification policy;
storing, by the one or more processors in one or more data structures, an association between the first region and the node profile;
identifying, by the one or more processors, a second set of electronic activities sent from or received by the at least one electronic account linked with the node profile within a second time period;
generating, by the one or more processors, for a second time interval within the second time period, a second temporal distribution of electronic activity for the second time interval based on respective timestamps of each electronic activity of the second set of electronic activities within the second time interval;
determining, by the one or more processors, responsive to comparing the second temporal distribution to the determined electronic activity pattern for the node profile, that the second temporal distribution satisfies an event condition detection policy for detecting an event condition; and
storing, by the one or more processors, in the one or more data structures, an association between the node profile and the event condition.

US Pat. No. 10,489,387

SYSTEMS AND METHODS FOR DETERMINING THE SHAREABILITY OF VALUES OF NODE PROFILES

People.ai, Inc., San Fra...

1. A method comprising:accessing, by one or more processors, at least one of i) a plurality of electronic activities transmitted or received via electronic accounts associated with a plurality of data source providers or ii) a plurality of record objects of a plurality of systems of record associated with the plurality of data source providers;
maintaining, by the one or more processors, a plurality of node profiles, each node profile of the plurality of node profiles including one or more field-value pairs, each field-value pair including a value determined from data of one or more of the plurality of electronic activities or the plurality of record objects;
identifying, by the one or more processors, for a first node profile, a value of a field corresponding to a predetermined type of field that is included in one or more electronic activities or record objects accessed from a set of first data source providers including fewer than a predetermined threshold number of data source providers;
generating, by the one or more processors, responsive to determining that the set of first data source providers include fewer than the predetermined threshold number of data source providers, a restriction tag used by the one or more processors to restrict populating other node profiles of the plurality of node profiles or systems of record with the value of the node field-value pair of the first node profile;
storing, by the one or more processors, in one or more data structures, an association between the restriction tag and at least one of the first node profile or the node field-value pair of the first node profile; and restricting, by the one or more processors, provision of the value to at least one second system of record of a second data source provider different from any data source provider of the first set of data source providers.

US Pat. No. 10,503,719

SYSTEMS AND METHODS FOR UPDATING FIELD-VALUE PAIRS OF RECORD OBJECTS USING ELECTRONIC ACTIVITIES

PEOPLE.AI, INC., San Fra...

1. A method comprising:maintaining, by one or more processors, a plurality of node profiles corresponding to a plurality of unique entities, each node profile including a plurality of fields, each field of the plurality of fields including one or more values;
accessing, by the one or more processors, data from a plurality of electronic activities transmitted or received via electronic accounts associated with one or more data source providers, the one or more processors configured to update the plurality of node profiles using the plurality of electronic activities;
identifying, by the one or more processors, a record object of a plurality of record objects of one or more systems of record, the record object comprising one or more object field-value pairs including a stage field-value pair, the stage field-value pair including a stage field and a stage value selected from a plurality of stage values, each stage value of the plurality of stage values indicating a respective proximity to a completion of an event corresponding to the record object;
matching, by the one or more processors, an electronic activity of the plurality of electronic activities to the record object based on content of the electronic activity and the object field-value pairs of the record object;
identifying, by the one or more processors, from data of the electronic activity, one or more participants of the electronic activity matched to the record object;
determining, by the one or more processors, from a node profile of the plurality of node profiles corresponding to the at least one participant or from the content of the electronic activity, one or more of a title or a department of the at least one participant;
determining, by the one or more processors, that the title or the department of the at least one participant satisfies a stage updating policy, the stage updating policy including one or more rules for updating stage values of the stage field of the record object using the title or the department of the at least one participant; and
updating, by the one or more processors, responsive to determining that the title or the department of the at least one participant satisfies the stage updating policy, the stage field of the record object from a first stage value to a second stage value indicating a second proximity to the completion of the event.

US Pat. No. 10,503,783

SYSTEMS AND METHODS FOR GENERATING NEW RECORD OBJECTS BASED ON ELECTRONIC ACTIVITIES

People.ai, Inc., San Fra...

1. A method comprising:accessing, by one or more processors, data corresponding to a plurality of electronic activities transmitted or received via electronic accounts of one or more data source providers;
accessing, by the one or more processors, data corresponding to a plurality of record objects of one or more systems of record, each record object of the plurality of record objects corresponding to one of a first record object type, a second record object type, or a third record object type and comprising one or more object fields having one or more object field values, the systems of record corresponding to the one or more data source providers, record objects the first record object type corresponding to first entities, record objects of the second record object type corresponding to group entities, and record objects of a third record object type linked to at least one record object of the first record object type and at least one record object of the second record object type, each record object of the first record object type, the second record object type, and the third record object type including object field-value pairs;
parsing, by the one or more processors, data of an electronic activity of the plurality of electronic activities;
determining, by the one or more processors, responsive to parsing the data of the electronic activity, that the electronic activity is to be matched to one or more record objects;
generating, by the one or more processors, activity field-value pairs from the data of the electronic activity;
identifying, by the one or more processors, a system of record corresponding to the data source provider associated with an electronic account via which the electronic activity was transmitted or received, the system of record including a plurality of candidate record objects with which to match the electronic activity;
determining, by the one or more processors, for each candidate record object, responsive to comparing the activity field-value pairs to the object-field value pairs of the plurality of candidate record objects, that a match score indicating a likelihood of the electronic activity matching the candidate record object does not satisfy a threshold;
determining, by the one or more processors, a determined object type of a new record object to generate based on one or more participants of the electronic activity, each participant of the one or more participants is a sender or a recipient of the electronic activity;
generating, by the one or more processors, the new record object of the determined object type in the system of record; and
storing, by the one or more processors, in one or more data structures, an association between the new record object in the system of record and the electronic activity.

US Pat. No. 10,505,888

SYSTEMS AND METHODS FOR CLASSIFYING ELECTRONIC ACTIVITIES BASED ON SENDER AND RECIPIENT INFORMATION

People.ai, Inc., San Fra...

1. A method comprising:maintaining, by one or more processors, a plurality of node profiles corresponding to a plurality of unique entities, each node profile including a plurality of fields, each field of the plurality of fields including one or more values;
accessing, by the one or more processors, a plurality of electronic activities transmitted or received via electronic accounts associated with one or more data source providers, the one or more processors configured to update the plurality of node profiles using the plurality of electronic activities;
identifying, by the one or more processors, an electronic activity of the plurality of electronic activities to process;
determining, by the one or more processors, a relationship between a sender of the electronic activity and at least one recipient of one or more recipients of the electronic activity using the node profiles of the sender and the at least one recipient included in the plurality of node profiles;
assigning, by the one or more processors, a first tag to the electronic activity based on the relationship between the sender and the one or more recipients;
processing, by the one or more processors, the electronic activity based on the assigned first tag;
parsing, by the one or more processors, the electronic activity to determine whether to match the electronic activity to one or more record objects of a system of record corresponding to the data source provider; and
storing, by the one or more processors, in one or more data structures, an association between the electronic activity and a second tag, the second tag
i) indicating to match the electronic activity responsive to determining to match the electronic activity to at least one record object of the one or more record objects; or
ii) generated, responsive to matching the electronic activity to the at least one record object, based on information associated with the at least one record object.

US Pat. No. 10,498,856

SYSTEMS AND METHODS OF GENERATING AN ENGAGEMENT PROFILE

PEOPLE.AI, INC., San Fra...

1. A method comprising:accessing, by one or more processors, for a first record object of a system of record of a data source provider, data from a plurality of electronic activities linked with the first record object, each electronic activity identifying one or more participants associated with the first record object, the first record object including a stage object field-value pair identifying a stage field and a stage value selected from a plurality of stage values, each stage value corresponding to a respective stage of a process and indicating a respective proximity to a completion of the process corresponding to the first record object;
identifying, by the one or more processors, for a participant of the one or more participants, from the plurality of electronic activities, a set of electronic activities including the participant;
determining, by the one or more processors, for a first stage of the process, a first metric based on a first portion of the set of electronic activities, each electronic activity of the first portion of the set having a respective timestamp associated with the first stage;
determining, by the one or more processors, for a second stage of the process, a second metric based on a second portion of the set of electronic activities, each electronic activity of the second portion of the set having a respective timestamp associated with the second stage;
determining, by the one or more processors, an engagement profile of the participant based on the first metric corresponding to the first stage and the second metric corresponding to the second stage; and
storing, by the one or more processors, in one or more data structures, an association between an identifier of the participant and the engagement profile of the participant.

US Pat. No. 10,496,635

SYSTEMS AND METHODS FOR ASSIGNING TAGS TO NODE PROFILES USING ELECTRONIC ACTIVITIES

PEOPLE.AI, INC., San Fra...

1. A method, comprising:maintaining, by the one or more processors, a plurality of node profiles, each node profile of the plurality of node profiles including one or more node field-value pairs, each node field-value pair including a node value associated with a node field;
accessing, by one or more processors, a plurality of electronic activities transmitted or received via electronic accounts of a plurality of data source providers;
identifying, by one or more processors, from the plurality of electronic activities, a second electronic activity corresponding to a first electronic activity transmitted or received via a first electronic account associated with a first contact identifier of a first domain;
detecting, by the one or more processors, responsive to one of parsing contents of the second electronic activity or identifying content included in a header of the second electronic activity, that the second electronic activity is one of (i) a bounce-back electronic activity indicating that a second electronic account identified by a second contact identifier of a second domain that is associated with a recipient of the first electronic activity is unable to receive electronic activities or (ii) an automatic responder electronic activity generated by an autoresponder set up on the second electronic account of the recipient;
identifying, by the one or more processors, at least one node profile of the plurality of node profiles that includes the second contact identifier as a value of a field of the at least one node profile;
assigning, by the one or more processors, a first tag to the identified at least one node profile responsive to detecting that the second electronic activity is the bounce-back electronic activity or assigning, by the one or more processors, a second tag to the identified at least one node profile responsive to detecting that the second electronic activity is the automatic responder electronic activity; and
updating, by the one or more processors, a node field-value pair of the identified at least one node profile based on the first tag or the second tag.

US Pat. No. 10,496,636

SYSTEMS AND METHODS FOR ASSIGNING LABELS BASED ON MATCHING ELECTRONIC ACTIVITIES TO RECORD OBJECTS

PEOPLE.AI, INC., San Fra...

1. A method, comprising:accessing, by one or more processors, data from a plurality of electronic activities transmitted or received via electronic accounts associated with one or more data source providers;
identifying, by the one or more processors, a record object matched with or with which to match a first electronic activity of the plurality of electronic activities;
determining, by the one or more processors, a record object type of the record object that corresponds to a first record object type or a second record object type, the first record object type corresponding to a process and including a stage field including a stage value indicating a proximity to a completion of the process and the second record object type corresponding to a participant of the first electronic activity;
responsive to determining that the record object type is the first record object type,
extracting, by the one or more processors, the stage value corresponding to the stage field of the record object;
selecting, by the one or more processors, a first label based on the extracted stage value and a labeling policy, the labeling policy including a first set of one or more rules or models to associate labels based on stage values of record objects corresponding to the first record object type; and
storing, by the one or more processors, in one or more data structures, an association between the first electronic activity and the selected first label corresponding to the stage value of the record object; and
responsive to determining that the record object type is the second record object type,
determining, by the one or more processors, by parsing the first electronic activity or by identifying at least one value corresponding to a title field or department field of the record object, a first value corresponding to a title of the participant or a department of the participant;
selecting, by the one or more processors, a second label based on the determined first value corresponding to the title of the participant or the department of the participant and the labeling policy, the labeling policy including a second set of one or more rules or models to associate labels based on titles or departments of participants of electronic activities corresponding to record objects of the second record object type; and
storing, by the one or more processors, in the one or more data structures, an association between the first electronic activity and the selected second label corresponding to the first value corresponding to the title of the participant or the department of the participant.

US Pat. No. 10,496,675

SYSTEMS AND METHODS FOR MERGING TENANT SHADOW SYSTEMS OF RECORD INTO A MASTER SYSTEM OF RECORD

People.ai, Inc., San Fra...

1. A method, comprising:accessing, by one or more processors, data corresponding to a plurality of first tenant record objects of a first tenant system of record, each first tenant record object of the plurality of first tenant record objects comprising one or more object field-value pairs, the first tenant system of record associated with a first data source provider of a plurality of data source providers;
generating, by the one or more processors, for each first tenant record object of the first tenant system of record, a master record object for a plurality of master record objects using the first tenant record object, the master record object including one or more object field-value pairs of the corresponding first tenant record object;
accessing, by one or more processors, data corresponding to a plurality of second tenant record objects of a second tenant system of record, each second tenant record object of the second plurality of tenant record objects comprising one or more object field-value pairs, the second tenant system of record associated with a second data source provider of the plurality of data source providers;
determining, by the one or more processors, whether to match a second tenant record object of the plurality of second tenant record object with a corresponding first master record object by comparing the object field-value pairs of the second tenant record object with corresponding object field-value pairs of the master record object;
merging, responsive to determining to match the second tenant record object with the corresponding first master record object, the second tenant record object with the first master record object by adding one or more object field-value pairs of the second tenant record object to the master record object that do not match an existing object field-value pair of the master record object and updating a respective confidence score of one or more existing object field-value pairs of the master record object based on a contribution score of a corresponding object field-value pair of the second tenant record object that matches the existing object field-value pair of the master record object, the contribution score based on at least one of a trust score indicating a level of reliability of the second system of record or a timestamp corresponding to when the second tenant record object was last modified or created; and
generating, by the one or more processors, responsive to determining to not match the second tenant record object with the corresponding first master record object, a second master record object including the one or more object field-value pairs of the second tenant record object.

US Pat. No. 10,496,681

SYSTEMS AND METHODS FOR ELECTRONIC ACTIVITY CLASSIFICATION

People.ai, Inc., San Fra...

1. A method, comprising:maintaining, by one or more processors, a plurality of node profiles corresponding to a plurality of unique entities, each node profile including a plurality of field-value pairs;
accessing, by the one or more processors, data corresponding to a plurality of electronic activities transmitted or received via electronic accounts associated with one or more data source providers, the electronic activities used to update the plurality of node profiles;
extracting, by the one or more processors, from data corresponding to a first electronic activity of the plurality of electronic activities, one or more features used to determine a classification of the first electronic activity;
identifying, by the one or more processors, from the data corresponding to the first electronic activity, a sender and one or more recipients of the first electronic activity and a type of an electronic account identifier corresponding to the sender or a recipient of the one or more recipients;
determining, by the one or more processors, a confidence score indicating a likelihood that the first electronic activity is of a first classification type based on the sender and the one or more recipients of the first electronic activity, the type of the electronic account identifier and a connection profile between at least two of the sender and the one or more recipients, the connection profile based on at least one second electronic activity including the at least two of the sender and the one or more recipients as participants of the at least one second electronic activity;
storing, by the one or more processors, in one or more data structures, an association between the first electronic activity and a tag corresponding to the first classification type and the determined confidence score;
accessing, by the one or more processors, data corresponding to a second electronic activity of the plurality of electronic activities;
determining, by the one or more processors, that a sender and one or more recipients of the second electronic activity match the sender and the one or more recipients of the first electronic activity; and
updating, by the one or more processors, the determined confidence score of the first electronic activity based on a corresponding confidence score of the second electronic activity indicating that the second electronic activity is of the first classification type responsive to determining that the sender and the one or more recipients of the second electronic activity match the sender and the one or more recipients of the first electronic activity corresponding to the first classification type.

US Pat. No. 10,489,457

SYSTEMS AND METHODS FOR DETECTING EVENTS BASED ON UPDATES TO NODE PROFILES FROM ELECTRONIC ACTIVITIES

People.ai, Inc., San Fra...

1. A method, comprising:accessing, by one or more processors, data of a plurality of electronic activities transmitted or received via a plurality of electronic accounts associated with a plurality of data source providers, each electronic activity of the plurality of electronic activities corresponding to at least one of an email, a call, a calendar event or a message;
generating, by the one or more processors, by parsing data of a first subset of electronic activities of the plurality of the electronic activities, a plurality of activity field-value pairs, each activity field-value pair including an activity value associated with an activity field;
maintaining, by the one or more processors, in one or more data structures, a plurality of node profiles, each node profile of the plurality of node profiles including one or more node field-value pairs, each node field-value pair including a node value associated with a node field, each node value associated with a confidence score;
updating, by the one or more processors, a first node profile of the plurality of node profiles based on the first subset of electronic activities by adding a new value corresponding to a field, the field corresponding to a last name field, a title field, a company name field, a location field, an email address field or a phone number field of the first node profile;
maintaining, by the one or more processors, a first confidence score of a first value corresponding to the field and a second confidence score of the new value, the second confidence score of the new value based on respective contribution scores of respective electronic activities of the subset of electronic activities associated with a respective activity field-value pair corresponding to the new value, the first confidence score of the first value based on respective contribution scores of respective electronic activities of a second subset of electronic activities associated with a respective activity field-value pair corresponding to the first value;
comparing, by the one more processors, the second confidence score to the first confidence score or to a threshold corresponding to one or more event detection policies, each event detection policy used for determining a respective event type of a plurality of event types, each event type corresponding to one or more of a last name field, a title field, a company name field, a location field, an email address field or a phone number field of a respective node profile;
determining, by the one or more processors, based on the second confidence score of the new value exceeding the first confidence score or satisfying the threshold, a first event of a first event type of the plurality of event types based on the field of the first node profile to which the new value corresponds; and
storing, by the one or more processors, responsive to determining the first event, an association between the first node profile and the first event type corresponding to the first event.

US Pat. No. 10,504,050

SYSTEMS AND METHODS FOR MANAGING ELECTRONIC ACTIVITY DRIVEN TARGETS

PEOPLE.AI, INC., San Fra...

1. A method comprising:maintaining, by one or more processors, a plurality of node profiles respectively corresponding to a plurality of entities, each node profile including a plurality of field-value pairs;
accessing, by the one or more processors, data from a first plurality of electronic activities transmitted or received via electronic accounts associated with one or more data source providers, the one or more processors configured to update the plurality of node profiles using the data from the first plurality of electronic activities;
generating, by the one or more processors, for a first node profile of the plurality of node profiles, an endpoint profile using data from electronic activities of at least one second node profile, the at least one second node profile including one or more field-value pairs that match one or more field-value pairs of the first node profile, the endpoint profile specifying targets that can be tracked based on electronic activities corresponding to the first node profile, the first node profile different from the at least one second node profile, wherein generating the endpoint profile comprises
generating, by the one or more processors, for each second node profile of the at least one second node profile, a respective electronic activity pattern based on a second plurality of electronic activities transmitted or received via electronic accounts of the second node profile, and
setting, by the one or more processors, one or more target values for the endpoint profile based on each respective electronic activity pattern;
storing, by the one or more processors, in one or more data structures, an association between the first node profile and the endpoint profile specifying the targets;
parsing, by the one or more processors, data from a third plurality of electronic activities corresponding to the first node profile;
updating, by the one or more processors, a metric relating to the targets responsive to parsing the data from the third plurality of electronic activities;
determining, by the one or more processors, that the updated metric does not satisfy a threshold value; and
transmitting, by the one or more processors, responsive to determining that the updated metric does not satisfy the threshold value, a notification to a contact identifier corresponding to a third node profile, the notification referencing at least one of the targets.

US Pat. No. 10,496,634

SYSTEMS AND METHODS FOR DETERMINING A COMPLETION SCORE OF A RECORD OBJECT FROM ELECTRONIC ACTIVITIES

PEOPLE.AI, INC., San Fra...

1. A method comprising:accessing, by one or more processors, data from a plurality of record objects of one or more systems of record, each record object of the plurality of record objects corresponding to a record object type and comprising one or more object fields having one or more object field-values;
selecting, by the one or more processors, a first record object of the plurality of record objects;
identifying, by the one or more processors, a plurality of electronic activities transmitted or received via electronic accounts and associated with the first record object, each of the plurality of electronic activities having a timestamp indicating a receipt time or transmission time of the respective electronic activity;
determining, by the one or more processors and responsive to parsing data from the plurality of electronic activities, at least one participant of each of the plurality of electronic activities;
determining, by the one or more processors, for the at least one participant of each of the plurality of electronic activities, at least one of a role, a title, or a department corresponding to the at least one participant;
determining, by the one or more processors, a completion score indicating a likelihood of completing an event associated with the first record object, the completion score based on the timestamp of each of the plurality of electronic activities and at least one of the role, the title, or the department of the at least one participant of each of the plurality of electronic activities; and
storing, by the one or more processors, in one or more data structures, an association between the first record object and the completion score.

US Pat. No. 10,489,462

SYSTEMS AND METHODS FOR UPDATING LABELS ASSIGNED TO ELECTRONIC ACTIVITIES

People.ai, Inc., San Fra...

1. A method, comprising:accessing, by one or more processors, data from a plurality of electronic activities transmitted or received via electronic accounts associated with a plurality of data source providers, the one or more processors maintaining a plurality of node profiles and configured to update the plurality of node profiles using the plurality of electronic activities, each node profile of the plurality of node profiles including one or more field-value pairs, each field-value pair of the node profile associated with a corresponding field and a field value;
matching, by the one or more processors, a first electronic activity of the plurality of electronic activities to one or more participant node profiles of the plurality of node profiles, each participant node profile corresponding to a respective one of the electronic accounts via which the electronic activity is transmitted or received;
assigning, by the one or more processors, one or more tags to the first electronic activity based on at least one participant node profile of the one or more participant node profiles matched to the first electronic activity;
accessing, by the one or more processors, data from a second electronic activity transmitted or received via one or more of the electronic accounts associated with at least one of the plurality of data source providers;
matching, by the one or more processors, the second electronic activity to the at least one participant node profile;
causing, by the one or more processors, a change to the at least one participant node profile responsive to matching the second electronic activity to the at least one participant node profile, the change to the at least one participant node profile including at least one of i) an addition of a value of a field of the at least one participant node profile, ii) an addition of an indication of an electronic activity to a value data structure of the value of the field of the at least one participant node profile, or iii) a change to a connection profile between the at least one participant node profile and a second node profile;
detecting, by the one or more processors, the change to the at least one participant node profile;
determining, by the one or more processors, whether to assign a second tag to the first electronic activity responsive to determining that a first confidence score of the value satisfies a first threshold score or remove at least one tag of the one or more tags assigned to the first electronic activity responsive to determining that the first confidence score of the value no longer satisfies the first threshold score or a second confidence score of the at least one tag no longer satisfies a second threshold score; and
assigning, by the one or more processors, the second tag to the first electronic activity responsive to determining that the first confidence score of the value satisfies the first threshold score; or
removing, by the one or more processors, the at least one tag assigned to the first electronic activity responsive to determining that the first confidence score no longer satisfies the first threshold score or a second confidence score of the at least one tag no longer satisfies a second threshold score.

US Pat. No. 10,535,031

SYSTEMS AND METHODS FOR ASSIGNING NODE PROFILES TO RECORD OBJECTS

People.ai, Inc., San Fra...

1. A method comprising:maintaining, by one or more processors, a plurality of node profiles, each node profile including one or more field-value pairs and updated using electronic activities identifying an entity of the node profile;
identifying, by the one or more processors, a first record object to which to assign a node profile, the first record object corresponding to a system of record, the first record object linked to a second record object of the system of record identifying a group entity and a third record object of the system of record identifying a first entity, the first record object comprising one or more field-value pairs including a stage field-value pair having a stage field and a stage value selected from a plurality of stage values, each stage value of the plurality of stage values indicating a respective proximity to a completion of an event corresponding to the first record object;
selecting, by the one or more processors, from the plurality of node profiles, a subset of node profiles that satisfy a node profile selection policy;
generating, by the one or more processors, for each node profile of the subset of node profiles, a performance profile using the electronic activities identifying the respective entity corresponding to the node profile and the one or more object field-value pairs of the first record object;
determining, by the one or more processors, for a first node profile of the subset, that a match score between the first node profile and the first record object based on the performance profile and one or more object field-value pairs of the first record object satisfies a threshold; and
storing, by the one or more processors, an association between the first node profile of the subset and the first record object based on the match score.

US Pat. No. 10,528,601

SYSTEMS AND METHODS FOR LINKING RECORD OBJECTS TO NODE PROFILES

PEOPLE.AI, INC., San Fra...

1. A method comprising:accessing, by one or more processors, a plurality of record objects of one or more systems of record, each record object of the plurality of record objects corresponding to a record object type and the each record object comprising one or more object field-value pairs associating an object field value to a corresponding field of the each record object, the systems of record corresponding to one or more data source providers;
maintaining, by the one or more processors, a plurality of node profiles corresponding to a plurality of unique entities, each node profile including one or more node field-value pairs associating a node field value to a corresponding field of the each node profile;
identifying, by the one or more processors, a record object of the plurality of record objects to match to at least one node profile of the plurality of node profiles;
comparing, by the one or more processors, the object field values of the one or more object field-value pairs of the record object to the corresponding node field values of the corresponding fields of a node profile of the plurality of node profiles;
generating, by the one or more processors based on the comparing, a match score of the node profile indicating a likelihood that the record object corresponds to the node profile;
matching, by the one or more processors, the record object to the node profile of the plurality of node profiles responsive to determining that the match score of the node profile satisfies a threshold;
updating, by the one or more processors, a first value data structure of a first node field-value of the node profile by adding a first entry identifying the record object;
updating, by the one or more processors, a confidence score of the first node field value based on the first entry identifying the record object;
updating, by the one or more processors, responsive to determining that a second object field-value pair matches a second node field-value pair of the node profile, a second value data structure of the second node field-value pair by adding a second entry identifying the record object; and
updating, by the one or more processors, a second confidence score of the second node field value based on the second entry identifying the record object.

US Pat. No. 10,521,443

SYSTEMS AND METHODS FOR MAINTAINING A TIME SERIES OF DATA POINTS

PEOPLE.AI, INC., San Fra...

1. A method, comprising:accessing, by one or more processors, at least one of a plurality of electronic activities transmitted or received via electronic accounts associated with one or more data source providers or a plurality of record objects of one or more systems of record associated with the one or more data source providers;
maintaining, by the one or more processors, an association between each electronic activity or record object and a timestamp respectively corresponding to when the electronic activity was sent or received by an electronic activity account or when the record object was last updated;
maintaining, by the one or more processors a plurality of node profiles, each node profile of the plurality of node profiles including one or more field-value pairs, each field-value pair including a value determined from data of one or more of the plurality of electronic activities or the plurality of record objects; and
generating, by the one or more processors, for a particular time, a confidence score of a particular value of a field-value pair of a node profile only using the data of the one or more of the plurality of electronic activities or the plurality of record objects that correspond to the field-value pair of the particular value and have a corresponding timestamp prior to or contemporaneous with the particular time.

US Pat. No. 10,516,784

SYSTEMS AND METHODS FOR CLASSIFYING PHONE NUMBERS BASED ON NODE PROFILE DATA

People.ai, Inc., San Fra...

20. A non-transitory computer-readable storage medium having instructions embodied thereon, the instructions being executable by one or more processors to:maintain a plurality of node profiles including one or more field-value pairs, at least one of the field-value pairs of each node profile identifying a phone number corresponding to the node profile;
generate a plurality of activity field-value pairs from data of an electronic activity accessed by the one or more processors, each activity field-value pair of the plurality of activity field-value pairs corresponding to at least one participant of the electronic activity;
parse the electronic activity to identify a string including at least a predetermined number of numerical characters corresponding to an electronic activity phone number;
identify a first node profile of the plurality of node profiles corresponding to a sender or one or more recipients of the electronic activity to which the electronic activity phone number corresponds;
determine a phone number type to which the electronic activity phone number corresponds, the phone number type determined using at least one data structure storing respective associations between each respective second phone number of a plurality of second phone numbers and a corresponding field type identifying a phone number type of the respective second phone number, wherein each second phone number is extracted from a respective node profile of the plurality of node profiles that includes a second field-value pair that matches a corresponding second field-value pair of the first node profile, the second field-value pair identifying a group entity, the phone number type determined based on comparing at least a portion of the electronic activity phone number to data from a corresponding portion of each of the plurality of the extracted second phone numbers included in the at least one data structure; and
update the identified first node profile by adding the electronic activity phone number as a new value of a field corresponding to the determined phone number type or updating a confidence score of an existing field-value pair corresponding to the electronic activity phone number.

US Pat. No. 10,516,587

SYSTEMS AND METHODS FOR NODE RESOLUTION USING MULTIPLE FIELDS WITH DYNAMICALLY DETERMINED PRIORITIES BASED ON FIELD VALUES

PEOPLE.AI, INC., San Fra...

1. A method, comprising:maintaining, by one or more processors, a plurality of node profiles, each node profile of the plurality of node profiles corresponding to a respective entity and including node field-value pairs;
accessing, by the one or more processors, data of a plurality of electronic activities transmitted or received via at least one electronic account associated with at least one data source provider;
generating, by the one or more processors, a plurality of activity field-value pairs from data of an electronic activity of the plurality of electronic activities, each activity field-value pair of the plurality of activity field-value pairs including a respective activity value associated with a respective activity field;
determining, by the one or more processors, for a first node field-value pair that matches a first activity field-value pair of the plurality of activity field-value pairs, a first count corresponding to a first number of node profiles of the plurality of node profiles that includes the first node field-value pair;
determining, by the one or more processors, for a second node field-value pair that matches a second activity field-value pair of the plurality of activity field-value pairs, a second count corresponding to a second number of node profiles of the plurality of node profiles that includes the second node field-value pair;
determining, by the one or more processors, a first frequency score of the first activity field-value pair based on the first count and a second frequency score of the second activity field-value pair based on the second count;
assigning, by the one or more processors, a first weight to the first activity field-value pair based on the first frequency score and a second weight to the second activity field-value pair based on the second frequency score, the first weight greater than the second weight responsive to the first frequency score being less than the second frequency score;
generating, by the one or more processors, for each candidate node profile of a plurality of candidate node profiles of the plurality of node profiles, a respective match score of the candidate node profile indicating a likelihood that the electronic activity is transmitted or received by an electronic account corresponding to the candidate node profile based on the first weight assigned to the first activity field-value pair and the second weight assigned to the second activity field-value pair;
selecting, by the one or more processors, from the plurality of candidate node profiles, a node profile based on the respective match score of the node profile; and
storing, by the one or more processors, in one or more data structures, an association between the electronic activity and the node profile.

US Pat. No. 10,515,072

SYSTEMS AND METHODS FOR IDENTIFYING A SEQUENCE OF EVENTS AND PARTICIPANTS FOR RECORD OBJECTS

People.ai, Inc., San Fra...

1. A method, comprising:accessing, by one or more processors, a plurality of first record objects of a system of record of a data source provider each record object of the plurality of record objects comprising one or more object field-value pairs and linked to one or more electronic activities;
identifying, by the one or more processors, a subset of record objects of the plurality of record objects associated with a group entity and having a first record object status, each record object of the subset of record objects including a stage field configured to be associated with one of a plurality of stage values, each stage value of the plurality of stage values corresponding to a respective proximity to a completion of a process associated with the record object;
identifying, by the one or more processors, for each record object of the subset of record objects, a first plurality of electronic activities linked to the record object, each electronic activity of the first plurality of electronic activities i) received or transmitted via one or more electronic accounts, ii) identifying one or more participants, iii) corresponding to at least one event and iv) associated with a respective stage value of the stage field of the record object;
determining, by the one or more processors, for each record object of the subset of record objects, an event-participant pattern for at least one stage value and based on the first plurality of electronic activities linked to the record object that are associated with the at least one stage value, the event-participant pattern identifying at least a first event performed by a first participant of a first participant type and a second event performed by a second participant of a second participant type, the first participant type based on at least one of a first title or a first department of the first participant and the second participant type based on at least one of a second title or a second department of the second participant;
accessing, by the one or more processors, a second record object of the system of record of the data source provider, the second record object comprising one or more object field-value pairs and linked to a second plurality of electronic activities and having a stage field associated with the at least one stage value;
identifying, by the one or more processors, the second plurality of electronic activities linked with the second record object and associated with the at least one stage value of the stage field of the second record object;
determining, by the one or more processors, from the identified second plurality of electronic activities linked with the second record object and based on the event-participant pattern, that the first event is performed by a respective first participant of the first participant type and the second event is not yet performed by any respective second participant of the second participant type;
generating, by the one or more processors, a content item identifying an action based on the second event not yet performed by any respective participant of the second participant type; and
transmitting, by the one or more processors, the content item to a device of a participant of at least one electronic activity of the second plurality of electronic activities linked with the second record object.