Activity Forums Salesforce® Discussions Create multiple records with one email

  • Create multiple records with one email

    Posted by abhishek on February 8, 2021 at 11:46 am

    Hello,
    I have created a feedback object in my org. I want to create a record whenever I send a mail to salesforce. So with the help of email services I generated an email address and whenever I send a mail from my Gmail to that email address a new record is created in feedback.
    What is want now is to create multiple feedback.
    Suppose email template format is:
    Article ID: 10001;10002;10003;
    Description: Link not working
    For the above format what I want is to create 3 records with the same description for all 3.
    Here is my code. Can you tell me what changes I have to make in it so that the above functionality is working?

    global class CreateTaskEmailExample implements Messaging.InboundEmailHandler {
    global Messaging.InboundEmailResult handleInboundEmail(Messaging.inboundEmail email,
    Messaging.InboundEnvelope env){
    // Create an InboundEmailResult object for returning the result of the
    // Apex Email Service
    Messaging.InboundEmailResult result = new Messaging.InboundEmailResult();
    String myPlainText= '';
    // Add the email plain text into the local variable
    myPlainText = email.plainTextBody;
    // New Task object to be created
    Feedback__c[] newFeedback = new Feedback__c[0];
    // Try to look up any contacts based on the email from address
    // If there is more than one contact with the same email address,
    // an exception will be thrown and the catch statement will be called.
    try {
    /*Contact vCon = [SELECT Id, Name, Email
    FROM Contact
    WHERE Email = :email.fromAddress
    LIMIT 1];*/
    // Add a new Task to the contact record we just found above.
    newFeedback.add(new Feedback__c(Description__c = myPlainText,
    Status__c = 'Inbound Email',
    Subject__c = email.subject,
    IsRemainderSet__c = true,
    Date__c = System.now()+1));
    // Insert the new Task
    insert newFeedback;
    System.debug('New Task Object: ' + newFeedback );
    }
    // If an exception occurs when the query accesses
    // the contact record, a QueryException is called.
    // The exception is written to the Apex debug log.
    catch (QueryException e) {
    System.debug('Query Issue: ' + e);
    }
    // Set the result to true. No need to send an email back to the user
    // with an error message
    } result.success = true;
    // Return the result for the Apex Email Service
    return result;
    }

    Thanks

    abhishek replied 3 years, 9 months ago 1 Member · 0 Replies
  • 0 Replies

Log In to reply.

Popular Salesforce Blogs

Popular Salesforce Videos

Popular Salesforce Infographics