Pasar al contenido principal
You are viewing the Spanish (Mexico) site, but your language preference is set to English. Switch to English site →
Functions

Crea más rápido con Functions sin servidores

Functions es un entorno sin servidores en Twilio, donde puedes crear rápidamente microservicios basados en eventos, integrar elementos en puntos finales de terceros y ampliar los flujos de Twilio Studio con una lógica personalizada.

illo-hero-functions

Del concepto a la primera edición
en menos pasos

El código JSON se conecta al código javascript que dará lugar a diferentes funciones, como mensajería o llamadas, y finalmente al usuario.

Crea microservicios impulsados por eventos con Node.js

Crea aplicaciones de Twilio escalables, de calidad de producción y basadas en eventos mediante Node.js. Innova sin preocuparte por la estabilidad. Itera rápidamente. Utiliza la lógica personalizada para las aplicaciones de Studio y los sistemas IVR.

Código de Node.js conectado a una base de datos que integra diferentes servicios de terceros.

Integración en puntos finales de terceros

Integra cualquier sistema de terceros mediante la transformación y el filtrado de tus datos mediante el uso de la potencia de Node.js y el ecosistema npm. Realiza solicitudes de API externas con facilidad y configura webhooks para obtener los datos de los productos de Twilio o sistemas externos.

Studio está conectado a funciones que conducen a diferentes acciones, como mensajería y llamadas.

Tu código en Twilio

Haz que las ideas cobren vida rápidamente, ya sea que vayas a crear potentes API, integraciones complejas o agregar lógica personalizada a tu IVR. Deja que Twilio Functions maneje la sobrecarga operativa para que puedas salir al mercado más rápido.

El código de Twilio ayuda a aumentar las métricas en todo el mundo.

Escalamiento automático y precios transparentes

El servicio sin servidores en Twilio escala automáticamente de cero a las demandas máximas e incluye un modelo de negocio de pago por consumo para minimizar los costos de tu organización.

Casos de uso de Functions

Realiza implementaciones con Functions en menos
de 5 minutos

Send an SMS from Twilio Functions
  • Node.js

                    <div class="highlight"><span class="code-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">handler</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">async</span><span class="w"> </span><span class="kd">function</span><span class="p">(</span><span class="nx">context</span><span class="p">,</span><span class="w"> </span><span class="nx">event</span><span class="p">,</span><span class="w"> </span><span class="nx">callback</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span class="code-line"><span class="w">  </span><span class="kd">const</span><span class="w"> </span><span class="nx">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">context</span><span class="p">.</span><span class="nx">getTwilioClient</span><span class="p">();</span><span class="w"></span>
</span><span class="code-line"><span class="w">  </span><span class="kd">const</span><span class="w"> </span><span class="nx">message</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="nx">client</span><span class="p">.</span><span class="nx">messages</span><span class="p">.</span><span class="nx">create</span><span class="p">({</span><span class="w"></span>
</span><span class="code-line"><span class="w">    </span><span class="nx">to</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;+15558675310&#39;</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w">    </span><span class="kr">from</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;+15017122661&#39;</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w">    </span><span class="nx">body</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;Hi there!&#39;</span><span class="w"></span>
</span><span class="code-line"><span class="w">  </span><span class="p">});</span><span class="w"></span>
</span><span class="code-line"><span class="w">  </span><span class="nx">callback</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span><span class="w"> </span><span class="nx">message</span><span class="p">.</span><span class="nx">sid</span><span class="p">);</span><span class="w"></span>
</span><span class="code-line"><span class="p">};</span><span class="w"></span>
</span></div>

                

Enviar un SMS desde un número de teléfono de Twilio

Envía un SMS desde un número de teléfono de Twilio. Con solo algunas líneas de código, verás que tu teléfono se ilumina con un SMS de Twilio mediante Twilio Functions.

Enviar un SMS

Send OTP from Twilio Functions
  • Node.js

                    <div class="highlight"><span class="code-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">handler</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">async</span><span class="w"> </span><span class="kd">function</span><span class="p">(</span><span class="nx">context</span><span class="p">,</span><span class="w"> </span><span class="nx">event</span><span class="p">,</span><span class="w"> </span><span class="nx">callback</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span class="code-line"><span class="w">  </span><span class="kd">const</span><span class="w"> </span><span class="nx">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">context</span><span class="p">.</span><span class="nx">getTwilioClient</span><span class="p">();</span><span class="w"></span>
</span><span class="code-line"><span class="w">  </span><span class="kd">const</span><span class="w"> </span><span class="nx">service</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">context</span><span class="p">.</span><span class="nx">VERIFY_SERVICE_SID</span><span class="p">;</span><span class="w"></span>
</span><span class="code-line">
</span><span class="code-line"><span class="w">  </span><span class="kd">const</span><span class="w"> </span><span class="nx">verification</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="nx">client</span><span class="p">.</span><span class="nx">verify</span><span class="w"></span>
</span><span class="code-line"><span class="w">    </span><span class="p">.</span><span class="nx">services</span><span class="p">(</span><span class="nx">service</span><span class="p">)</span><span class="w"></span>
</span><span class="code-line"><span class="w">    </span><span class="p">.</span><span class="nx">verifications</span><span class="p">.</span><span class="nx">create</span><span class="p">({</span><span class="w"></span>
</span><span class="code-line"><span class="w">      </span><span class="nx">to</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;+15558675310&#39;</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w">      </span><span class="nx">channel</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;sms&#39;</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w">      </span><span class="nx">locale</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;en&#39;</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w">    </span><span class="p">});</span><span class="w"></span>
</span><span class="code-line"><span class="w">  </span><span class="nx">callback</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;Verfication OTP sent&#39;</span><span class="p">);</span><span class="w"></span>
</span><span class="code-line"><span class="p">};</span><span class="w"></span>
</span></div>

                

Enviar una verificación de código de acceso único (OTP)

Integra Functions en los servicios de Twilio existentes, como una experiencia con un código de acceso único (OTP) que utiliza SMS, WhatsApp, voz o correo electrónico.

Enviar un OTP

Log Incoming SMS in Google Sheets
  • Node.js

                    <div class="highlight"><span class="code-line"><span class="kd">const</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nx">google</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">require</span><span class="p">(</span><span class="s1">&#39;googleapis&#39;</span><span class="p">);</span><span class="w"></span>
</span><span class="code-line"><span class="kd">const</span><span class="w"> </span><span class="nx">fs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">require</span><span class="p">(</span><span class="s1">&#39;fs&#39;</span><span class="p">).</span><span class="nx">promises</span><span class="p">;</span><span class="w"></span>
</span><span class="code-line">
</span><span class="code-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">handler</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">async</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="p">(</span><span class="nx">context</span><span class="p">,</span><span class="w"> </span><span class="nx">event</span><span class="p">,</span><span class="w"> </span><span class="nx">callback</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span class="code-line"><span class="w">  </span><span class="kd">const</span><span class="w"> </span><span class="nx">twiml</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nx">Twilio</span><span class="p">.</span><span class="nx">twiml</span><span class="p">.</span><span class="nx">MessagingResponse</span><span class="p">();</span><span class="w"></span>
</span><span class="code-line"><span class="w">  </span><span class="kd">const</span><span class="w"> </span><span class="nx">authJson</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">JSON</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="w"></span>
</span><span class="code-line"><span class="w">    </span><span class="k">await</span><span class="w"> </span><span class="nx">fs</span><span class="p">.</span><span class="nx">readFile</span><span class="p">(</span><span class="nx">Runtime</span><span class="p">.</span><span class="nx">getAssets</span><span class="p">()[</span><span class="s1">&#39;/credentials.json&#39;</span><span class="p">].</span><span class="nx">path</span><span class="p">)</span><span class="w"></span>
</span><span class="code-line"><span class="w">  </span><span class="p">);</span><span class="w"></span>
</span><span class="code-line">
</span><span class="code-line"><span class="w">  </span><span class="kd">const</span><span class="w"> </span><span class="nx">auth</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nx">google</span><span class="p">.</span><span class="nx">auth</span><span class="p">.</span><span class="nx">JWT</span><span class="p">({</span><span class="w"></span>
</span><span class="code-line"><span class="w">    </span><span class="nx">email</span><span class="o">:</span><span class="w"> </span><span class="nx">authJson</span><span class="p">.</span><span class="nx">client_email</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w">    </span><span class="nx">key</span><span class="o">:</span><span class="w"> </span><span class="nx">authJson</span><span class="p">.</span><span class="nx">private_key</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w">    </span><span class="nx">scopes</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;https://www.googleapis.com/auth/spreadsheets&#39;</span><span class="p">],</span><span class="w"></span>
</span><span class="code-line"><span class="w">  </span><span class="p">});</span><span class="w"></span>
</span><span class="code-line"><span class="w">  </span><span class="kd">const</span><span class="w"> </span><span class="nx">sheets</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">google</span><span class="p">.</span><span class="nx">sheets</span><span class="p">({</span><span class="w"></span>
</span><span class="code-line"><span class="w">    </span><span class="nx">version</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;v4&#39;</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w">    </span><span class="nx">auth</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w">  </span><span class="p">});</span><span class="w"></span>
</span><span class="code-line">
</span><span class="code-line"><span class="w">  </span><span class="k">await</span><span class="w"> </span><span class="nx">sheets</span><span class="p">.</span><span class="nx">spreadsheets</span><span class="p">.</span><span class="nx">values</span><span class="p">.</span><span class="nx">append</span><span class="p">({</span><span class="w"></span>
</span><span class="code-line"><span class="w">    </span><span class="nx">spreadsheetId</span><span class="o">:</span><span class="w"> </span><span class="nx">context</span><span class="p">.</span><span class="nx">DOCUMENT_ID</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w">    </span><span class="nx">range</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;&#39;&quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">context</span><span class="p">.</span><span class="nx">SHEET_NAME</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s2">&quot;&#39;&quot;</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w">    </span><span class="nx">valueInputOption</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;USER_ENTERED&#39;</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w">    </span><span class="nx">requestBody</span><span class="o">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span class="code-line"><span class="w">      </span><span class="nx">values</span><span class="o">:</span><span class="w"> </span><span class="p">[[</span><span class="nx">event</span><span class="p">.</span><span class="nx">SmsSid</span><span class="p">,</span><span class="w"> </span><span class="nx">event</span><span class="p">.</span><span class="nx">From</span><span class="p">,</span><span class="w"> </span><span class="nx">event</span><span class="p">.</span><span class="nx">Body</span><span class="p">]],</span><span class="w"></span>
</span><span class="code-line"><span class="w">    </span><span class="p">},</span><span class="w"></span>
</span><span class="code-line"><span class="w">  </span><span class="p">});</span><span class="w"></span>
</span><span class="code-line">
</span><span class="code-line"><span class="w">  </span><span class="nx">twiml</span><span class="p">.</span><span class="nx">message</span><span class="p">(</span><span class="s1">&#39;The SMS was successfully saved.&#39;</span><span class="p">);</span><span class="w"></span>
</span><span class="code-line"><span class="w">  </span><span class="nx">callback</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span><span class="w"> </span><span class="nx">twiml</span><span class="p">);</span><span class="w"></span>
</span><span class="code-line"><span class="p">};</span><span class="w"></span>
</span></div>

                

Registra mensajes de texto entrantes en Google Sheets

Agrega una nueva fila a los documentos de Google Sheets cuando tu número de teléfono de Twilio reciba un mensaje de texto para hacer un seguimiento del contenido del mensaje, el remitente y la hora de llegada.

Registrar mensajes entrantes

messaging-customer-quote-portrait.png

“No tienes que comentar las líneas de código para explicar lo que está haciendo una función. El código Twilio es muy claro y se configura fácilmente”.

Nate Grieb, Propietario del producto

Prueba Twilio Functions y sin servidores

Pon tu aplicación en marcha con Functions.