Tech Partners: DDx Exchange as a Destination


Overview

This section covers information about Interactions API requests with the DDx Exchange's endpoint as a destination for Interactions API data.

Interactions App

Check out our Set Up for Sources section if you do not already have an Interactions API App required for sending data to the DDx Exchange.

Validating DDx API Key configuration

The /v1/auth/me endpoint enables two things:

  1. Confirmation that you're using your API key correctly and can authenticate to the API
  2. The ability to confirm the API Key's associated Workspace, Source and Destination details.

Additional API Request Validation

Interactions API requests using an API key configured with DDx Exchange as a Destination are subjected to additional validation. This includes:

  1. To be assessed for credits, currently the person array must include at least one object with type of dwid, voterbase_id, smartvan_vanid, votebuilder_vanid or av_vanid.
  2. All survey response outcomesDetailed objects (indicated by the "survey_response" type) must include questionId and responseId. These must be valid VAN survey question and response IDs.
  3. All survey response outcomesDetailed objects (indicated by the "survey_response" type) must include questionText and responseText. These should be the full text of the question and response, respectively.

An example of a valid request can be found on the API Examples page (Scenario 3).

How is data mapped to the DDx Exchange schema?

The table below describes how data on the Interactions API request is mapped to the format accepted by the DDx Exchange. Currently, language and is_cell fields are not supported and will always be reported to the Exchange as null.

Dispositions

Interactions APIExchange SchemaNotes
interaction.person.idperson_id

Exchange-accepted values:

TargetSmartvoterbase_id, Catalist's dwid, SmartVAN smartvan_vanid, AVav_vaid , or Votebuilder votebuilder_vanid

interaction.person.typeperson_id_typeAccepted values: dwid, voterbase_id, smartvan_vanid, votebuilder_vanid, or av_vanid
interaction.methodcontact_type_name
interaction.outcomecontact_result_name
interaction.attemptDateTimedatetime_canvassed
interaction.stateCodestate_code
interaction.channel.valuephone_numberOnly populated when channel.type = "phone_number"
outcomesDetailed[type=notes].valuenotes

Survey Responses

Interactions APIExchange SchemaNotes
interaction.person.idperson_id

Exchange-accepted values:

TargetSmartvoterbase_id, Catalist's dwid, SmartVAN smartvan_vanid, AVav_vaid , or Votebuilder votebuilder_vanid

interaction.person.typeperson_id_typeAccepted values: dwid, voterbase_id, smartvan_vanid, votebuilder_vanid, or av_vanid
interaction.methodcontact_type_name
interaction.outcomecontact_result_name
interaction.attemptDateTimedatetime_canvassed
interaction.stateCodestate_code
interaction.channel.valuephone_numberOnly populated when channel.type = "phone_number"
outcomesDetailed[type=survey_response].value.questionIdsurvey_question_id
outcomesDetailed[type=survey_response].value.responseIdsurvey_question_response_id

Survey Response Metadata

Interactions APIExchange SchemaNotes
interaction.stateCodestate_code
outcomesDetailed[type=survey_response].value.questionIdsurvey_question_id
outcomesDetailed[type=survey_response].value.questionIdTextsurvey_question_text
outcomesDetailed[type=survey_response].value.responseIdsurvey_question_response_id
outcomesDetailed[type=survey_response].value.responseIdTextsurvey_question_response_text

Fetching DDx Exchange transactional logs

Status and logs regarding integration with the DDx Exchange can be fetched two ways:

  1. By date, using the endpoint described here.
  2. By interactionId, which can be found in successful POST /interactions responses, using the endpoint described here.
📣

For questions about sending data to the DDx Exchange please reach out to us at [email protected]!