:doc:`ConnectCampaignService <../../connectcampaigns>` / Client / create_campaign

***************
create_campaign
***************



.. py:method:: ConnectCampaignService.Client.create_campaign(**kwargs)

  

  Creates a campaign for the specified Amazon Connect account. This API is idempotent.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/connectcampaigns-2021-01-30/CreateCampaign>`_  


  **Request Syntax**
  ::

    response = client.create_campaign(
        name='string',
        connectInstanceId='string',
        dialerConfig={
            'progressiveDialerConfig': {
                'bandwidthAllocation': 123.0,
                'dialingCapacity': 123.0
            },
            'predictiveDialerConfig': {
                'bandwidthAllocation': 123.0,
                'dialingCapacity': 123.0
            },
            'agentlessDialerConfig': {
                'dialingCapacity': 123.0
            }
        },
        outboundCallConfig={
            'connectContactFlowId': 'string',
            'connectSourcePhoneNumber': 'string',
            'connectQueueId': 'string',
            'answerMachineDetectionConfig': {
                'enableAnswerMachineDetection': True|False,
                'awaitAnswerMachinePrompt': True|False
            }
        },
        tags={
            'string': 'string'
        }
    )
    
  :type name: string
  :param name: **[REQUIRED]** 

    The name of an Amazon Connect Campaign name.

    

  
  :type connectInstanceId: string
  :param connectInstanceId: **[REQUIRED]** 

    Amazon Connect Instance Id

    

  
  :type dialerConfig: dict
  :param dialerConfig: **[REQUIRED]** 

    The possible types of dialer config parameters

    .. note::    This is a Tagged Union structure. Only one of the     following top level keys can be set: ``progressiveDialerConfig``, ``predictiveDialerConfig``, ``agentlessDialerConfig``. 

  
    - **progressiveDialerConfig** *(dict) --* 

      Progressive Dialer config

      

    
      - **bandwidthAllocation** *(float) --* **[REQUIRED]** 

        The bandwidth allocation of a queue resource.

        

      
      - **dialingCapacity** *(float) --* 

        Allocates dialing capacity for this campaign between multiple active campaigns

        

      
    
    - **predictiveDialerConfig** *(dict) --* 

      Predictive Dialer config

      

    
      - **bandwidthAllocation** *(float) --* **[REQUIRED]** 

        The bandwidth allocation of a queue resource.

        

      
      - **dialingCapacity** *(float) --* 

        Allocates dialing capacity for this campaign between multiple active campaigns

        

      
    
    - **agentlessDialerConfig** *(dict) --* 

      Agentless Dialer config

      

    
      - **dialingCapacity** *(float) --* 

        Allocates dialing capacity for this campaign between multiple active campaigns

        

      
    
  
  :type outboundCallConfig: dict
  :param outboundCallConfig: **[REQUIRED]** 

    The configuration used for outbound calls.

    

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

      The identifier of the contact flow for the outbound call.

      

    
    - **connectSourcePhoneNumber** *(string) --* 

      The phone number associated with the Amazon Connect instance, in E.164 format. If you do not specify a source phone number, you must specify a queue.

      

    
    - **connectQueueId** *(string) --* 

      The queue for the call. If you specify a queue, the phone displayed for caller ID is the phone number specified in the queue. If you do not specify a queue, the queue defined in the contact flow is used. If you do not specify a queue, you must specify a source phone number.

      

    
    - **answerMachineDetectionConfig** *(dict) --* 

      Answering Machine Detection config

      

    
      - **enableAnswerMachineDetection** *(boolean) --* **[REQUIRED]** 

        Enable or disable answering machine detection

        

      
      - **awaitAnswerMachinePrompt** *(boolean) --* 

        Enable or disable await answer machine prompt

        

      
    
  
  :type tags: dict
  :param tags: 

    Tag map with key and value.

    

  
    - *(string) --* 

      Tag key.

      

    
      - *(string) --* 

        Tag value.

        

      


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

    
    ::

      {
          'id': 'string',
          'arn': 'string',
          'tags': {
              'string': 'string'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 

      The response for Create Campaign API

      
      

      - **id** *(string) --* 

        Identifier representing a Campaign

        
      

      - **arn** *(string) --* 

        The resource name of an Amazon Connect campaign.

        
      

      - **tags** *(dict) --* 

        Tag map with key and value.

        
        

        - *(string) --* 

          Tag key.

          
          

          - *(string) --* 

            Tag value.

            
    
  
  
  **Exceptions**
  
  *   :py:class:`ConnectCampaignService.Client.exceptions.InternalServerException`

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

  
  *   :py:class:`ConnectCampaignService.Client.exceptions.ValidationException`

  
  *   :py:class:`ConnectCampaignService.Client.exceptions.ConflictException`

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

  
  *   :py:class:`ConnectCampaignService.Client.exceptions.ServiceQuotaExceededException`

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

  