:doc:`CustomerProfiles <../../customer-profiles>` / Client / put_integration

***************
put_integration
***************



.. py:method:: CustomerProfiles.Client.put_integration(**kwargs)

  

  Adds an integration between the service and a third-party service, which includes Amazon AppFlow and Amazon Connect.

   

  An integration can belong to only one domain.

   

  To add or remove tags on an existing Integration, see `TagResource <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_TagResource.html>`__/ `UntagResource <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_UntagResource.html>`__.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/PutIntegration>`_  


  **Request Syntax**
  ::

    response = client.put_integration(
        DomainName='string',
        Uri='string',
        ObjectTypeName='string',
        ObjectTypeNames={
            'string': 'string'
        },
        Tags={
            'string': 'string'
        },
        FlowDefinition={
            'Description': 'string',
            'FlowName': 'string',
            'KmsArn': 'string',
            'SourceFlowConfig': {
                'ConnectorProfileName': 'string',
                'ConnectorType': 'Salesforce'|'Marketo'|'Zendesk'|'Servicenow'|'S3',
                'IncrementalPullConfig': {
                    'DatetimeTypeFieldName': 'string'
                },
                'SourceConnectorProperties': {
                    'Marketo': {
                        'Object': 'string'
                    },
                    'S3': {
                        'BucketName': 'string',
                        'BucketPrefix': 'string'
                    },
                    'Salesforce': {
                        'Object': 'string',
                        'EnableDynamicFieldUpdate': True|False,
                        'IncludeDeletedRecords': True|False
                    },
                    'ServiceNow': {
                        'Object': 'string'
                    },
                    'Zendesk': {
                        'Object': 'string'
                    }
                }
            },
            'Tasks': [
                {
                    'ConnectorOperator': {
                        'Marketo': 'PROJECTION'|'LESS_THAN'|'GREATER_THAN'|'BETWEEN'|'ADDITION'|'MULTIPLICATION'|'DIVISION'|'SUBTRACTION'|'MASK_ALL'|'MASK_FIRST_N'|'MASK_LAST_N'|'VALIDATE_NON_NULL'|'VALIDATE_NON_ZERO'|'VALIDATE_NON_NEGATIVE'|'VALIDATE_NUMERIC'|'NO_OP',
                        'S3': 'PROJECTION'|'LESS_THAN'|'GREATER_THAN'|'BETWEEN'|'LESS_THAN_OR_EQUAL_TO'|'GREATER_THAN_OR_EQUAL_TO'|'EQUAL_TO'|'NOT_EQUAL_TO'|'ADDITION'|'MULTIPLICATION'|'DIVISION'|'SUBTRACTION'|'MASK_ALL'|'MASK_FIRST_N'|'MASK_LAST_N'|'VALIDATE_NON_NULL'|'VALIDATE_NON_ZERO'|'VALIDATE_NON_NEGATIVE'|'VALIDATE_NUMERIC'|'NO_OP',
                        'Salesforce': 'PROJECTION'|'LESS_THAN'|'CONTAINS'|'GREATER_THAN'|'BETWEEN'|'LESS_THAN_OR_EQUAL_TO'|'GREATER_THAN_OR_EQUAL_TO'|'EQUAL_TO'|'NOT_EQUAL_TO'|'ADDITION'|'MULTIPLICATION'|'DIVISION'|'SUBTRACTION'|'MASK_ALL'|'MASK_FIRST_N'|'MASK_LAST_N'|'VALIDATE_NON_NULL'|'VALIDATE_NON_ZERO'|'VALIDATE_NON_NEGATIVE'|'VALIDATE_NUMERIC'|'NO_OP',
                        'ServiceNow': 'PROJECTION'|'CONTAINS'|'LESS_THAN'|'GREATER_THAN'|'BETWEEN'|'LESS_THAN_OR_EQUAL_TO'|'GREATER_THAN_OR_EQUAL_TO'|'EQUAL_TO'|'NOT_EQUAL_TO'|'ADDITION'|'MULTIPLICATION'|'DIVISION'|'SUBTRACTION'|'MASK_ALL'|'MASK_FIRST_N'|'MASK_LAST_N'|'VALIDATE_NON_NULL'|'VALIDATE_NON_ZERO'|'VALIDATE_NON_NEGATIVE'|'VALIDATE_NUMERIC'|'NO_OP',
                        'Zendesk': 'PROJECTION'|'GREATER_THAN'|'ADDITION'|'MULTIPLICATION'|'DIVISION'|'SUBTRACTION'|'MASK_ALL'|'MASK_FIRST_N'|'MASK_LAST_N'|'VALIDATE_NON_NULL'|'VALIDATE_NON_ZERO'|'VALIDATE_NON_NEGATIVE'|'VALIDATE_NUMERIC'|'NO_OP'
                    },
                    'DestinationField': 'string',
                    'SourceFields': [
                        'string',
                    ],
                    'TaskProperties': {
                        'string': 'string'
                    },
                    'TaskType': 'Arithmetic'|'Filter'|'Map'|'Mask'|'Merge'|'Truncate'|'Validate'
                },
            ],
            'TriggerConfig': {
                'TriggerType': 'Scheduled'|'Event'|'OnDemand',
                'TriggerProperties': {
                    'Scheduled': {
                        'ScheduleExpression': 'string',
                        'DataPullMode': 'Incremental'|'Complete',
                        'ScheduleStartTime': datetime(2015, 1, 1),
                        'ScheduleEndTime': datetime(2015, 1, 1),
                        'Timezone': 'string',
                        'ScheduleOffset': 123,
                        'FirstExecutionFrom': datetime(2015, 1, 1)
                    }
                }
            }
        },
        RoleArn='string',
        EventTriggerNames=[
            'string',
        ],
        Scope='PROFILE'|'DOMAIN'
    )
    
  :type DomainName: string
  :param DomainName: **[REQUIRED]** 

    The unique name of the domain.

    

  
  :type Uri: string
  :param Uri: 

    The URI of the S3 bucket or any other type of data source.

    

  
  :type ObjectTypeName: string
  :param ObjectTypeName: 

    The name of the profile object type.

    

  
  :type ObjectTypeNames: dict
  :param ObjectTypeNames: 

    A map in which each key is an event type from an external application such as Segment or Shopify, and each value is an ``ObjectTypeName`` (template) used to ingest the event. It supports the following event types: ``SegmentIdentify``, ``ShopifyCreateCustomers``, ``ShopifyUpdateCustomers``, ``ShopifyCreateDraftOrders``, ``ShopifyUpdateDraftOrders``, ``ShopifyCreateOrders``, and ``ShopifyUpdatedOrders``.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  :type Tags: dict
  :param Tags: 

    The tags used to organize, track, or control access for this resource.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  :type FlowDefinition: dict
  :param FlowDefinition: 

    The configuration that controls how Customer Profiles retrieves data from the source.

    

  
    - **Description** *(string) --* 

      A description of the flow you want to create.

      

    
    - **FlowName** *(string) --* **[REQUIRED]** 

      The specified name of the flow. Use underscores (_) or hyphens (-) only. Spaces are not allowed.

      

    
    - **KmsArn** *(string) --* **[REQUIRED]** 

      The Amazon Resource Name of the AWS Key Management Service (KMS) key you provide for encryption.

      

    
    - **SourceFlowConfig** *(dict) --* **[REQUIRED]** 

      The configuration that controls how Customer Profiles retrieves data from the source.

      

    
      - **ConnectorProfileName** *(string) --* 

        The name of the AppFlow connector profile. This name must be unique for each connector profile in the AWS account.

        

      
      - **ConnectorType** *(string) --* **[REQUIRED]** 

        The type of connector, such as Salesforce, Marketo, and so on.

        

      
      - **IncrementalPullConfig** *(dict) --* 

        Defines the configuration for a scheduled incremental data pull. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull.

        

      
        - **DatetimeTypeFieldName** *(string) --* 

          A field that specifies the date time or timestamp field as the criteria to use when importing incremental records from the source.

          

        
      
      - **SourceConnectorProperties** *(dict) --* **[REQUIRED]** 

        Specifies the information that is required to query a particular source connector.

        

      
        - **Marketo** *(dict) --* 

          The properties that are applied when Marketo is being used as a source.

          

        
          - **Object** *(string) --* **[REQUIRED]** 

            The object specified in the Marketo flow source.

            

          
        
        - **S3** *(dict) --* 

          The properties that are applied when Amazon S3 is being used as the flow source.

          

        
          - **BucketName** *(string) --* **[REQUIRED]** 

            The Amazon S3 bucket name where the source files are stored.

            

          
          - **BucketPrefix** *(string) --* 

            The object key for the Amazon S3 bucket in which the source files are stored.

            

          
        
        - **Salesforce** *(dict) --* 

          The properties that are applied when Salesforce is being used as a source.

          

        
          - **Object** *(string) --* **[REQUIRED]** 

            The object specified in the Salesforce flow source.

            

          
          - **EnableDynamicFieldUpdate** *(boolean) --* 

            The flag that enables dynamic fetching of new (recently added) fields in the Salesforce objects while running a flow.

            

          
          - **IncludeDeletedRecords** *(boolean) --* 

            Indicates whether Amazon AppFlow includes deleted files in the flow run.

            

          
        
        - **ServiceNow** *(dict) --* 

          The properties that are applied when ServiceNow is being used as a source.

          

        
          - **Object** *(string) --* **[REQUIRED]** 

            The object specified in the ServiceNow flow source.

            

          
        
        - **Zendesk** *(dict) --* 

          The properties that are applied when using Zendesk as a flow source.

          

        
          - **Object** *(string) --* **[REQUIRED]** 

            The object specified in the Zendesk flow source.

            

          
        
      
    
    - **Tasks** *(list) --* **[REQUIRED]** 

      A list of tasks that Customer Profiles performs while transferring the data in the flow run.

      

    
      - *(dict) --* 

        A class for modeling different type of tasks. Task implementation varies based on the TaskType.

        

      
        - **ConnectorOperator** *(dict) --* 

          The operation to be performed on the provided source fields.

          

        
          - **Marketo** *(string) --* 

            The operation to be performed on the provided Marketo source fields.

            

          
          - **S3** *(string) --* 

            The operation to be performed on the provided Amazon S3 source fields.

            

          
          - **Salesforce** *(string) --* 

            The operation to be performed on the provided Salesforce source fields.

            

          
          - **ServiceNow** *(string) --* 

            The operation to be performed on the provided ServiceNow source fields.

            

          
          - **Zendesk** *(string) --* 

            The operation to be performed on the provided Zendesk source fields.

            

          
        
        - **DestinationField** *(string) --* 

          A field in a destination connector, or a field value against which Amazon AppFlow validates a source field.

          

        
        - **SourceFields** *(list) --* **[REQUIRED]** 

          The source fields to which a particular task is applied.

          

        
          - *(string) --* 

          
      
        - **TaskProperties** *(dict) --* 

          A map used to store task-related information. The service looks for particular information based on the TaskType.

          

        
          - *(string) --* 

          
            - *(string) --* 

            
      
    
        - **TaskType** *(string) --* **[REQUIRED]** 

          Specifies the particular task implementation that Amazon AppFlow performs.

          

        
      
  
    - **TriggerConfig** *(dict) --* **[REQUIRED]** 

      The trigger settings that determine how and when the flow runs.

      

    
      - **TriggerType** *(string) --* **[REQUIRED]** 

        Specifies the type of flow trigger. It can be OnDemand, Scheduled, or Event.

        

      
      - **TriggerProperties** *(dict) --* 

        Specifies the configuration details of a schedule-triggered flow that you define. Currently, these settings only apply to the Scheduled trigger type.

        

      
        - **Scheduled** *(dict) --* 

          Specifies the configuration details of a schedule-triggered flow that you define.

          

        
          - **ScheduleExpression** *(string) --* **[REQUIRED]** 

            The scheduling expression that determines the rate at which the schedule will run, for example rate (5 minutes).

            

          
          - **DataPullMode** *(string) --* 

            Specifies whether a scheduled flow has an incremental data transfer or a complete data transfer for each flow run.

            

          
          - **ScheduleStartTime** *(datetime) --* 

            Specifies the scheduled start time for a scheduled-trigger flow.

            

          
          - **ScheduleEndTime** *(datetime) --* 

            Specifies the scheduled end time for a scheduled-trigger flow.

            

          
          - **Timezone** *(string) --* 

            Specifies the time zone used when referring to the date and time of a scheduled-triggered flow, such as America/New_York.

            

          
          - **ScheduleOffset** *(integer) --* 

            Specifies the optional offset that is added to the time interval for a schedule-triggered flow.

            

          
          - **FirstExecutionFrom** *(datetime) --* 

            Specifies the date range for the records to import from the connector in the first flow run.

            

          
        
      
    
  
  :type RoleArn: string
  :param RoleArn: 

    The Amazon Resource Name (ARN) of the IAM role. The Integration uses this role to make Customer Profiles requests on your behalf.

    

  
  :type EventTriggerNames: list
  :param EventTriggerNames: 

    A list of unique names for active event triggers associated with the integration.

    

  
    - *(string) --* 

    

  :type Scope: string
  :param Scope: 

    Specifies whether the integration applies to profile level data (associated with profiles) or domain level data (not associated with any specific profile). The default value is PROFILE.

    

  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'DomainName': 'string',
          'Uri': 'string',
          'ObjectTypeName': 'string',
          'CreatedAt': datetime(2015, 1, 1),
          'LastUpdatedAt': datetime(2015, 1, 1),
          'Tags': {
              'string': 'string'
          },
          'ObjectTypeNames': {
              'string': 'string'
          },
          'WorkflowId': 'string',
          'IsUnstructured': True|False,
          'RoleArn': 'string',
          'EventTriggerNames': [
              'string',
          ],
          'Scope': 'PROFILE'|'DOMAIN'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **DomainName** *(string) --* 

        The unique name of the domain.

        
      

      - **Uri** *(string) --* 

        The URI of the S3 bucket or any other type of data source.

        
      

      - **ObjectTypeName** *(string) --* 

        The name of the profile object type.

        
      

      - **CreatedAt** *(datetime) --* 

        The timestamp of when the domain was created.

        
      

      - **LastUpdatedAt** *(datetime) --* 

        The timestamp of when the domain was most recently edited.

        
      

      - **Tags** *(dict) --* 

        The tags used to organize, track, or control access for this resource.

        
        

        - *(string) --* 
          

          - *(string) --* 
    
  
      

      - **ObjectTypeNames** *(dict) --* 

        A map in which each key is an event type from an external application such as Segment or Shopify, and each value is an ``ObjectTypeName`` (template) used to ingest the event. It supports the following event types: ``SegmentIdentify``, ``ShopifyCreateCustomers``, ``ShopifyUpdateCustomers``, ``ShopifyCreateDraftOrders``, ``ShopifyUpdateDraftOrders``, ``ShopifyCreateOrders``, and ``ShopifyUpdatedOrders``.

        
        

        - *(string) --* 
          

          - *(string) --* 
    
  
      

      - **WorkflowId** *(string) --* 

        Unique identifier for the workflow.

        
      

      - **IsUnstructured** *(boolean) --* 

        Boolean that shows if the Flow that's associated with the Integration is created in Amazon Appflow, or with ObjectTypeName equals _unstructured via API/CLI in flowDefinition.

        
      

      - **RoleArn** *(string) --* 

        The Amazon Resource Name (ARN) of the IAM role. The Integration uses this role to make Customer Profiles requests on your behalf.

        
      

      - **EventTriggerNames** *(list) --* 

        A list of unique names for active event triggers associated with the integration. This list would be empty if no Event Trigger is associated with the integration.

        
        

        - *(string) --* 
    
      

      - **Scope** *(string) --* 

        Specifies whether the integration applies to profile level data (associated with profiles) or domain level data (not associated with any specific profile). The default value is PROFILE.

        
  
  **Exceptions**
  
  *   :py:class:`CustomerProfiles.Client.exceptions.BadRequestException`

  
  *   :py:class:`CustomerProfiles.Client.exceptions.ResourceNotFoundException`

  
  *   :py:class:`CustomerProfiles.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`CustomerProfiles.Client.exceptions.ThrottlingException`

  
  *   :py:class:`CustomerProfiles.Client.exceptions.InternalServerException`

  