일일 업데이트 (Dialogflow)

휴대전화에서 작업의 일일 업데이트를 구독하는 사용자

작업이 매일 사용자에게 가치를 제공하는 경우 사용자에게 일일 업데이트를 구성하여 사용할 수 있습니다 사용자가 일일 정기 결제를 이용하는 경우 알림을 받으면 탭하여 작업의 인텐트 중 하나를 호출합니다.

이 업데이트에 대한 사용자 환경은 다음과 같습니다.

  1. 사용자는 개발자가 매일 업데이트됩니다.
  2. 사용자가 일일 업데이트를 구독하라는 프롬프트를 따릅니다. 이 프롬프트는 대화 중에 표시되거나 대화가 끝날 때 추천 칩으로 전송됩니다.
  3. 사용자가 하루 중 하루 중 알림을 받고자 하는 시간을 예약합니다. Google 어시스턴트에 업데이트를 등록하는 중입니다.
  4. 매일 예약된 시간에 사용자에게 어시스턴트가 전송됩니다. 알림이 표시됩니다.
  5. 사용자가 이 알림을 열면 일일 업데이트로 구성되고 작업과 상호작용합니다.

기본적으로 일일 업데이트 등록 메시지는 추천 검색어 칩으로 표시됩니다. 사용자가 작업을 성공적으로 종료할 때 또한 대화 중간에 사용자의 업데이트를 맞춤설정할 수 있습니다.

사용 사례

일일 업데이트는 유용한 참여 도구일 수 있지만 모든 작업에 통합되어 있습니다. 다음 팁을 고려해 보세요. 작업의 일일 업데이트 구독을 포함합니다.

  • 매일 업데이트하면서 사용자에게 색다른 유용한 정보를 제공해야 합니다. 매일 100개 또는 100개가 넘는 정보를 확인할 수 있습니다 일일 업데이트를 탭해도 동일한 메시지가 표시되는 경우 며칠 후 사용자가 구독을 취소할 가능성이 높습니다.
  • 사용자가 주제로 바로 이동하여 사용자의 대화를 이해할 수 있는지 확인하세요. 일일 업데이트 인텐트 사용자가 처음부터 시작하지 않을 수도 있습니다. 많은 맥락이 있다고 기대해서는 안 됩니다.
  • 등록하라는 메시지를 표시하기 전에 사용자에게 작업의 이점을 보여주세요. 매일 소식을 확인하세요. 사용자는 '이 콘텐츠를 일" 구독 옵션이 표시될 때
  • 등록을 반복적으로 제안하여 사용자에게 부담을 주지 마세요. 제공: 사용자에게 구독하고자 하는 항목을 표시한 직후 일일 업데이트 구독 다른 상황에서는 혜택을 반복하지 않도록 하세요
  • 업데이트 인텐트가 트리거된 후에는 대화를 짧게 유지하세요. 가장 많이 매일 업데이트는 하나의 응답으로만 구성되어야 하며 사용자 입력이 필요합니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.

일일 업데이트 설정

Dialogflow에서 살펴보기

계속을 클릭하여 Dialogflow에서 일일 업데이트 샘플을 가져옵니다. 그런 다음 다음 단계에 따라 샘플을 배포하고 테스트합니다.

  1. 에이전트 이름을 입력하고 샘플의 새 Dialogflow 에이전트를 만듭니다.
  2. 에이전트 가져오기가 완료되면 Go to agent를 클릭합니다.
  3. 기본 탐색 메뉴에서 fulfillment로 이동합니다.
  4. 인라인 편집기를 사용 설정한 다음 배포를 클릭합니다. 편집기에 샘플 파일이 포함되어 있고 있습니다.
  5. 기본 탐색 메뉴에서 Integrations로 이동한 다음 Google을 클릭합니다. 어시스턴트를 탭합니다.
  6. 모달 창이 나타나면 변경사항 자동 미리보기를 사용 설정하고 테스트를 클릭합니다. 작업 시뮬레이터를 엽니다.
  7. 시뮬레이터에서 Talk to my test app를 입력하여 샘플을 테스트합니다.
<ph type="x-smartling-placeholder"></ph> 계속

일일 업데이트를 위해 작업의 인텐트 중 하나를 구성하려면 다음을 따르세요. 다음 안내를 따르세요.

1. 업데이트 인텐트 준비

작업의 인텐트 중 하나를 트리거 인텐트로 구성합니다. 이 인텐트 사용자에게 일일 업데이트를 전송할 수 있습니다. 사용자가 일일 업데이트를 열 때 인텐트 트리거, 대화 실행 거기서부터 시작됩니다.

Dialogflow에서 트리거 인텐트를 정의하려면 다음을 수행합니다.

  1. Dialogflow 콘솔에서 다음을 클릭합니다. 통합.
  2. Google Assistant(Google 어시스턴트) 섹션에서 Integration Settings(통합 설정)를 클릭합니다.
  3. 검색 > 암시적 호출의 경우 인텐트 추가를 클릭합니다. 트리거 인텐트를 선택합니다.
  4. 아직 사용 설정되지 않은 경우 자동 미리보기 변경사항을 사용 설정합니다.
  5. 닫기를 클릭합니다.

Actions SDK에서 업데이트 인텐트를 트리거 인텐트로 정의합니다. 작업 패키지.

2. 업데이트 사용 설정

트리거하는 인텐트의 일일 업데이트를 사용 설정하려면 다음 단계를 따르세요.

  1. Actions 콘솔에서 개발 > 작업.
  2. 트리거하는 인텐트를 선택합니다. 인텐트가 목록에 나타나지 않으면 트리거 인텐트와 Dialogflow의 어시스턴트로 구성되었는지 확인 통합이 변경사항 자동 미리보기로 설정되어 있습니다.
  3. 사용자 참여 발생 시간 섹션까지 아래로 스크롤하여 사용 설정합니다. 사용자에게 일일 업데이트를 제공하시겠어요.
  4. 콘텐츠 제목을 입력합니다.
  5. 저장을 클릭합니다.

이제 다음에 대해 일일 업데이트 구독을 제공하도록 작업을 구성했습니다. 인텐트를 지정할 수 있습니다. 이제 자신의 휴대기기에서 일일 업데이트를 테스트할 수 있습니다.

업데이트 등록 맞춤설정 (선택사항)

추천 칩과 어시스턴트가 처리하는 일일 업데이트 외에도 등록 절차에서 사용자를 매일 업데이트하도록 등록 프롬프트를 작성합니다

선택적 일일 업데이트 기능을 처리하는 작업의 전체 예는 Actions on Google 사용자 참여 샘플 보기 (Node.jsJava)

대화에 맞춤 일일 업데이트 등록 메시지를 추가하려면 다음 안내를 따르세요.

1. 등록 메시지 추가

메시지를 표시하려면 대화와 추천 칩을 대화에 추가하세요. 일일 업데이트를 구독하도록 유도 사용자와 상호작용한 후 이러한 메시지 제공 그날그날의 내용을 이해할 수 있도록 업데이트.

다음 코드 예시는 사용자에게 일일 업데이트를 구독하도록 요청합니다. 매일 가장 낮은 예상 기온을 제공합니다.

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph>
Node.js
app.intent('Daily Lowest Temperature', (conv, params) => {
  const today = DAYS[new Date().getDay()];
  const lowestTemperature = lowestTemperatures[today];
  conv.ask(`The lowest temperature for today is ${lowestTemperature}`);
  conv.ask('I can send you daily updates with the lowest temperature' +
    ' of the day. Would you like that?');
  conv.ask(new Suggestions('Send daily updates'));
});
드림
<ph type="x-smartling-placeholder">
</ph>
자바
@ForIntent("Daily Lowest Temperature")
public ActionResponse dailyLowestTemperature(ActionRequest request) {
  ResponseBuilder responseBuilder = getResponseBuilder(request);
  Integer lowestTemperature =
      LOWEST_TEMPERATURES.get(LocalDate.now().getDayOfWeek());
  responseBuilder
      .add("The lowest temperature for today is " +  lowestTemperature + " degrees Fahrenheit.")
      .add("I can send you daily updates with the lowest temperature of " +
          "the day. Would you like that?")
      .addSuggestions(new String[] {
          "Send daily updates"
      });
  return responseBuilder.build();
}
드림
<ph type="x-smartling-placeholder">
</ph>
Dialogflow JSON

아래 JSON은 웹훅 응답을 설명합니다.

{
  "payload": {
    "google": {
      "expectUserResponse": true,
      "richResponse": {
        "items": [
          {
            "simpleResponse": {
              "textToSpeech": "The lowest temperature for today is 75 degrees Fahrenheit"
            }
          },
          {
            "simpleResponse": {
              "textToSpeech": "I can send you daily updates with the lowest temperature of the day. Would you like that?"
            }
          }
        ],
        "suggestions": [
          {
            "title": "Send daily updates"
          }
        ]
      }
    }
  }
}
드림
<ph type="x-smartling-placeholder">
</ph>
Actions SDK JSON

아래 JSON은 웹훅 응답을 설명합니다.

{
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "possibleIntents": [
        {
          "intent": "actions.intent.TEXT"
        }
      ],
      "inputPrompt": {
        "richInitialPrompt": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "The lowest temperature for today is 75 degrees Fahrenheit"
              }
            },
            {
              "simpleResponse": {
                "textToSpeech": "I can send you daily updates with the lowest temperature of the day. Would you like that?"
              }
            }
          ],
          "suggestions": [
            {
              "title": "Send daily updates"
            }
          ]
        }
      }
    }
  ]
}

2. 업데이트 등록 처리

사용자가 등록을 따를 때 트리거되는 새 인텐트 설정 메시지가 표시됩니다. 이 새 인텐트의 처리에서 actions_intent_CONFIGURE_UPDATES를 트리거합니다. 내장 인텐트를 다음과 같습니다.

  • intent - 구성한 업데이트 인텐트로 설정합니다.
  • frequency - 'DAILY'로 설정합니다.

다음 코드는 '일일 최저 온도'의 일일 업데이트를 등록합니다. 인텐트:

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph>
Dialogflow Node.js
app.intent('Subscribe to Daily Updates', (conv) => {
  conv.ask(new RegisterUpdate({
    intent: 'Daily Lowest Temperature',
    frequency: 'DAILY',
  }));
});
드림
<ph type="x-smartling-placeholder">
</ph>
Actions SDK Node.js
conv.ask(new RegisterUpdate({
  intent: 'Daily Lowest Temperature',
  frequency: 'DAILY',
}));
드림
<ph type="x-smartling-placeholder">
</ph>
Dialogflow Java
@ForIntent("Subscribe to Daily Updates")
public ActionResponse subscribeToDailyUpdates(ActionRequest request) {
  ResponseBuilder responseBuilder = getResponseBuilder(request);
  return responseBuilder.add(new RegisterUpdate()
      .setIntent("Daily Lowest Temperature")
      .setFrequency("DAILY"))
      .build();
}
드림
<ph type="x-smartling-placeholder">
</ph>
Actions SDK 자바
ResponseBuilder responseBuilder = getResponseBuilder(request);
return responseBuilder.add(new RegisterUpdate()
    .setIntent("Daily Lowest Temperature")
    .setFrequency("DAILY"))
    .build();
드림
<ph type="x-smartling-placeholder">
</ph>
Dialogflow JSON
{
  "payload": {
    "google": {
      "expectUserResponse": true,
      "systemIntent": {
        "intent": "actions.intent.REGISTER_UPDATE",
        "data": {
          "@type": "type.googleapis.com/google.actions.v2.RegisterUpdateValueSpec",
          "intent": "Daily Lowest Temperature",
          "triggerContext": {
            "timeContext": {
              "frequency": "DAILY"
            }
          }
        }
      }
    }
  }
}
드림
<ph type="x-smartling-placeholder">
</ph>
Actions SDK JSON
{
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "possibleIntents": [
        {
          "intent": "actions.intent.REGISTER_UPDATE",
          "inputValueData": {
            "@type": "type.googleapis.com/google.actions.v2.RegisterUpdateValueSpec",
            "intent": "Daily Lowest Temperature",
            "triggerContext": {
              "timeContext": {
                "frequency": "DAILY"
              }
            }
          }
        }
      ]
    }
  ]
}

3. 결과 처리

어시스턴트는 대화를 인계받고 사용자에게 다음 단계를 안내합니다. 일일 업데이트 구성의 나머지 부분을 의미합니다 등록이 완료되면 어시스턴트는 앱이 실행되는지 여부를 나타내는 매개변수로 인텐트를 트리거합니다. 알 수 있습니다.

이 단계에 대한 지침은 Dialogflow 또는 개발용 Actions SDK

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph>
Dialogflow

등록 결과를 처리하는 인텐트를 만들려면 다음 단계를 따르세요.

  1. Dialogflow 콘솔에서 다음을 수행합니다. 새 인텐트를 만듭니다
  2. actions_intent_REGISTER_UPDATE 이벤트를 추가합니다.
  3. 인텐트에 웹훅 처리를 사용 설정합니다.
  4. 저장을 클릭합니다.
를 통해 개인정보처리방침을 정의할 수 있습니다. 인텐트의 처리에서 registered를 확인합니다. 매개변수를 사용하고 그에 따라 대화를 피봇팅할 수 있습니다. <ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph>
Dialogflow Node.js
app.intent('Confirm Daily Updates Subscription', (conv, params, registered) => {
  if (registered && registered.status === 'OK') {
    conv.close(`Ok, I'll start giving you daily updates.`);
  } else {
    conv.close(`Ok, I won't give you daily updates.`);
  }
});
드림
<ph type="x-smartling-placeholder">
</ph>
Dialogflow Java
@ForIntent("Confirm Daily Updates Subscription")
public ActionResponse confirmDailyUpdatesSubscription(ActionRequest request) {
  ResponseBuilder responseBuilder = getResponseBuilder(request);
  if (request.isUpdateRegistered()) {
    responseBuilder.add("Ok, I'll start giving you daily updates.");
  } else {
    responseBuilder.add("Ok, I won't give you daily updates.");
  }
  return responseBuilder.endConversation().build();
}
드림
<ph type="x-smartling-placeholder">
</ph>
Dialogflow JSON
{
  "payload": {
    "google": {
      "expectUserResponse": false,
      "richResponse": {
        "items": [
          {
            "simpleResponse": {
              "textToSpeech": "Ok, I'll start giving you daily updates."
            }
          }
        ]
      }
    }
  }
}
드림
Actions SDK

처리 코드에 actions.intent.REGISTER.UPDATE 처리를 추가합니다. 합니다. registered 매개변수에서 결과를 확인합니다. 그에 따라 대화를 방향을 전환할 수 있습니다

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph>
Actions SDK Node.js
app.intent('actions.intent.REGISTER_UPDATE', (conv, params, registered) => {
  if (registered && registered.status === 'OK') {
    conv.close(`Ok, I'll start giving you daily updates.`);
  } else {
    conv.close(`Ok, I won't give you daily updates.`);
  }
});
드림
<ph type="x-smartling-placeholder">
</ph>
Actions SDK 자바
@ForIntent("actions.intent.REGISTER_UPDATE")
public ActionResponse confirmDailyUpdatesSubscription(ActionRequest request) {
  ResponseBuilder responseBuilder = getResponseBuilder(request);
  if (request.isUpdateRegistered()) {
    responseBuilder.add("Ok, I'll start giving you daily updates.");
  } else {
    responseBuilder.add("Ok, I won't give you daily updates.");
  }
  return responseBuilder.endConversation().build();
}
드림
<ph type="x-smartling-placeholder">
</ph>
Actions SDK JSON
{
  "expectUserResponse": false,
  "finalResponse": {
    "richResponse": {
      "items": [
        {
          "simpleResponse": {
            "textToSpeech": "Ok, I'll start giving you daily updates."
          }
        }
      ]
    }
  }
}

업데이트 맞춤설정 (선택사항)

업데이트 인텐트를 맞춤설정하려면 사용자가 등록할 때 맞춤 매개변수를 추가하세요. 일일 업데이트 업데이트 인텐트를 처리할 때 다음 매개변수를 참조합니다. 해당 사용자의 일일 업데이트를 맞춤설정할 수 있습니다.

이 기능에 대한 지침은 Dialogflow 또는 개발용 Actions SDK

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph>
Dialogflow

업데이트를 위한 커스텀 매개변수를 처리할 Dialogflow 항목을 정의합니다. 업데이트 인텐트의 인수로 매개변수의 값을 전달합니다. Dialogflow에서 맞춤설정된 업데이트를 설정하려면 다음 단계를 따르세요.

  1. Dialogflow 콘솔에서 새 항목을 만듭니다.
  2. 매개변수와 관련된 일부 항목 및 동의어를 추가합니다.
  3. 저장을 클릭한 다음 업데이트 인텐트를 엽니다.
  4. 작업 및 매개변수 섹션에서 actions.intent.CONFIGURE_UPDATES를 설정합니다. 이벤트로 설정합니다. 같은 섹션에서 새 항목과 동일한 유형의 매개변수를 추가합니다.
  5. '등록 업데이트'를 엽니다. CONFIGURE_UPDATES 내장 인텐트를 처리하는 인텐트를 반환합니다.
  6. 작업 및 매개변수 섹션에서 필수 매개변수를 추가하고 유형을 이전에 만든 항목으로 설정합니다.
  7. 다음 코드가 있는 arguments 객체를 포함하도록 등록 인텐트의 처리 코드를 업데이트합니다. 다음 콘텐츠가 포함됩니다. <ph type="x-smartling-placeholder">
      </ph>
    • name - Dialogflow에 구성된 매개변수의 이름입니다.
    • textValue - 매개변수의 값입니다.

다음 코드는 매개변수의 값을 읽고 업데이트 등록 요청에서 다음을 수행합니다.

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph>
Dialogflow Node.js
app.intent('setup_update', (conv) => {
  conv.ask(new RegisterUpdate({
    intent: 'update_of_the_day',
    arguments: [
      {
        name: 'category',
        textValue: 'Daily_lowest_temperature',
      },
    ],
    frequency: 'DAILY',
  }));
});
드림
<ph type="x-smartling-placeholder">
</ph>
Dialogflow Java
@ForIntent("setup_update")
public ActionResponse setupUpdate2(ActionRequest request) {
  List<Argument> args =
      Arrays.asList(
          new Argument()
              .setName("category")
              .setTextValue(request.getParameter("category").toString()));
  return getResponseBuilder(request)
      .add(new RegisterUpdate().setIntent("intent_name").setArguments(args).setFrequency("DAILY"))
      .build();
}
드림
<ph type="x-smartling-placeholder">
</ph>
Dialogflow JSON
{
  "payload": {
    "google": {
      "expectUserResponse": true,
      "richResponse": {
        "items": [
          {
            "simpleResponse": {
              "textToSpeech": "PLACEHOLDER"
            }
          }
        ]
      },
      "userStorage": "{\"data\":{}}",
      "systemIntent": {
        "intent": "actions.intent.REGISTER_UPDATE",
        "data": {
          "@type": "type.googleapis.com/google.actions.v2.RegisterUpdateValueSpec",
          "intent": "update_of_the_day",
          "arguments": [
            {
              "name": "category",
              "textValue": "Daily_lowest_temperature"
            }
          ],
          "triggerContext": {
            "timeContext": {
              "frequency": "DAILY"
            }
          }
        }
      }
    }
  },
  "outputContexts": [
    {
      "name": "/contexts/_actions_on_google",
      "lifespanCount": 99,
      "parameters": {
        "data": "{}"
      }
    }
  ]
}
드림
Actions SDK

인텐트 처리에서 사용자에게 추가 정보 요청 그런 다음 업데이트 인텐트에 대한 인수로 정보를 전달합니다. Actions SDK에서 맞춤설정된 업데이트를 설정하려면 다음 단계를 따르세요.

  1. 사용하려는 정보를 사용자에게 프롬프트 맞춤설정할 수 있습니다.
  2. '업데이트 등록'의 처리 코드 그 의도를 다음과 같은 arguments 객체를 포함하는 CONFIGURE UPDATES을 처리합니다. 다음 콘텐츠가 포함됩니다. <ph type="x-smartling-placeholder">
      </ph>
    • name - 인수의 이름입니다.
    • textValue: 인수로 전달할 사용자의 정보입니다.

다음 코드는 업데이트 등록 요청과 함께 인수를 전송합니다.

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph>
Actions SDK Node.js
app.intent('actions.intent.TEXT', (conv) => {
  if (conv.input.raw === 'Send daily') {
    conv.ask(new RegisterUpdate({
      intent: 'update_of_the_day',
      arguments: [
        {
          name: 'category',
          textValue: 'Daily_lowest_temperature',
        },
      ],
      frequency: 'DAILY',
    }));
  }
});
드림
<ph type="x-smartling-placeholder">
</ph>
Actions SDK 자바
@ForIntent("actions.intent.CONFIGURE_UPDATES")
public ActionResponse configureUpdatesActionsSdk(ActionRequest request) {
  List<Argument> args =
      Arrays.asList(
          new Argument()
              .setName("category")
              .setTextValue(request.getParameter("category").toString()));
  return getResponseBuilder(request)
      .add(new RegisterUpdate().setIntent("intent_name").setArguments(args).setFrequency("DAILY"))
      .build();
}

@ForIntent("actions.intent.TEXT")
public ActionResponse text(ActionRequest request) {
  ResponseBuilder rb = getResponseBuilder(request);
  String input = request.getRawInput().getQuery();
  if (input.equals("DAILY_NOTIFICATION_SUGGESTION")) {
    rb.add("For which category do you want to receive daily updates?");
  } else {
    rb.add("Sorry, I didn't get that. Please try again later").endConversation();
  }
  return rb.build();
}
드림
<ph type="x-smartling-placeholder">
</ph>
Actions SDK JSON
{
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "inputPrompt": {
        "richInitialPrompt": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "PLACEHOLDER"
              }
            }
          ]
        }
      },
      "possibleIntents": [
        {
          "intent": "actions.intent.REGISTER_UPDATE",
          "inputValueData": {
            "@type": "type.googleapis.com/google.actions.v2.RegisterUpdateValueSpec",
            "intent": "update_of_the_day",
            "arguments": [
              {
                "name": "category",
                "textValue": "Daily_lowest_temperature"
              }
            ],
            "triggerContext": {
              "timeContext": {
                "frequency": "DAILY"
              }
            }
          }
        }
      ]
    }
  ],
  "conversationToken": "{\"data\":{}}",
  "userStorage": "{\"data\":{}}"
}

이제 사용자가 일일 업데이트를 호출하면 업데이트 인텐트에 다음이 포함됩니다. 등록 중에 사용자가 제공한 값이 포함된 인수입니다. 사용 값을 사용하여 각 사용자에 대해 업데이트를 맞춤설정합니다.

일일 업데이트 테스트

Google 어시스턴트가 설치된 휴대기기로 일일 업데이트를 테스트하려면 다음을 사용하세요. 작업을 빌드할 때 사용한 것과 동일한 Google 계정으로 로그인해야 합니다. 작업 호출 일일 업데이트를 구독하고 기기 알림을 통해 있습니다.