Skip to content

get_auto_merging_preview async

get_auto_merging_preview(
    domain_name: name,
    consolidation: Consolidation,
    conflict_resolution: ConflictResolution,
    *,
    config_overrides: Optional[AsyncCustomerProfilesClientConfig] = None,
    min_allowed_confidence_score_for_merging: Optional[Double0To1] = None,
) -> GetAutoMergingPreviewResponse

Tests the auto-merging settings of your Identity Resolution Job without merging your data. It randomly selects a sample of matching groups from the existing matching results, and applies the automerging settings that you provided. You can then view the number of profiles in the sample, the number of matches, and the number of profiles identified to be merged. This enables you to evaluate the accuracy of the attributes in your matching list.

You can't view which profiles are matched and would be merged.

We strongly recommend you use this API to do a dry run of the automerging process before running the Identity Resolution Job. Include at least two matching attributes. If your matching list includes too few attributes (such as only FirstName or only LastName), there may be a large number of matches. This increases the chances of erroneous merges.

Parameters:

  • domain_name (name) –

    The unique name of the domain.

  • consolidation (Consolidation) –

    A list of matching attributes that represent matching criteria.

  • conflict_resolution (ConflictResolution) –

    How the auto-merging process should resolve conflicts between different profiles.

  • min_allowed_confidence_score_for_merging (Optional[Double0To1], default: None ) –

    Minimum confidence score required for profiles within a matching group to be merged during the auto-merge process.

Raises:

Source code in docs_src/capo_customer_profiles/_services/async_customer_profiles.py
async def get_auto_merging_preview(
    self,
    domain_name: "capo_customer_profiles.types.name.name",
    consolidation: "capo_customer_profiles.types.consolidation.Consolidation",
    conflict_resolution: "capo_customer_profiles.types.conflict_resolution.ConflictResolution",
    *,
    config_overrides: Optional[AsyncCustomerProfilesClientConfig] = None,
    min_allowed_confidence_score_for_merging: Optional[
        "capo_customer_profiles.types.double0_to1.Double0To1"
    ] = None,
) -> "capo_customer_profiles.types.get_auto_merging_preview_response.GetAutoMergingPreviewResponse":
    """<p>Tests the auto-merging settings of your Identity Resolution Job without merging your data. It randomly selects a sample of matching groups from the existing matching results, and applies the automerging settings that you provided. You can then view the number of profiles in the sample, the number of matches, and the number of profiles identified to be merged. This enables you to evaluate the accuracy of the attributes in your matching list. </p> <p>You can't view which profiles are matched and would be merged.</p> <important> <p>We strongly recommend you use this API to do a dry run of the automerging process before running the Identity Resolution Job. Include <b>at least</b> two matching attributes. If your matching list includes too few attributes (such as only <code>FirstName</code> or only <code>LastName</code>), there may be a large number of matches. This increases the chances of erroneous merges.</p> </important>

    Args:
        domain_name: <p>The unique name of the domain.</p>
        consolidation: <p>A list of matching attributes that represent matching criteria.</p>
        conflict_resolution: <p>How the auto-merging process should resolve conflicts between different profiles.</p>
        min_allowed_confidence_score_for_merging: <p>Minimum confidence score required for profiles within a matching group to be merged during the auto-merge process.</p>

    Raises:
        capo_customer_profiles.errors.access_denied_exception.AccessDeniedException: <p>You do not have sufficient access to perform this action.</p>
        capo_customer_profiles.errors.bad_request_exception.BadRequestException: <p>The input you provided is invalid.</p>
        capo_customer_profiles.errors.internal_server_exception.InternalServerException: <p>An internal service error occurred.</p>
        capo_customer_profiles.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource does not exist, or access was denied.</p>
        capo_customer_profiles.errors.throttling_exception.ThrottlingException: <p>You exceeded the maximum number of requests.</p>
        capo_customer_profiles.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_customer_profiles.types.get_auto_merging_preview_request.GetAutoMergingPreviewRequest]",
    ) -> AsyncOperationResponse[
        "capo_customer_profiles.types.get_auto_merging_preview_response.GetAutoMergingPreviewResponse"
    ]:
        import capo_customer_profiles._operations.customer_profiles_20200815.get_auto_merging_preview

        (
            output,
            http_response,
        ) = await capo_customer_profiles._operations.customer_profiles_20200815.get_auto_merging_preview.async_get_auto_merging_preview(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("GetAutoMergingPreview")
    )
    input_: capo_customer_profiles.types.get_auto_merging_preview_request.GetAutoMergingPreviewRequest = {
        "domain_name": domain_name,
        "consolidation": consolidation,
        "conflict_resolution": conflict_resolution,
    }
    if min_allowed_confidence_score_for_merging is not None:
        input_["min_allowed_confidence_score_for_merging"] = (
            min_allowed_confidence_score_for_merging
        )

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output