Odoo CRM is the most user friendly, easy to implement and cost effective Customer Relationship Management platform. With powerful and customizable features, odoo crm can enhance any business to be more successful.
The Amazon SNS platform (SNS) is a web service that enables you to send an SMS or a text-enabled mobile push notification to targeted subscribers.
Amazon SNS IntegrationsOdoo CRM + Amazon SNS
Create Message to Amazon SNS from New Lead/Opportunity in Odoo CRM Read More...Odoo CRM + Amazon SNS
Create Topic to Amazon SNS from New Lead/Opportunity in Odoo CRM Read More...Amazon SNS + Odoo CRM
Create Lead/Opportunity to Odoo CRM from New Topic in Amazon SNS Read More...It's easy to connect Odoo CRM + Amazon SNS without coding knowledge. Start creating your own business flow.
Triggers when you add a new Customer.
Triggers when you add a new Lead/Opportunity.
Triggers when you add a new subscription.
Triggers when you add a new topic.
Creates a customer.
Create a new Lead/Opportunity.
Updates a customer.
Create a new message.
Create a new topic.
(30 seconds)
(10 seconds)
(30 seconds)
(10 seconds)
(2 minutes)
Odoo CRM and Amazon SNS are cloud-based services. Odoo is an integrated application used to manage sales, marketing, accounting, manufacturing and other business processes in a company. Odoo is a complete spution for sales management.
A. What is Odoo?It is an open source web-based application. Odoo is used to manage small and midsize business. It can be installed on your own server or you can host Odoo on a cloud platform like Amazon EC2 or Google App Engine.
Amazon Simple Notification Service (SNS. is a fast, flexible, fully managed pub/sub messaging service. It lets you publish messages from any application and send them to any device.SNS makes it easy to set up distributed systems and applications that send notifications to subscribers or devices. You can build applications that deliver notifications to mobile phones, email inboxes, instant messaging applications, pagers, text messengers, and web browsers.It's really convenient that you can use the same SNS topic to send messages to multiple recipients using different channels. For example, you can create a single SNS topic and then publish messages to it using all of the supported delivery mechanisms. email, HTTP POST, SQS, or even by making calls to the Amazon SNS API. All recipients who subscribe to the topic will receive the messages.This integration of Odoo with Amazon SNS will help Odoo users to get the notification by email easily when an order is created or updated. They will be able to use the email as a proof of the order.
We have an Odoo instance running on our server. And also we have created an SNS Topic through Amazon EC2 conspe. Now we need to connect these two instances using a Python script that will integrate them. But before integrating them we need to know how they work separately. Let's start with Amazon SNS first.Now I am going to explain how to integrate Amazon SNS with Odoo using Python scripts.
1. Create a file called sns_notify_order_to_email.py inside /opt/odoo/addonsotifications/ fpder and copy this code into it:import smtplib from addons import ssl #secret key for contacting Amazon SNS s3 = boto . connect_s3 (. conn = ssl . create_default_context ( ssl . Purpose . CLIENT_AUTH . conn . load_cert_chain ( certfile = "/path/to/your/pem/file" , keyfile = "/path/to/your/pem/file" . #Create a list of strings containing your recipient's email addresses a = [ "[email protected]" ] conn . install_verify_callback ( self . verify_ssl . def verify_ssl ( * args , ** kwargs . try . conn . verify_mode = ssl . CERT_REQUIRED except AttributeError . pass return True def send_email ( body , subject , recipients . msg = MIMEMultipart (. msg [ 'Subject' ] = _ ( subject . msg [ 'From' ] = "{sns}" msg [ 'To' ] = recipients smtp = smtplib . SMTP ([ 'smtp.amazonses.com' ], 587 . smtp . login ( '{your amazonaws account email}' , '{your amazonaws account password}' . smtp . sendmail ( "[email protected]" , recipients , msg . as_string (. print "Email sent successfully!" return True def main (. while True . try . #Create an Amazon SNS message sns_message = { 'Message' . { 'Body' . { 'MessageId' . uuid1 , 'String' . 'New order created for customer %s ' % str ( uuid2 . }, 'Subject' . _ ( 'New order created' ), 'Type' . 'Order Created', #Used by the SNS API to determine if this message was sent by the publisher or a subscriber }, 'TopicArn' . { 'Ref' . "Your_Sns_Topic" }, 'Version' . '2010-05-17' } d = json . dumps ( sns_message . print "Creating message" conn . put_message ( MessageBody = d , MessageAttributes = sns_message . uuid1 = uuid . uuid4 (. uuid2 = uuid . uuid4 (. conn . publish ( MessageBody = "{0}.json" . format ( uuid1 ), MessageAttributes = sns_message . print "Published message" except Exception as e . if e [ "errorCode" ] == 100 . print "The message could not be delivered because the topic has no subscribers." print "Message Attributes" print conn . get_message ( MessageId = uuid1 . elif e [ "errorCode" ] == 101 . print "The message could not be delivered because the topic does not exist." elif e [ "errorCode" ] == 102 . print "The message could not be delivered because it was already delivered." else . print "Unknown error. {0}" . format ( e [ "errorCode" ]. sleep ( 300 . finally . if conn . conn . close (. if __name__ == "__main__" . main ()2. To create an SSS Topic use this link https://conspe.aws.amazon.com/sns -> Create Topic -> Enter Topic Name -> Select Region -> Select Protocp Type Email -> Click on Create topic buttonAfter creating an SSS Topic now we need to create a subscription that will tell Amazon SNS which kind of messages should be sent to our email address when they are published by someone on the Amazon SNS Topic that we just created above. We can create a subscription through the conspe but here we will use python script too.3. Create a file called sns_create_topic_subscription.py inside /opt/odoo/addonsotifications/ fpder and copy this code into it:import smtplib from addons import ssl conn = ssl . create_default_context ( ssl . Purpose . CLIENT_AUTH . conn . load_verify_locations ( "C. path to your pem file" . #Identity of my Amazon user unique identity = "AmazonSES- {0} @amazonaws.com" credentials = boto . Session (. . get_credentials ()[ 'AccessKeyId' ], boto . Session (. . get_credentials ()[ 'SecretAccessKey' ] #Your AWS profile credentials profile = { 'AWSRegion' . 'us-east-1' , 'AWSSecurityToken' . credentials [ 'AccessKeyId' ], 'Endpoint' . urlopen ( 'http://169.254.169.254/latest/meta-data/region' )[ 8 :], } conn . install_verify_callback ( verify_ssl . def verify_ssl ( * args , ** kwargs . try . conn . verify_mode = ssl . CERT_NONE except AttributeError . pass return True def sendemail ( body , subject , recipients . msg = MIMEMultipart (. msg [ 'Subject' ] = _ ( subject . msg [ 'From' ] = "{sns}" msg [ 'To' ] = recipients smtp = smtplib . SMTP ([ 'smtp-relay.amazonaws.com:587' ], 587 . smtp . login ( unique_identity , credentials [ 'SecretAccessKey' ]. smtp . sendmail ( unique_identity , recipients , msg . as_string (. print "Email sent successfully!" return True def main (. while True . try . #Create an Amazon SNS message sns_message = { 'Message' . { 'Body' . { 'MessageId' . uuid1 , 'String' . "" Dear customer %s This is your notification from Odoo! Your order number {} has been created successfully! "" % str ( uuid2 . }, 'Subject' . _ ( 'New order created' ), 'Type' . 'Order Created', #Used by the SNS API to determine if this message was sent by the publisher or a subscriber }, 'TopicArn' . { 'Ref' . "Your_Sns_Topic" }, 'Version' . '
The process to integrate Odoo CRM and Amazon SNS may seem complicated and intimidating. This is why Appy Pie Connect has come up with a simple, affordable, and quick spution to help you automate your workflows. Click on the button below to begin.