

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Berikan Amazon Connect akses ke AWS Lambda fungsi Anda
<a name="connect-lambda-functions"></a>

Amazon Connect dapat berinteraksi dengan sistem Anda sendiri dan mengambil jalur yang berbeda dalam aliran secara dinamis. Untuk mencapai hal ini, panggil AWS Lambda fungsi dalam aliran, ambil hasilnya, dan hubungi layanan Anda sendiri atau berinteraksi dengan penyimpanan atau layanan AWS data lainnya. Lihat informasi selengkapnya di [Panduan Developer AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/).

Untuk memanggil fungsi Lambda dari alur, selesaikan tugas-tugas berikut.

**Topics**
+ [Buat fungsi Lambda](#create-lambda-function)
+ [Menambahkan fungsi Lambda ke instans Amazon Connect](#add-lambda-function)
+ [Memanggil fungsi Lambda dari aliran](#function-contact-flow)
+ [Praktik terbaik untuk menjalankan beberapa fungsi Lambda](#invoke-multiple-functions)
+ [Konfigurasikan fungsi Lambda Anda untuk mengurai acara](#function-parsing)
+ [Verifikasi respons fungsi](#verify-function)
+ [Konsumsi respons fungsi Lambda](#process-function-response)
+ [Tutorial: Buat fungsi Lambda dan panggil dalam alur](#tutorial-invokelambda)

## Buat fungsi Lambda
<a name="create-lambda-function"></a>

Buat fungsi Lambda, menggunakan runtime apa pun, dan konfigurasikan. Untuk informasi selengkapnya, lihat [Memulai Lambda](https://docs.aws.amazon.com/lambda/latest/dg/get-started.html) di Panduan *AWS Lambda Pengembang*.

Jika Anda membuat fungsi Lambda di Wilayah yang sama dengan pusat kontak, Anda dapat menggunakan konsol Amazon Connect untuk menambahkan fungsi Lambda ke instans seperti yang dijelaskan dalam tugas berikutnya. [Menambahkan fungsi Lambda ke instans Amazon Connect](#add-lambda-function) Ini secara otomatis menambahkan izin sumber daya yang memungkinkan Amazon Connect menjalankan fungsi Lambda. Jika tidak, jika fungsi Lambda berada di Wilayah yang berbeda, Anda dapat menambahkannya ke alur menggunakan perancang alur dan menambahkan izin sumber daya menggunakan perintah [add-permission](https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html), dengan prinsip dan ARN instance `connect.amazonaws.com` Amazon Connect Anda. *Untuk informasi selengkapnya, lihat [Menggunakan Kebijakan Berbasis Sumber Daya untuk AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html) di Panduan Pengembang.AWS Lambda *

## Menambahkan fungsi Lambda ke instans Amazon Connect
<a name="add-lambda-function"></a>

Sebelum Anda dapat menggunakan fungsi Lambda dalam alur, Anda perlu menambahkannya ke instans Amazon Connect.

**Tambahkan fungsi Lambda ke instans Anda**

1. Buka konsol Amazon Connect di [https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/).

1. Pada halaman instance, pilih nama instance Anda di kolom **Alias Instance**. Nama instance ini muncul di URL yang Anda gunakan untuk mengakses Amazon Connect.   
![\[Halaman instans pusat kontak virtual Amazon Connect, alias instans.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/instance.png)

1. Di panel navigasi, pilih **Flows**.

1. Di **AWS Lambda**bagian ini, gunakan kotak drop-down **Fungsi** untuk memilih fungsi yang akan ditambahkan ke instance Anda.
**Tip**  
Drop-down hanya mencantumkan fungsi-fungsi tersebut di Wilayah yang sama dengan instans Anda. Jika tidak ada fungsi yang terdaftar, pilih **Buat fungsi Lambda baru**, yang membuka konsol. AWS Lambda   
Untuk menggunakan Lambda di Wilayah atau akun yang berbeda, di[Fungsi AWS Lambda ](invoke-lambda-function-block.md), di bawah **Pilih fungsi**, Anda dapat memasukkan ARN Lambda. Kemudian siapkan kebijakan berbasis sumber daya yang sesuai pada Lambda tersebut untuk memungkinkan aliran memanggilnya.   
Untuk menelepon`lambda:AddPermission`, Anda perlu:  
Setel prinsipal ke **connect.amazonaws.com**
Tetapkan akun sumber menjadi akun tempat instance Anda berada.
Atur sumber ARN ke ARN instance Anda.
Untuk informasi selengkapnya, lihat [Memberikan akses fungsi ke akun lain](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html#permissions-resource-xaccountinvoke).

1. Pilih **Tambahkan Fungsi Lambda**. **Konfirmasikan bahwa ARN fungsi ditambahkan di bawah Fungsi Lambda.**

Sekarang Anda dapat merujuk ke fungsi Lambda itu dalam aliran Anda.

## Memanggil fungsi Lambda dari aliran
<a name="function-contact-flow"></a>

1. Buka atau buat aliran.

1. Tambahkan [Fungsi AWS Lambda ](invoke-lambda-function-block.md) blok (dalam grup **Integrate**) ke grid. Hubungkan cabang ke dan dari blok.

1. Pilih judul [Fungsi AWS Lambda ](invoke-lambda-function-block.md) blok untuk membuka halaman propertinya.

1. Di bawah **Pilih fungsi**, pilih dari daftar fungsi yang telah Anda tambahkan ke instance Anda.

1. (Opsional) Di bawah **Parameter input fungsi**, pilih **Tambahkan parameter**. Anda dapat menentukan pasangan kunci-nilai yang dikirim ke fungsi Lambda saat dipanggil. Anda juga dapat menentukan nilai **Timeout** untuk fungsi tersebut.

1. Di **Timeout (maks 8 detik)**, tentukan berapa lama menunggu Lambda habis waktu. Setelah waktu ini, kontak merutekan cabang Kesalahan.

Untuk setiap pemanggilan fungsi Lambda dari alur, Anda meneruskan kumpulan informasi default yang terkait dengan kontak yang sedang berlangsung, serta atribut tambahan apa pun yang ditentukan di bagian **Parameter input Fungsi** untuk blok fungsi ** AWS Lambda Invoke** yang ditambahkan.

Berikut ini adalah contoh permintaan JSON ke fungsi Lambda:

```
{
    "Details": {
        "ContactData": {
            "Attributes": {
               "exampleAttributeKey1": "exampleAttributeValue1"
              },
            "Channel": "VOICE",
            "ContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
            "CustomerEndpoint": {
                "Address": "+1234567890",
                "Type": "TELEPHONE_NUMBER"
            },
            "CustomerId": "someCustomerId",
            "Description": "someDescription",
            "InitialContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
            "InitiationMethod": "INBOUND | OUTBOUND | TRANSFER | CALLBACK",
            "InstanceARN": "arn:aws:connect:aws-region:1234567890:instance/c8c0e68d-2200-4265-82c0-XXXXXXXXXX",
            "LanguageCode": "en-US",
            "MediaStreams": {
                "Customer": {
                    "Audio": {
                        "StreamARN": "arn:aws:kinesisvideo::eu-west-2:111111111111:stream/instance-alias-contact-ddddddd-bbbb-dddd-eeee-ffffffffffff/9999999999999",
                        "StartTimestamp": "1571360125131", // Epoch time value
                        "StopTimestamp": "1571360126131",
                        "StartFragmentNumber": "100" // Numberic value for fragment number 
                    }
                }
            },
            "Name": "ContactFlowEvent",
            "PreviousContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
            "Queue": {
                   "ARN": "arn:aws:connect:eu-west-2:111111111111:instance/cccccccc-bbbb-dddd-eeee-ffffffffffff/queue/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
                 "Name": "PasswordReset"
                "OutboundCallerId": {
                    "Address": "+12345678903",
                    "Type": "TELEPHONE_NUMBER"
                }
            },
            "References": {
                "key1": {
                    "Type": "url",
                    "Value": "urlvalue"
                }
            },
            "SystemEndpoint": {
                "Address": "+1234567890",
                "Type": "TELEPHONE_NUMBER"
            }
        },
        "Parameters": {"exampleParameterKey1": "exampleParameterValue1",
               "exampleParameterKey2": "exampleParameterValue2"
        }
    },
    "Name": "ContactFlowEvent"
}
```

Permintaan dibagi menjadi dua bagian:
+ Data kontak—Ini selalu diteruskan oleh Amazon Connect untuk setiap kontak. Beberapa parameter bersifat opsional.

  Bagian ini dapat mencakup atribut yang sebelumnya dikaitkan dengan kontak, seperti saat menggunakan blok **Atribut kontak Set** dalam alur. Peta ini mungkin kosong jika tidak ada atribut yang disimpan.

  Gambar berikut menunjukkan di mana atribut ini akan muncul di halaman properti **atribut kontak Set**.  
![\[Halaman properti dari blok Atribut kontak Set.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/lambda-setAttribute.png)
+ Parameter—Ini adalah parameter khusus untuk panggilan ini yang ditentukan saat Anda membuat fungsi Lambda. Gambar berikut menunjukkan di mana parameter ini akan muncul di halaman properti blok ** AWS Lambda fungsi Invoke**.   
![\[Parameter input fungsi di blok fungsi Invoke AWS Lambda.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/lambda-setParameter.png)

[Fungsi AWS Lambda ](invoke-lambda-function-block.md)Blok dapat menerima parameter input dalam format JSON, mengakomodasi tipe data primitif dan JSON bersarang. Berikut ini adalah contoh input JSON yang dapat digunakan di [Fungsi AWS Lambda ](invoke-lambda-function-block.md) blok.

```
{ 
  "Name": "Jane", 
  "Age":10, 
  "isEnrolledInSchool": true, 
  "hobbies": {
    "books":["book1", "book2"], 
    "art":["art1", "art2"]
  } 
}
```

### Kebijakan coba lagi doa
<a name="retry"></a>

Jika pemanggilan Lambda Anda dalam alur terhambat, permintaan akan dicoba lagi. Ini juga akan dicoba lagi jika kegagalan layanan umum (kesalahan 500) terjadi. 

Saat pemanggilan sinkron mengembalikan kesalahan, Amazon Connect mencoba ulang hingga 3 kali, selama maksimal 8 detik. Pada saat itu, aliran akan berlanjut ke cabang Error. 

Untuk mempelajari selengkapnya tentang cara Lambda mencoba ulang, lihat [Penanganan Kesalahan dan Percobaan Ulang Otomatis](https://docs.aws.amazon.com/lambda/latest/dg/retries-on-errors.html) di Lambda. AWS 

## Praktik terbaik untuk menjalankan beberapa fungsi Lambda
<a name="invoke-multiple-functions"></a>

Amazon Connect membatasi durasi urutan fungsi Lambda hingga 20 detik. Waktu habis dengan pesan kesalahan ketika total waktu eksekusi melebihi ambang batas ini. Karena pelanggan mendengar keheningan saat fungsi Lambda berjalan, sebaiknya tambahkan blok **prompt Play** di antara fungsi agar mereka tetap terlibat selama interaksi yang lama. 

Dengan memecah rantai fungsi Lambda dengan blok **prompt Play**, Anda dapat memanggil beberapa fungsi yang bertahan lebih lama dari ambang batas 20 detik.

## Konfigurasikan fungsi Lambda Anda untuk mengurai acara
<a name="function-parsing"></a>

Agar berhasil meneruskan atribut dan parameter antara fungsi Lambda dan Amazon Connect, konfigurasikan fungsi Anda untuk mengurai permintaan JSON yang dikirim dengan benar dari blok ** AWS Lambda fungsi Invoke** atau Atur **atribut kontak**, dan tentukan logika bisnis apa pun yang harus diterapkan. Bagaimana JSON diurai tergantung pada runtime yang Anda gunakan untuk fungsi Anda. 

Misalnya, kode berikut menunjukkan cara mengakses `exampleParameterKey1` dari blok ** AWS Lambda fungsi Invoke** dan `exampleAttributeKey1` dari blok **atribut kontak Set** menggunakan Node.JS:

```
exports.handler = function(event, context, callback) {
// Example: access value from parameter (Invoke AWS Lambda function)
let parameter1 = event['Details']['Parameters']['exampleParameterKey1'];
  		  
// Example: access value from attribute (Set contact attributes block)
let attribute1 = event['Details']['ContactData']['Attributes']['exampleAttributeKey1'];
  		  
// Example: access customer's phone number from default data
let phone = event['Details']['ContactData']['CustomerEndpoint']['Address'];
  		  
// Apply your business logic with the values
// ...
}
```

## Verifikasi respons fungsi
<a name="verify-function"></a>

**Tip**  
Mereferensikan array tidak didukung dalam aliran. Array hanya dapat digunakan dalam fungsi Lambda lain.

**Respons fungsi Lambda dapat berupa STRING\$1MAP atau JSON dan harus disetel saat mengonfigurasi blok fungsi Invoke Lambda dalam aliran. AWS ** Jika validasi respons diatur ke STRING\$1MAP, maka fungsi Lambda harus mengembalikan objek datar pasangan dari key/value tipe string. Jika tidak, jika validasi respons disetel ke JSON, fungsi Lambda dapat mengembalikan JSON yang valid termasuk JSON bersarang.

![\[Blok aliran fungsi AWS Lambda memanggil yang menyoroti penggunaan peta string atau json.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/verify-function-lambda-response-validation.png)


Respons Lambda bisa mencapai 32kb. Jika Anda gagal mencapai Lambda, fungsi melempar pengecualian, respons tidak dipahami, atau fungsi Lambda membutuhkan waktu lebih lama daripada batas, aliran melompat ke label. `Error`

Uji output yang dikembalikan dari fungsi Lambda Anda untuk mengonfirmasi bahwa itu akan dikonsumsi dengan benar saat dikembalikan ke Amazon Connect. Contoh berikut menunjukkan respon sampel di Node.JS:

```
exports.handler = function(event, context, callback) {
// Extract data from the event object	     
let phone = event['Details']['ContactData']['CustomerEndpoint']['Address'];    
	   
// Get information from your APIs

let customerAccountId = getAccountIdByPhone(phone);
let customerBalance = getBalanceByAccountId(customerAccountId);
  		  
    let resultMap = {
        AccountId: customerAccountId,
        Balance: '$' + customerBalance,
}

callback(null, resultMap);
}
```

Contoh ini menunjukkan contoh respon menggunakan Python:

```
def lambda_handler(event, context):
// Extract data from the event object
  phone = event['Details']['ContactData']['CustomerEndpoint']['Address']
  		  
// Get information from your APIs
  customerAccountId = getAccountIdByPhone(phone)
  customerBalance = getBalanceByAccountId(customerAccountId)
  		  
  	resultMap = {
  		"AccountId": customerAccountId,
  		"Balance": '$%s' % customerBalance
  		}
        
 return resultMap
```

Output yang dikembalikan dari fungsi harus berupa objek datar key/value berpasangan, dengan nilai yang hanya mencakup karakter alfanumerik, tanda hubung, dan garis bawah. Ukuran data yang dikembalikan harus kurang dari 32 KB data UTF-8.

Contoh berikut menunjukkan output JSON dari fungsi Lambda ini:

```
{
"AccountId": "a12345689",
"Balance": "$1000"
}
```

Jika validasi respons disetel ke JSON, maka fungsi Lambda dapat mengembalikan bahkan JSON bersarang, misalnya:

```
{
  "Name": {
      "First": "John",
      "Last": "Doe"
  },
  "AccountId": "a12345689",
  "OrderIds": ["x123", "y123"]
}
```

Anda dapat mengembalikan hasil apa pun selama mereka adalah pasangan nilai kunci sederhana.

## Konsumsi respons fungsi Lambda
<a name="process-function-response"></a>

Ada dua cara untuk menggunakan respons fungsi dalam aliran Anda. Anda dapat langsung mereferensikan variabel yang dikembalikan dari Lambda, atau menyimpan nilai yang dikembalikan dari fungsi sebagai atribut kontak dan kemudian mereferensikan atribut yang disimpan. Saat Anda menggunakan referensi eksternal untuk respons dari fungsi Lambda, referensi akan selalu menerima respons dari fungsi yang paling baru dipanggil. Untuk menggunakan respons dari fungsi sebelum fungsi berikutnya dipanggil, respons harus disimpan sebagai atribut kontak, atau diteruskan sebagai parameter ke fungsi berikutnya.

### 1. Akses variabel secara langsung
<a name="access-variables"></a>

 Jika Anda mengakses variabel secara langsung, Anda dapat menggunakannya dalam blok aliran, tetapi mereka tidak termasuk dalam catatan kontak. Untuk mengakses variabel-variabel ini secara langsung di blok aliran, tambahkan blok setelah blok ** AWS Lambda fungsi Invoke**, dan kemudian referensi atribut seperti yang ditunjukkan pada contoh berikut: 

```
Name - $.External.Name
Address - $.External.Address
CallerType - $.External.CallerType
```

Gambar berikut menunjukkan halaman properti dari blok **prompt Play**. Variabel ditentukan dalam text-to-speech blok.

![\[Halaman properti dari blok prompt Play.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/lambda-useExternal.png)


Pastikan bahwa nama yang ditentukan untuk atribut sumber cocok dengan nama kunci yang dikembalikan dari Lambda.

### 2. Simpan variabel sebagai atribut kontak
<a name="store-variables"></a>

Jika Anda menyimpan variabel sebagai atribut kontak, Anda dapat menggunakannya di seluruh alur, dan variabel tersebut disertakan dalam catatan kontak.

Untuk menyimpan nilai yang dikembalikan sebagai atribut kontak dan kemudian mereferensikannya, gunakan blok **Atribut kontak Set** dalam alur Anda setelah blok ** AWS Lambda fungsi Invoke**. Pilih **Gunakan atribut**, **Eksternal** untuk **Tipe**. Mengikuti contoh yang kita gunakan, atur **Destination Attribute** ke`MyAccountId`, dan atur **atribut** ke`AccountId`, dan lakukan hal yang sama untuk `MyBalance` dan **Balance**. Konfigurasi ini ditunjukkan pada gambar berikut.

![\[Halaman properti dari blok Atribut kontak Set.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/lambda-useInSetAttributes.png)


Tambahkan Alamat sebagai **atribut Sumber** dan gunakan `returnedContactAddress` sebagai **kunci Tujuan**. Kemudian tambahkan `CallerType` sebagai **atribut Sumber** dan gunakan `returnedContactType` untuk **tujuan kunci**, seperti yang ditunjukkan pada gambar berikut.

![\[Halaman properti dari blok prompt Play.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/lambda-useAttributeInPlayPrompt.png)


Pastikan bahwa nama yang ditentukan untuk atribut eksternal sumber cocok dengan nama kunci yang dikembalikan dari Lambda.

## Tutorial: Buat fungsi Lambda dan panggil dalam alur
<a name="tutorial-invokelambda"></a>

### Langkah 1: Buat contoh Lambda
<a name="tutorial-invokelambda-step1"></a>

1. Masuk ke Konsol Manajemen AWS dan buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Di AWS Lambda, pilih **Buat fungsi**.

1. Pilih **Penulis dari awal**, jika belum dipilih. Di bagian **Informasi dasar**, untuk **Nama fungsi**, masukkan **MyFirstConnectLambda**. Untuk semua opsi lain, terima defaultnya. Opsi ini ditampilkan pada gambar konsol AWS Lambda berikut.  
![\[Konsol AWS Lambda.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/lambdafunctions-tutorial-create-function-name.png)

1. Pilih **Buat fungsi**.

1. Di kotak **Sumber kode**, di tab **index.js**, hapus kode templat dari editor kode.

1. Salin dan tempel kode berikut ke editor kode seperti yang ditunjukkan pada gambar berikut:  
![\[Bagian Sumber kode, tombol deploy.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/lambdafunctions-tutorial-code-source.png)

   ```
   exports.handler = async (event, context, callback) => {
   // Extract information
           const customerNumber = event.Details.ContactData.CustomerEndpoint.Address;
           const companyName = event.Details.Parameters.companyName;
   // Fetch data
           const balance = await fetchBalance(customerNumber, companyName);
           const support = await fetchSupportUrl(companyName);
   // Prepare result
           const resultMap = {
           customerBalance: balance,
           websiteUrl: support
           }
           callback(null, resultMap);
           }
           
           async function fetchBalance(customerPhoneNumber, companyName) {
   // Get data from your API Gateway or Database like DynamoDB
           return Math.floor(Math.random() * 1000);
           }
           
           async function fetchSupportUrl(companyName) {
   // Get data from your API Gateway or Database like DynamoDB
           return 'www.GGG.com/support';
           }
   ```

   Kode ini akan menghasilkan hasil acak untuk CustomerBalance.

1. Pilih **Deploy**.

1. Setelah Anda memilih **Deploy**, pilih **Uji** untuk meluncurkan editor pengujian.

1. Dalam kotak dialog **Configure test event**, pilih **Create new event**. Untuk **nama Acara**, masukkan **ConnectMock**sebagai nama pengujian.

1. Di kotak **Event JSON**, hapus kode sampel dan masukkan kode berikut sebagai gantinya. 

   ```
   {
   "Details": {
   "ContactData": {
       "Attributes": {},
       "Channel": "VOICE",
       "ContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
       "CustomerEndpoint": {
       "Address": "+1234567890",
       "Type": "TELEPHONE_NUMBER"
       },
   "InitialContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
   "InitiationMethod": "INBOUND | OUTBOUND | TRANSFER | CALLBACK",
   "InstanceARN": "arn:aws:connect:aws-region:1234567890:instance/c8c0e68d-2200-4265-82c0-XXXXXXXXXX",
   "PreviousContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
   "Queue": {
       "ARN": "arn:aws:connect:eu-west-2:111111111111:instance/cccccccc-bbbb-dddd-eeee-ffffffffffff/queue/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
       "Name": "PasswordReset"
     },
   "SystemEndpoint": {
       "Address": "+1234567890",
       "Type": "TELEPHONE_NUMBER"
       } 
   },
   "Parameters": {
       "companyName": "GGG"
       }
   },
   "Name": "ContactFlowEvent"
   }
   ```

1. Pilih **Simpan**.

1. Pilih **Uji**. Anda akan melihat sesuatu berikut yang mirip dengan gambar berikut:  
![\[Bagian sumber Kode, tombol uji.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/lambdafunctions-tutorial-code-source-response.png)

   Saldo Anda akan berbeda. Kode menghasilkan angka acak.

### Langkah 2: Tambahkan Lambda Anda ke Amazon Connect
<a name="tutorial-invokelambda-step2"></a>

1. Buka konsol Amazon Connect, di [https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/). 

1. Pilih alias instans Amazon Connect Anda.  
![\[Halaman instans pusat kontak virtual Amazon Connect, alias instans.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/instance.png)

1. Pada menu navigasi, pilih **Flows**.

1. Di AWS Lambda bagian ini, gunakan kotak dropdown **Fungsi Lambda** untuk memilih. **MyFirstConnectLambda**  
![\[Halaman aliran, bagian AWS Lambda.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/lambda-add-myfirstconnectlambda.png)

1. Pilih **Tambahkan Fungsi Lambda**.

### Langkah 3: Buat alur kontak
<a name="tutorial-invokelambda-step3"></a>

Gambar berikut adalah contoh aliran yang akan Anda buat menggunakan langkah-langkah dalam prosedur ini. **Ini berisi blok berikut: **Atur atribut kontak**, **Prompt Putar**, **fungsi AWS Panggil Lambda**, blok atribut **kontak Set lainnya**, blok prompt **Play lainnya**, dan akhirnya blok Putuskan sambungan.**

![\[Alur yang memanggil blok fungsi Invoke AWS Lambda.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/lambda-exampleFlow.png)


1. Masuk ke situs web Amazon Connect admin di https://*instance name*.my.connect.aws/.

1. Pada menu navigasi, buka **Routing**, **Flows**, **Create a contact flow**.

1. Seret [Tetapkan atribut kontak](set-contact-attributes.md) blok ke grid, dan konfigurasikan halaman propertinya yang ditunjukkan pada gambar berikut:   
![\[Sebuah blok Atribut kontak Set.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/lambda-exampleFlow-set-contact-attribute-1.png)

   1. **Namespace = Ditentukan** **pengguna**.

   1. **Atribut** = **CompanyName**.

   1. Pilih **Set secara manual**. **Nilai** = **GGG**.

   1. Pilih **Simpan**.

1. Seret [Mainkan prompt](play.md) blok ke grid, dan konfigurasikan halaman propertinya seperti yang ditunjukkan pada gambar berikut:   
![\[Blok prompt putar.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/lambda-exampleFlow-play-prompt-1.png)

   1. Pilih **Text-to-speech atau mengobrol teks**, **Atur secara manual**, dan atur **Interpret ke **SSML****. Masukkan teks berikut di kotak untuk teks yang akan diucapkan:

      `Hello, thank you for calling $.Attributes.companyName inc.`

   1. Pilih **Simpan**.

1. Seret [Mainkan prompt](play.md) blok lain ke grid, dan konfigurasikan halaman propertinya seperti yang ditunjukkan pada gambar berikut:   
![\[Blok prompt putar.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/lambda-exampleFlow-play-prompt-2.png)

   1. Pilih **Text-to-speech atau mengobrol teks**, **Setel secara manual**, dan atur **Interpret as** to **Text**. Masukkan teks berikut di kotak untuk teks yang akan diucapkan:

      `Please try again later.`

   1. Pilih **Simpan**.

1. Seret [Fungsi AWS Lambda ](invoke-lambda-function-block.md) blok ke grid, dan konfigurasikan halaman propertinya seperti yang ditunjukkan pada gambar berikut:   
![\[Blok fungsi Invoke AWS Lambda.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/lambda-exampleFlow-invoke-lambda.png)

   1. Pilih **Pilih secara manual**, lalu pilih **MyFirstConnectLambda**dari dropdown.

   1. Di kotak **Kunci Tujuan**, masukkan **CompanyName**. (Ini dikirim ke Lambda.)

   1. Pilih **Atur kotak dinamis**

   1. Untuk **Namespace**, pilih **User** Defined.

   1. Untuk **Atribut**, masukkan **CompanyName**.

   1. Pilih **Simpan**.

1. Seret [Tetapkan atribut kontak](set-contact-attributes.md) blok ke grid, pilih **Tambahkan atribut lain**, dan konfigurasikan halaman propertinya seperti yang ditunjukkan pada gambar berikut:   
![\[Blok atribut kontak set.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/lambda-exampleFlow-set-contact-attribute-2.png)

   1. **Namespace = Ditentukan** **Pengguna**. **Atribut** = **MyBalance**.

   1. Pilih **Set secara dinamis**. 

   1. **Namespace** **= Eksternal.**

   1. **Atribut** = **CustomerBalance**. Ini adalah hasil dari Lambda.

   1. Pilih **Tambahkan atribut lain**.

   1. **Namespace** **= Ditentukan pengguna.**

   1. **Atribut** = **myURL**.

   1. Pilih **Atur secara dinamis**. **Namespace** **= Eksternal.** 

   1. **Atribut** = **WebsiteUrl**. Ini adalah hasil dari Lambda.

   1. Pilih **Simpan**.

1. Seret [Mainkan prompt](play.md) blok ke grid, dan konfigurasikan halaman propertinya seperti yang ditunjukkan pada gambar berikut:   
![\[Blok prompt putar.\]](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/lambda-exampleFlow-play-prompt-3.png)

   1. Pilih **Text-to-speech atau teks obrolan**, dan atur **Interpret ke **SSML****. Masukkan teks berikut di dalam kotak:

      `Your remaining balance is <say-as interpret-as="characters">$.Attributes.MyBalance</say-as>.`

      `Thank you for calling $.Attributes.companyName.`

      `Visit $.Attributes.MyURL for more information.`

   1. Pilih **Simpan**.

1. Seret [Putuskan sambungan/tutup](disconnect-hang-up.md) blok ke grid. 

1. Hubungkan semua blok sehingga aliran Anda terlihat seperti gambar yang ditampilkan di bagian atas prosedur ini.

1. Masukkan **MyFirstConnectFlow**sebagai nama, lalu pilih **Publikasikan**.

1. Pada menu navigasi, buka **Saluran**, **Nomor telepon**. 

1. Pilih nomor telepon Anda.

1. Pilih **MyFirstConnectFlow**dan pilih **Simpan**.

Sekarang cobalah. Panggil nomornya. Anda harus mendengar pesan ucapan, saldo Anda, dan situs web yang akan dikunjungi.