Fin del soporte de Amazon Pinpoint - Amazon Pinpoint

Aviso de fin de soporte: el 30 de octubre de 2026, AWS finalizará el soporte para Amazon Pinpoint. Después del 30 de octubre de 2026, ya no podrá acceder a la consola de Amazon Pinpoint ni a los recursos de Amazon Pinpoint (puntos de conexión, segmentos, campañas, recorridos y análisis). Para obtener más información, consulte Fin de soporte de Amazon Pinpoint. Nota: Este cambio no afecta a las API relacionadas con los SMS, los mensajes de voz, las notificaciones push móviles, la OTP y la validación de números de teléfono, por lo que son compatibles con Mensajería para usuarios finales de AWS.

Fin del soporte de Amazon Pinpoint

Tras considerarlo detenidamente, hemos decidido finalizar el servicio de soporte para Amazon Pinpoint a partir del 30 de octubre de 2026. Amazon Pinpoint dejará de aceptar nuevos clientes a partir del 20 de mayo de 2025. Si tiene una cuenta registrada en el servicio desde antes del 20 de mayo de 2025, puede seguir utilizando las características de Amazon Pinpoint. Después del 30 de octubre de 2026, ya no podrá usar Amazon Pinpoint.

En la actualidad, los clientes utilizan Amazon Pinpoint por sus funciones de interacción (puntos de conexión, segmentos, campañas, recorridos y análisis) o las API de sus canales de mensajería (funciones de SMS, MMS, push, WhatsApp y mensajería de texto a voz). Hemos creado planes de baja para ambos grupos de clientes.

Qué significa esto para usted

Si utiliza las funciones de interacción de Amazon Pinpoint (puntos de conexión, segmentos, campañas, recorridos y análisis), le recomendamos que migre a las soluciones de interacción proactiva de Amazon Connect (por ejemplo, campañas externas de Amazon Connect y Perfiles de clientes de Amazon Connect) para impulsar interacciones personalizadas y oportunas en todos los canales con un seguimiento del rendimiento unificado y tener la capacidad de gestionar las entradas (por ejemplo, la atención al cliente) y las salidas (por ejemplo, las comunicaciones proactivas) con una sola aplicación. Si utiliza la recopilación de eventos y el análisis de dispositivos móviles, le recomendamos que utilice Amazon Kinesis.

En el tercer trimestre de 2024, cambiamos el nombre de los canales de comunicación de Amazon Pinpoint (funciones de SMS, MMS, push, WhatsApp y mensajería de texto a voz) por Mensajería para usuarios finales de AWS. Este servicio seguirá respondiendo a las necesidades de los desarrolladores en cuanto a la entrega de mensajes a los clientes. Este cambio no afectará al uso de las API relacionadas con los SMS, los servicios de voz, la inserción en móviles, las OTP y la validación de números de teléfono. Si utiliza Amazon Pinpoint para enviar correos electrónicos, le recomendamos que migre a Amazon Simple Email Service (SES). Si utiliza el panel de capacidad de entrega de correo electrónico de Amazon Pinpoint, ofreceremos una funcionalidad similar en SES antes del 30 de octubre de 2026.

Pasos de migración: transición de las funciones de interacción de Amazon Pinpoint

Clientes que buscan funciones de interacción

Para utilizar las funciones de interacción proactiva de Amazon Connect, como los segmentos, las plantillas de mensajes, las campañas, los recorridos y los análisis, siga esta guía para migrar las funciones de interacción de Amazon Pinpoint a Amazon Connect.

Migración de los puntos de conexión y los segmentos

Los puntos de conexión de Amazon Pinpoint se pueden modelar como perfiles de clientes de Amazon Connect. Los perfiles de clientes le permiten combinar varios puntos de conexión en un solo perfil; puede modelar hasta 3 direcciones de correo electrónico y 4 números de teléfono como un solo perfil. Para migrar sus puntos de conexión, puede

  1. Crear un segmento de Amazon Pinpoint sin filtros que abarque todos sus puntos de conexión.

  2. Exportar ese segmento a un bucket de S3 o a su máquina local.

  3. Cargar sus puntos de conexión transformados en los perfiles de los clientes y utilizar el conector S3 de Perfiles de clientes para crear una integración de datos allí.

En caso de que desee agregar puntos de conexión a un solo perfil de cliente, puede analizar el segmento de Amazon Pinpoint descargado para recopilar las direcciones de correo electrónico y los números de teléfono en un solo perfil. Este es un ejemplo de script de Python para leer el archivo exportado en formato JSON y crear los perfiles que se pueden importar a Perfiles de clientes.

from collections import defaultdict import json def process_pinpoint_endpoints(input_file, output_file): # Dictionary to store grouped endpoints by user ID grouped_endpoints = defaultdict(list) endpoints = [] # Read the input file with open(input_file, 'r') as file: for line in file: endpoints.append(json.loads(line)) # Group endpoints by user ID for endpoint in endpoints: user_id = endpoint.get('User', {}).get('UserId') if user_id: grouped_endpoints[user_id].append(endpoint) # Convert grouped endpoints to Customer Profiles format # We will assume the userId is stored as an AccountNumber # since the AccountNumber can be queried customer_profiles = [] for user_id, user_endpoints in grouped_endpoints.items(): profile = { 'AccountNumber': user_id, 'Attributes': {}, 'Address': {} } phone_numbers = set() email_addresses = set() output_dict = {} for endpoint in user_endpoints: # Extract attributes attributes = endpoint.get('Attributes', {}) for key, value_list in attributes.items(): if len(value_list) == 1: output_dict[key] = value_list[0] else: for i, item in enumerate(value_list): output_dict[f"{key}_{i}"] = item demographics = endpoint.get('Demographic') for key, value in demographics.items(): attributes[f"Demographic_{key}"] = value location = endpoint.get('Location', {}) profile['Address']['City'] = location['City'] profile['Address']['Country'] = location['Country'] profile['Address']['PostalCode'] = location['PostalCode'] profile['Address']['County'] = location['Region'] profile['Attributes']['Latitude'] = location['Latitude'] profile['Attributes']['Longitude'] = location['Longitude'] metrics = endpoint.get('Metrics', {}) for key, value in metrics.items(): profile['Attributes'][f"Metrics_{key}"] = str(value) user = endpoint.get('User', {}) user_attributes = user.get('UserAttributes', {}) for key, value_list in user_attributes.items(): if len(value_list) == 1: output_dict[key] = value_list[0] else: for i, item in enumerate(value_list): output_dict[f"UserAttributes.{key}_{i}"] = item profile['Attributes'].update(output_dict) # Extract phone number address = endpoint.get('Address') if (endpoint.get('ChannelType') == 'SMS' or endpoint.get('ChannelType') == 'VOICE') and address: phone_numbers.add(address) # Extract email address if endpoint.get('ChannelType') == 'EMAIL' and address: email_addresses.add(address) # Assigning the phone numbers to the different parameters in the Customer Profile for i, phone_number in enumerate(phone_numbers): if i == 0: profile['PhoneNumber'] = phone_number elif i == 1: profile['HomePhoneNumber'] = phone_number elif i == 2: profile['MobilePhoneNumber'] = phone_number elif i == 3: profile['BusinessPhoneNumber'] = phone_number else: profile['Attributes'][f"PhoneNumber_{i}"] = phone_number # Assigning the email addresses to the different parameters in the Customer Profile for i, email_address in enumerate(email_addresses): if i == 0: profile['EmailAddress'] = email_address elif i == 1: profile['PersonalEmailAddress'] = email_address elif i == 2: profile['BusinessEmailAddress'] = email_address else: profile['Attributes'][f"EmailAddress_{i}"] = email_address customer_profiles.append(profile) # Write the output to a file with open(output_file, 'w') as f: json.dump(customer_profiles, f, indent=2) print(f"Processed {len(endpoints)} endpoints into {len(customer_profiles)} customer profiles.") # Example usage input_file = 'pinpoint_endpoints.json' output_file = 'customer_profiles.json' process_pinpoint_endpoints(input_file, output_file)

Migración de las configuraciones de canal

Siga los pasos de incorporación para habilitar las comunicaciones por SMS y correo electrónico en Amazon Connect.

Migración de las plantillas

Las plantillas de Amazon Connect utilizan el mismo motor de representación de mensajes (Handlebars) que Amazon Pinpoint. Sin embargo, los marcadores de posición de los atributos se representan de forma diferente.

  1. Puede usar nuestras API de Amazon Pinpoint existentes para buscar una plantilla (por ejemplo, get-email-template o get-sms-template). O también puede seguir esta guía para editar una plantilla y copiar su contenido.

  2. Después de obtener la plantilla, actualice sus marcadores de posición. Por ejemplo, sus plantillas de Amazon Pinpoint usaban anteriormente un marcador de posición similar a {{User.UserAttributes.PurchaseHistory}}. Ahora se pueden cambiar a {{Attributes.Customer.Attributes.PurchaseHistory}}.

  3. A continuación, cree plantillas en Q en Amazon Connect utilizando la API create-message-template o siguiendo esta guía para crear plantillas de mensajes.

Para mapear sus atributos, siga los mapeos que realizó anteriormente cuando asignó puntos de conexión a perfiles, con el prefijo Attributes.Customer.

Migre las campañas

Le recomendamos que utilice la API get-campaign con cada campaña para obtener su definición y que vuelva a crearla después en Amazon Connect siguiendo la guía de creación de campañas.

Migración de los recorridos

Los recorridos no son todavía totalmente compatibles con Amazon Connect. Le recomendamos que evalúe los casos de uso de sus recorridos para ver si se pueden resolver con campañas de Amazon Connect. En caso afirmativo, siga un procedimiento similar al anterior y utilice la API get-journey para obtener su definición y vuelva a crearla después en Amazon Connect usando la guía de creación de campañas.

Clientes de recopilación de eventos y análisis de dispositivos móviles

Clientes del SDK de Amplify

Si utiliza el SDK de Amplify para enviar eventos a Amazon Pinpoint con el fin de actualizar los puntos de conexión, activar campañas o recorridos, o analizar el uso de la aplicación, puede migrar a Kinesis. Con Kinesis, puede transmitir eventos a la plataforma de computación que elija para que envíen actualizaciones a Perfiles de clientes, que a su vez puede actualizar el perfil del usuario de la aplicación y activar campañas de Amazon Connect.

Clientes de Put-Events

Si usa solo Amazon Pinpoint para transmitir eventos desde su aplicación web o móvil a un flujo de Kinesis, ahora puede usar el SDK de Amplify para transmitir directamente los eventos a Kinesis.

Funciones no disponibles

Por el momento, en Amazon Connect, no están disponibles las siguientes funciones de interacción de Amazon Pinpoint.

  • Mensajería integrada en la aplicación

  • Notificaciones PUSH (GCM, APNS, BAIDU, etc.) en las campañas

  • Canales personalizados

  • Segmentos importados

  • Recorridos

Pasos de baja: exportación de datos a terceros

Si desea eliminar todos los datos de Amazon Pinpoint, simplemente elimine la aplicación mediante la API delete-app. A continuación, elimine las plantillas de mensajes que no utilice siguiendo esta guía sobre la eliminación de plantillas.

O también, si desea extraer todos sus recursos y almacenarlos, siga los pasos que se indican a continuación.

puntos de conexión

Para dar de baja todos sus puntos de conexión, puede

  • Crear un segmento de Amazon Pinpoint sin filtros que abarque todos sus puntos de conexión.

  • Exportar ese segmento a un bucket de S3 o a su máquina local.

Segmentos, campañas y recorridos

Para eliminar sus segmentos, campañas y recorridos, utilice nuestras API o nuestra interfaz de usuario para recuperarlos. Para ello, puede usar nuestras API get-segment, get-campaign o get-journey.

Plantillas de mensaje

Para eliminar sus plantillas, puede usar la API list-templates seguida de las API específicas del canal:

Amazon Pinpoint y análisis de dispositivos móviles

Para dar de baja sus eventos y KPI de Amazon Pinpoint Analytics o Mobile Analytics, puede utilizar las siguientes opciones:

  1. Para exportar eventos futuros sin procesar antes de la migración, los clientes pueden incorporarse al flujo de datos de eventos.

  2. Para exportar los KPI de los últimos 3 meses, los clientes pueden utilizar los siguientes comandos:

Para los clientes que necesiten eliminar aplicaciones de Mobile Analytics como parte de su migración, pueden usar el siguiente script de Python. Este script utiliza AWS Signature Version 4 para autenticarse en la API de Mobile Analytics.

  1. Guarde el siguiente script como delete_mobile_analytics_application.py.

    # Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. # # This file is licensed under the Apache License, Version 2.0 (the "License"). # You may not use this file except in compliance with the License. A copy of the # License is located at # # http://aws.amazon.com/apache2.0/ # # This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS # OF ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. # # ABOUT THIS PYTHON SAMPLE: This sample is part of the AWS General Reference # Signing AWS API Requests top available at # https://docs.aws.amazon.com/general/latest/gr/sigv4-signed-request-examples.html # # AWS Version 4 signing example # Delete Mobile Analytics application # See: http://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html # This version makes a DELETE request and passes the signature # in the Authorization header. import sys, os, base64, datetime, hashlib, hmac import requests # pip install requests import argparse # Parse command line arguments parser = argparse.ArgumentParser(description='Delete a Mobile Analytics application') parser.add_argument('--appId', type=str, help='Mobile Analytics application ID to be deleted', required=True) args = parser.parse_args() # ************* REQUEST VALUES ************* delimiter = "/" method = 'DELETE' service = 'mobileanalytics' host = 'mobileanalytics.us-east-1.amazonaws.com' region = 'us-east-1' appId = args.appId # Use the appId from command line arguments endpoint = 'https://mobileanalytics.us-east-1.amazonaws.com/2016-07-01/apps' + delimiter + appId request_parameters = '' # Function for signing. Refer the AWS documentation below for more details. # http://docs.aws.amazon.com/general/latest/gr/signature-v4-examples.html#signature-v4-examples-python def sign(key, msg): return hmac.new(key, msg.encode('utf-8'), hashlib.sha256).digest() # Function for computing signature key. Refer the AWS documentation below for more details. # http://docs.aws.amazon.com/general/latest/gr/signature-v4-examples.html#signature-v4-examples-python. def getSignatureKey(key, dateStamp, regionName, serviceName): kDate = sign(('AWS4' + key).encode('utf-8'), dateStamp) kRegion = sign(kDate, regionName) kService = sign(kRegion, serviceName) kSigning = sign(kService, 'aws4_request') return kSigning # Read AWS access key from environment variables or configuration file. Best practice is NOT # to embed credentials in code. access_key = os.environ.get('AWS_ACCESS_KEY_ID') secret_key = os.environ.get('AWS_SECRET_ACCESS_KEY') session_token = os.environ.get('AWS_SESSION_TOKEN') if access_key is None or secret_key is None: print('No access key is available.') sys.exit() # Create a date for headers and the credential string t = datetime.datetime.now(datetime.UTC) amzdate = t.strftime('%Y%m%dT%H%M%SZ') datestamp = t.strftime('%Y%m%d') # Date w/o time, used in credential scope # ************* TASK 1: CREATE A CANONICAL REQUEST ************* # http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html # Step 1 is to define the verb (GET, POST, etc.)--already done with defining "method" variable above. # Step 2: Create canonical URI--the part of the URI from domain to query # string (use '/' if no path) canonical_uri = '/2016-07-01/apps' + delimiter + appId # Step 3: Create the canonical query string. In this example (a DELETE request), # request parameters are in the query string. Query string values must # be URL-encoded (space=%20). The parameters must be sorted by name. # For this example, the query string is pre-formatted in the request_parameters variable. canonical_querystring = request_parameters # Step 4: Create the canonical headers and signed headers. Header names # must be trimmed and lowercase, and sorted in code point order from # low to high. Note that there is a trailing \n. canonical_headers = 'host:' + host + '\n' + 'x-amz-date:' + amzdate + '\n' # Step 5: Create the list of signed headers. This lists the headers # in the canonical_headers list, delimited with ";" and in alpha order. # Note: The request can include any headers; canonical_headers and # signed_headers lists those that you want to be included in the # hash of the request. "Host" and "x-amz-date" are always required. signed_headers = 'host;x-amz-date' # Step 6: Create payload hash (hash of the request body content). For GET # requests, the payload is an empty string (""). payload_hash = hashlib.sha256(request_parameters.encode('utf-8')).hexdigest() # Step 7: Combine elements to create canonical request canonical_request = method + '\n' + canonical_uri + '\n' + canonical_querystring + '\n' + canonical_headers + '\n' + signed_headers + '\n' + payload_hash # ************* TASK 2: CREATE THE STRING TO SIGN************* # Match the algorithm to the hashing algorithm you use, either SHA-1 or # SHA-256 (recommended) algorithm = 'AWS4-HMAC-SHA256' credential_scope = datestamp + '/' + region + '/' + service + '/' + 'aws4_request' string_to_sign = algorithm + '\n' + amzdate + '\n' + credential_scope + '\n' + hashlib.sha256( canonical_request.encode('utf-8')).hexdigest() # ************* TASK 3: CALCULATE THE SIGNATURE ************* # Create the signing key using the function defined above. signing_key = getSignatureKey(secret_key, datestamp, region, service) # Compute signature by invoking hmac.new method by passing signingkey, string_to_sign signature = hmac.new(signing_key, string_to_sign.encode('utf-8'), hashlib.sha256).hexdigest() # ************* TASK 4: ADD SIGNING INFORMATION TO THE REQUEST ************* # The signing information can be either in a query string value or in # a header named Authorization. This code shows how to use a header. # Create authorization header and add to request headers authorization_header = algorithm + ' ' + 'Credential=' + access_key + '/' + credential_scope + ', ' + 'SignedHeaders=' + signed_headers + ', ' + 'Signature=' + signature # The request can include any headers, but MUST include "host", "x-amz-date", # and (for this scenario) "Authorization". "host" and "x-amz-date" must # be included in the canonical_headers and signed_headers, as noted # earlier. Order here is not significant. # Python note: The 'host' header is added automatically by the Python 'requests' library. headers = { 'x-amz-date': amzdate, 'accept': 'application/hal+json', 'content-type': 'application/json; charset=UTF-8', 'Authorization': authorization_header} if session_token: headers['X-Amz-Security-Token'] = session_token # ************* SEND THE REQUEST ************* request_url = endpoint + '?' + canonical_querystring print('\nBEGIN REQUEST++++++++++++++++++++++++++++++++++++') print('Request URL = ' + request_url) print('Request Headers = ', headers) r = requests.delete(request_url, data=request_parameters, headers=headers) print('\nRESPONSE++++++++++++++++++++++++++++++++++++') print('Response code: %d\n' % r.status_code) print(r.text)
  2. Asegúrese de tener credenciales de AWS válidas configuradas como variables de entorno.

  3. Ejecute el script con el ID de la aplicación de Mobile Analytics:

    python delete_mobile_analytics_application.py --appId <YOUR_MOBILE_ANALYTICS_APP_ID>

Este script realiza una solicitud DELETE a la API de Mobile Analytics para eliminar la aplicación especificada. Asegúrese de ejecutar esta opción con cada aplicación de Mobile Analytics que necesite eliminar.

nota

Los clientes de Mobile Analytics activos pueden seguir ingiriendo eventos a través de la API putEvents y verlos en Amazon Pinpoint hasta la fecha de finalización del soporte de este servicio.

Resumen

Las organizaciones con una cuenta de Amazon Pinpoint como mínimo pueden seguir utilizando las funciones de interactuación de Amazon Pinpoint, como los segmentos, las campañas, los recorridos, los análisis y el correo electrónico, hasta el 30 de octubre de 2026, fecha en que finalizará el soporte del servicio.

Recursos adicionales

Están disponibles los siguientes recursos adicionales:

Si necesita ayuda o tiene feedback, contacte con AWS Support.