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. See below.

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, the person array must include at least one object with type of dwid, voterbase_id, smartvan_vanid, votebuilder_vanid or av_vanid. While a request without one is still accepted by the API, it is considered an unsupported interaction.
  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 and must be integers if Exchange is a Destination.
  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.
  4. All event signup outcomesDetailed objects (indicated by the "event_signup" type) must include an event_id object and a status object with a valid status. Event signups produce no Exchange output.

An example request can be found on the API Examples page (Scenario 3). Note its person array uses none of the types above, so as written it would not be assessed for credits.

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_vanid , 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_vanid , 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_idMust be an integer
outcomesDetailed[type=survey_response].value.responseIdsurvey_question_response_idMust be an integer

Survey Response Metadata

Interactions APIExchange SchemaNotes
interaction.stateCodestate_code
outcomesDetailed[type=survey_response].value.questionIdsurvey_question_idMust be an integer
outcomesDetailed[type=survey_response].value.questionTextsurvey_question_text
outcomesDetailed[type=survey_response].value.responseIdsurvey_question_response_idMust be an integer
outcomesDetailed[type=survey_response].value.responseTextsurvey_question_response_text

Fetching DDx Exchange transactional logs

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

  1. By date, using the endpoint described here. The date range is capped at 30 days, and results are paginated (100 per page by default, 1000 maximum).
  2. By interactionId, which can be found under acceptedInteractions.data[].interactionId in POST /interactions responses, using the endpoint described here.
  3. By correlationId, the batch identifier returned in every POST /interactions response and the X-Correlation-Id header.
📣

Questions about Exchange as a Destination?

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



Did this page help you?