Why does Convio appear to have multiple primary keys?

Options

When doing a data sync / upload, there are in some ways three primary keys: the constituent ID (cons_id) the member ID (member_id), and the email address (primary_email).

The cons_id is really, truly is the primary key.  If the cons_id is included in the upload, it trumps everything else.  How that effects the upload:

  • If your upload has an invalid cons_id, the entire record/row in the upload will be rejected.
  • If your upload has a cons_id and a member_id, the constituent record will be updated will be based on the cons_id regardless of member_id.
  • If your upload has a cons_id and a primary_email, the constituent record will be updated will be based on the cons_id regardless of primary_email.

If there is no cons_id, the member_id acts as a "primary key".  If there is no cons_id, the member_id trumps everything else. How that effects the upload:

  • If your upload has a member_id and a primary_email, the constituent record that will be updated will be based on the member_id regardless of primary_email.
  • If you have a record in Convio that has a member_id and your upload includes a different member_id, the system will completely ignore whatever the primary_email is and create a brand new constituent record.
  • If you have a record in Convio that does not have a member_id but your upload includes a member_id and a matching primary_email, the record with the matching primary_email with be updated with the new member_id.

If there is no cons_id and no member_id, the primary_email acts as a "primary key".  If there is no cons_id and no member_id, the system will only match on primary_email:

  • If your upload has a matching primary_email, the constituent in Convio record that has a matching primary_email will be updated will be based on the primary_email.
  • If your upload has a non-matching primary_email, a new record will be created.
  • If your upload has a record with no cons_id, no member_id, and no primary_email, Convio has no way to match the upload to a record and thus will create a brand new record every time.

See also this help article covering the same basic concept.

For more information on what a primary key is, take a look at the wikipedia article.

Tagged:

Categories