Events & Actions or PubNub Functions: Picking the right tool

5 min readDarryn Campbell on Mar 7, 2023

You may already be familiar with PubNub Functions since it is used by many of our existing customers to augment their PubNub solutions with custom server logic using JavaScript.  Events & Actions is the newer but complementary feature that provides a zero-code way to extract PubNub real-time data into third-party systems for later storage or analysis.  

This article will explain the differences between Events & Actions and PubNub Functions and which use cases suit each.

What are Events & Actions?

Events & Actions enables you to filter the real-time “events,” queue those events, and deliver them to a growing list of “actions.”

So, what is an “event”?

Events are generated by users and devices interacting with the PubNub platform, and anything that happens during that interaction could generate an event.

The message publish event is triggered whenever a PubNub message is published and expect to see additional events added in the future.

So, what is an “action”?

An action is performed when an event is triggered and will send the event data to a remote endpoint.  The catalog of actions is growing but, at launch, includes webhooks, Amazon SQS and Amazon Kinesis.  All actions will send your data outside of PubNub to a third-party system that you control for additional processing.

That feels like a lot of data.

It can be, but Events & Actions features an extensive filter mechanism. You can choose between simple filters, which are easy to configure, or more advanced filtering based on JSONPath to cover all use cases.  For more information on E&A filters, including how to filter on your JSON payload, please refer to our documentation's “configure Events & Actions” section. 

What are PubNub Functions?

PubNub Functions allow you to capture various events on the PubNub platform and write serverless Node.JS code to handle those events.  Functions are very flexible and enable you to transform, re-route, augment, filter, and even aggregate data.

Some oft-cited use cases for Functions show their more common uses:

  • Listen for the ‘before message publish’ event, intercept the message and moderate the message data to detect abusive language or profanity.

  • Listen for the ‘before file publish’ event and re-route any images to a moderation channel whose contents are potentially harmful.

  • Listen for the ‘after message publish’ event and forward messages to an external system to perform sentiment analysis on the chat, which is used frequently by customer support.

  • Listen for the ‘before message publish’ event and translate the language within the message or message parameters to perform on-the-fly translation.

There is a comprehensive list of events that can trigger synchronous and asynchronous functions, which, combined with the flexibility of Node.JS and the JavaScript programming language, allow you to accomplish a wide variety of use cases.  Custom integrations also exist to add functionality to your PubNub solution quickly: from voice API calls to SMS to chatbots and everything in between.

When should you use Events & Actions?

Everything Events & Actions can do, you could also accomplish with PubNub Functions, so why choose E&A?

If you need to send real-time data moving through PubNub to a third-party system, Events & Actions should be your first choice. Specifically for this use case, E&A is more scalable and fault-tolerant.

Events & Actions is also a zero-code solution, so if your developers are busy doing other things (like adding real-time capabilities to your app using PubNub SDKs), then E&A is a good choice.

Some everyday use cases for which Events & Actions is ideal:


Many customer solutions sending real-time data over PubNub need to archive that data externally in data centers.  Some examples:

  • Errors & authentication/permission issues generated by users and devices need to be saved to Investigate later problems 

  • Auction bids need to be stored to maintain a record for legal purposes.

  • IoT device sensor data needs to be stored centrally in a long-term archive.

Real-time data processing:

Sometimes data that originates from PubNub needs to be routed to an external system for additional processing.  Some examples:

  • An event such as a chat "super-like" (or similar chat features), or a winning auction bid will require additional processing and integration with a financial system.

  • When a smart sensor’s data goes outside a specified range, trigger an alert.

  • Important chat messages that require escalation are routed externally.

Data analysis:

Using an external analytics platform, you can transfer data with little latency and perform analytics to understand your solution better.  Some examples:

  • Sentiment analysis and metrics on chat messages to understand your customer experience

  • Using chat messages to train an AI bot

  • Reviewing geolocation coordinates to ensure routing algorithms are operating correctly

Should I change my existing app to use Events & Actions? 


Ask yourself a couple of questions:

Question 1: Am I using a PubNub Function triggered by the ‘after publish’ event?  Or am I subscribing to PubNub messages somewhere in my backend infrastructure?

If you have a PubNub Function that responds to the following events:

  • After Publish or Fire

And within that function, if you transfer that data outside of PubNub, you should consider transitioning this logic to Events & Actions.  In this instance, E&A will be more scalable, fault-tolerant, and does not require any code to be written.

Alternatively, look for instances of:

PubNub.subscribe({channels: [...]},);

Being called at your server side.  The most common reason to subscribe for PubNub messages on your server is to reroute those messages off-domain.  If this is you, consider transitioning this logic to Events & Actions, which you will find more scalable.  

Question 2: Are any of my use cases suited to Events & Actions?

If your use cases pertain to storage, processing, or real-time data analysis, as detailed in the previous section, you should seriously consider using E&A.  

If your solution transfers real-time data outside of PubNub for any reason, then E&A is likely the best way to achieve that.  

When should you use PubNub Functions?

Although everything E&A can do, you could accomplish with PubNub Functions; the reverse is not true.  Functions are more feature-rich than Events & Actions and should still be used for event-driven processing outside the specific use cases for E&A discussed in this article.  If you need to perform any event-driven processing that does not involve transferring the data to an external server, continue to use Functions.

Functions support many synchronous (blocking) events, which allow you to transform data before it is sent to clients.  If you are changing message data, including the chat moderation or language translation use cases given earlier, then you should continue to use PubNub Functions. 

Suppose you need to perform custom business logic on the PubNub data (or metadata) before it reaches your external system, like aggregating data. In that case, you should continue to use PubNub functions. 

Since E&A only currently supports the message publish event, If you have existing functions that derive their data from different events, continue using Functions.

Also, only PubNub Functions support code, so if you already use external integrations or need to run code to process the data before it is sent out externally, continue to use Functions.

In Conclusion

If you need to send real-time PubNub data to a third-party system, Events & Actions should be your first consideration.  If you need to do anything else with your real-time data, use Functions.  Whether you use E&A or Functions for your event-driven processing, PubNub gives you complete and flexible control over your data.

If you already use PubNub, go to the admin dashboard to enable Events & Actions for your account. We have how-tos for setting up E&A as well as filtering messages using JSONPath

If you are not using PubNub, sign up for a free trial to see how easy it is to get started. Beyond the free trial, see our pricing page or contact sales to discuss your specific needs.

PubNub powers applications that enable low latency real-time user experiences with scalability in mind, from in-app chat apps & live events to data streaming, pub/sub, push notifications, and HIPAA-compliant healthcare apps. PubNub supports over 50 SDKs, including Rest API, Java & mobile app APIs for Android and iOS. Please see our tutorials and open-source samples available on GitHub to learn more.

More from PubNub

How to Add Notification Badges to App Icons in React Native
Chat6 minFeb 1, 2023

How to Add Notification Badges to App Icons in React Native

Display real-time notification badges with PubNub and React Native to display important information and bring users back to your...

Michael Carroll

Michael Carroll

NPP and HIPAA: Notice of Privacy Practices Definition
Healthcare5 minJan 6, 2023

NPP and HIPAA: Notice of Privacy Practices Definition

A Notice of Privacy Practices (NPP) is one of the requirements of HIPAA and helps patients understand their personal data rights.

Michael Carroll

Michael Carroll

HIPAA Technical Safeguards: How To Protect Sensitive Data
Healthcare6 minJan 5, 2023

HIPAA Technical Safeguards: How To Protect Sensitive Data

HIPAA covered entities must follow the five technical safeguards to achieve HIPAA compliance and prevent data corruption.

Michael Carroll

Michael Carroll

Talk to an expert